commit a1a12dddfe17f2141ce31b7835a3b2fc5834554f from: darkwolf date: Fri Jul 10 17:19:00 2026 UTC use pleroma's emoji reaction api for mitra commit - a63eba0e5ddeb66c0cfc1be759fd22423b7a56f6 commit + a1a12dddfe17f2141ce31b7835a3b2fc5834554f blob - d8f84e5650ae7461c2a67a5f0614cebef75b2cbd blob + 44615d871f04f6be2fae17ec8532976b36bd341c --- mastodon/src/main/java/org/joinmastodon/android/fragments/HasAccountID.java +++ mastodon/src/main/java/org/joinmastodon/android/fragments/HasAccountID.java @@ -30,6 +30,10 @@ public interface HasAccountID { return getInstance().map(Instance::isIceshrimpJs).orElse(false); } + default boolean isInstanceMitra() { + return getInstance().map(Instance::isMitra).orElse(false); + } + default Optional getInstance() { return getSession().getInstance(); } blob - 6c408418c013ee589a3adb77e013244b8f8e192f blob + cca1c4cb6c4116fcd7eb452ca87c1d30556faa96 --- mastodon/src/main/java/org/joinmastodon/android/model/Instance.java +++ mastodon/src/main/java/org/joinmastodon/android/model/Instance.java @@ -168,6 +168,10 @@ public class Instance extends BaseModel{ return version.contains("compatible; Iceshrimp "); // Iceshrimp.NET will not have a space immediately after } + public boolean isMitra() { + return version.contains("compatible; Mitra"); + } + public boolean hasFeature(Feature feature) { Optional> pleromaFeatures = Optional.ofNullable(pleroma) .map(p -> p.metadata) blob - f0555f6f0f884c0be9a560c89c0f279a15117815 blob + 0c0c1b99145f2405e985b49d5056debfe87ee733 --- mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/EmojiReactionsStatusDisplayItem.java +++ mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/EmojiReactionsStatusDisplayItem.java @@ -117,7 +117,7 @@ public class EmojiReactionsStatusDisplayItem extends S private MastodonAPIRequest createRequest(String name, int count, boolean delete, Holder.EmojiReactionViewHolder vh, Consumer cb, Runnable err){ setActionProgressVisible(vh, true); - boolean ak=parentFragment.isInstanceAkkoma(); + boolean akOrMitra=parentFragment.isInstanceAkkoma() || parentFragment.isInstanceMitra(); boolean keepSpinning=delete && count == 1; if(forAnnouncement){ MastodonAPIRequest req=delete @@ -138,8 +138,8 @@ public class EmojiReactionsStatusDisplayItem extends S }); }else{ MastodonAPIRequest req=delete - ? (ak ? new PleromaDeleteStatusReaction(status.id, name) : new DeleteStatusReaction(status.id, name)) - : (ak ? new PleromaAddStatusReaction(status.id, name) : new AddStatusReaction(status.id, name)); + ? (akOrMitra ? new PleromaDeleteStatusReaction(status.id, name) : new DeleteStatusReaction(status.id, name)) + : (akOrMitra ? new PleromaAddStatusReaction(status.id, name) : new AddStatusReaction(status.id, name)); return req.setCallback(new Callback<>(){ @Override public void onSuccess(Status result){