diff --git a/mastodon/build.gradle b/mastodon/build.gradle index 8f49c775a..d5648bd24 100644 --- a/mastodon/build.gradle +++ b/mastodon/build.gradle @@ -13,7 +13,7 @@ android { defaultConfig { manifestPlaceholders = [oAuthScheme:"moshidon-android-auth"] archivesBaseName = "moshidon" - applicationId "org.joinmastodon.android.moshinda.luke" + applicationId "org.joinmastodon.android.moshinda" minSdk 23 targetSdk 34 versionCode 108 diff --git a/mastodon/proguard-rules.pro b/mastodon/proguard-rules.pro index 39538ac74..f2cfd8887 100644 --- a/mastodon/proguard-rules.pro +++ b/mastodon/proguard-rules.pro @@ -20,6 +20,8 @@ # hide the original source file name. #-renamesourcefileattribute SourceFile +-dontwarn android.app.BroadcastOptions + # Keep all model classes as they're used with gson and their names are shown in errors -keep public class org.joinmastodon.android.model.**{ ; diff --git a/mastodon/src/main/java/org/joinmastodon/android/api/MastodonAPIController.java b/mastodon/src/main/java/org/joinmastodon/android/api/MastodonAPIController.java index 9045842ac..4b748382b 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/api/MastodonAPIController.java +++ b/mastodon/src/main/java/org/joinmastodon/android/api/MastodonAPIController.java @@ -226,7 +226,11 @@ public class MastodonAPIController{ }catch(JsonIOException|JsonSyntaxException x){ req.onError(response.code()+" "+response.message(), response.code(), x); }catch(Exception x){ - req.onError("Error parsing an API error", response.code(), x); + if (response.code() == 501){ + req.onError("API route not implemented: " + response.request().url(), response.code(), x); + } else { + req.onError("Error parsing an API error", response.code(), x); + } } } }catch(Exception x){ diff --git a/mastodon/src/main/java/org/joinmastodon/android/api/session/AccountSessionManager.java b/mastodon/src/main/java/org/joinmastodon/android/api/session/AccountSessionManager.java index 1bb7a70ce..5bc22016b 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/api/session/AccountSessionManager.java +++ b/mastodon/src/main/java/org/joinmastodon/android/api/session/AccountSessionManager.java @@ -12,6 +12,7 @@ import android.graphics.drawable.Icon; import android.net.Uri; import android.os.Build; import android.util.Log; +import android.widget.Toast; import org.joinmastodon.android.BuildConfig; import org.joinmastodon.android.E; @@ -126,7 +127,7 @@ public class AccountSessionManager{ wrapper.instance = instance; MastodonAPIController.runInBackground(()->writeInstanceInfoFile(wrapper, instance.uri)); - updateMoreInstanceInfo(instance, instance.uri); + updateMoreInstanceInfo(instance, AccountSessionManager.get(session.getID()).domain); if (UnifiedPushHelper.isUnifiedPushEnabled(context)) { UnifiedPush.register( context, @@ -390,7 +391,7 @@ public class AccountSessionManager{ public void onError(ErrorResponse errorResponse) { updateInstanceEmojis(instance, domain); } - }).execNoAuth(instance.uri); + }).execNoAuth(domain); } private void updateInstanceEmojis(Instance instance, String domain){ diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java index c9a57f35a..ea889a27d 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java @@ -818,6 +818,9 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList UiUtils.enableOptionsMenuIcons(getActivity(), menu, R.id.scheduled, R.id.bookmarks); }else{ UiUtils.enableOptionsMenuIcons(getActivity(), menu, R.id.edit_note, R.id.biteuser_btn); + if (isInstanceIceshrimp()){ + UiUtils.enableOptionsMenuIcons(getActivity(), menu, R.id.biteuser_btn); + } } boolean hasMultipleAccounts = AccountSessionManager.getInstance().getLoggedInAccounts().size() > 1; menu.findItem(R.id.open_with_account).setVisible(hasMultipleAccounts); diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/EmojiReactionsStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/EmojiReactionsStatusDisplayItem.java index be6017060..cc8bd9a12 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/EmojiReactionsStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/EmojiReactionsStatusDisplayItem.java @@ -15,6 +15,8 @@ import android.view.ViewGroup; import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.ProgressBar; +import android.widget.Toast; +import android.widget.Toolbar; import androidx.annotation.NonNull; import androidx.recyclerview.widget.LinearLayoutManager; @@ -190,7 +192,12 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem { instance=item.parentFragment.getInstance().get(); if(instance.configuration!=null && instance.configuration.reactions!=null && instance.configuration.reactions.maxReactions!=0){ meReactionCount=(int) item.status.reactions.stream().filter(r->r.me).count(); - boolean canReact=meReactionCount{ EmojiReaction emojiReaction=parent.status.reactions.get(getAbsoluteAdapterPosition()); @@ -584,6 +591,9 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem { args.putString("emoji", atSymbolIndex != -1 ? emojiReaction.name.substring(0, atSymbolIndex) : emojiReaction.name); args.putString("url", emojiReaction.getUrl(parent.playGifs)); args.putInt("count", emojiReaction.count); + if (emojiReaction.url != null) { + Toast.makeText(e.getContext(), ":" + emojiReaction.name + ":", Toast.LENGTH_SHORT).show(); + } Nav.go(parent.parentFragment.getActivity(), StatusEmojiReactionsListFragment.class, args); return true; });