diff --git a/app/build.gradle b/app/build.gradle index 08f860d22..1faf05959 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,8 @@ android { defaultConfig { minSdk 21 targetSdk 31 - versionCode 415 - versionName "3.4.2" + versionCode 416 + versionName "3.4.3" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } flavorDimensions "default" diff --git a/app/src/main/assets/release_notes/notes.json b/app/src/main/assets/release_notes/notes.json index 616c45812..2ce971c43 100644 --- a/app/src/main/assets/release_notes/notes.json +++ b/app/src/main/assets/release_notes/notes.json @@ -1,7 +1,12 @@ [ + { + "version": "3.4.3", + "code": "416", + "note": "Changed:\n- Swipe between timelines\n- Improve cache\n- Button sizes in messages follow defined scale\n\nFixed:\n- Pleroma: Emoji reactions\n- Sharing (several fixes)\n- Theme issues\n- Rendering issue for links\n- Notifications not removed from cache\n- Some crashes" + }, { "version": "3.4.2", - "code": "412", + "code": "415", "note": "Fixed:\n- Attach media to a reply" }, { diff --git a/app/src/main/java/app/fedilab/android/activities/MediaActivity.java b/app/src/main/java/app/fedilab/android/activities/MediaActivity.java index 75b469cc0..b028dc190 100644 --- a/app/src/main/java/app/fedilab/android/activities/MediaActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/MediaActivity.java @@ -388,12 +388,12 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { } } else { binding.translate.setVisibility(View.GONE); - binding.originalMessage.setVisibility(View.GONE); + binding.originalMessage.setVisibility(View.INVISIBLE); binding.mediaDescriptionTranslated.setVisibility(View.GONE); binding.mediaDescription.setVisibility(View.GONE); } } else { - binding.originalMessage.setVisibility(View.GONE); + binding.originalMessage.setVisibility(View.INVISIBLE); binding.translate.setVisibility(View.GONE); binding.mediaDescriptionTranslated.setVisibility(View.GONE); binding.mediaDescription.setVisibility(View.GONE); @@ -456,7 +456,7 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { } else { binding.mediaDescription.setVisibility(View.GONE); binding.translate.setVisibility(View.GONE); - binding.originalMessage.setVisibility(View.GONE); + binding.originalMessage.setVisibility(View.INVISIBLE); hideSystemUI(); } } diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/ReactionAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/ReactionAdapter.java index 1e24d310c..1b442542b 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/ReactionAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/ReactionAdapter.java @@ -33,6 +33,7 @@ import app.fedilab.android.client.entities.api.Reaction; import app.fedilab.android.databinding.DrawerReactionBinding; import app.fedilab.android.helper.Helper; import app.fedilab.android.viewmodel.mastodon.AnnouncementsVM; +import app.fedilab.android.viewmodel.pleroma.ActionsVM; /** @@ -44,10 +45,18 @@ public class ReactionAdapter extends RecyclerView.Adapter reactions; private final String announcementId; private Context context; + private final boolean statusReaction; + + ReactionAdapter(String announcementId, List reactions, boolean statusReaction) { + this.reactions = reactions; + this.announcementId = announcementId; + this.statusReaction = statusReaction; + } ReactionAdapter(String announcementId, List reactions) { this.reactions = reactions; this.announcementId = announcementId; + this.statusReaction = false; } @NonNull @@ -78,17 +87,33 @@ public class ReactionAdapter extends RecyclerView.Adapter { - if (reaction.me) { - announcementsVM.removeReaction(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, announcementId, reaction.name); - reaction.me = false; - } else { - announcementsVM.addReaction(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, announcementId, reaction.name); - reaction.me = true; - } - notifyItemChanged(position); - }); + if (!statusReaction) { + AnnouncementsVM announcementsVM = new ViewModelProvider((ViewModelStoreOwner) context).get(AnnouncementsVM.class); + holder.binding.reactionContainer.setOnClickListener(v -> { + if (reaction.me) { + announcementsVM.removeReaction(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, announcementId, reaction.name); + reaction.me = false; + } else { + announcementsVM.addReaction(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, announcementId, reaction.name); + reaction.me = true; + } + notifyItemChanged(position); + }); + } else { + ActionsVM actionVM = new ViewModelProvider((ViewModelStoreOwner) context).get(ActionsVM.class); + holder.binding.reactionContainer.setOnClickListener(v -> { + if (reaction.me) { + actionVM.removeReaction(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, announcementId, reaction.name); + reaction.me = false; + reaction.count -= 1; + } else { + actionVM.addReaction(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, announcementId, reaction.name); + reaction.me = true; + reaction.count += 1; + } + notifyItemChanged(position); + }); + } } @Override diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java index b8476b10a..e8f327e66 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java @@ -348,7 +348,7 @@ public class StatusAdapter extends RecyclerView.Adapter if (MainActivity.currentAccount != null && MainActivity.currentAccount.api == Account.API.PLEROMA) { if (status.pleroma != null && status.pleroma.emoji_reactions != null && status.pleroma.emoji_reactions.size() > 0) { holder.binding.layoutReactions.getRoot().setVisibility(View.VISIBLE); - ReactionAdapter reactionAdapter = new ReactionAdapter(status.id, status.pleroma.emoji_reactions); + ReactionAdapter reactionAdapter = new ReactionAdapter(status.id, status.pleroma.emoji_reactions, true); holder.binding.layoutReactions.reactionsView.setAdapter(reactionAdapter); LinearLayoutManager layoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false); @@ -369,7 +369,7 @@ public class StatusAdapter extends RecyclerView.Adapter return; } for (Reaction reaction : status.pleroma.emoji_reactions) { - if (reaction.name.compareTo(emojiStr) == 0) { + if (reaction.name.compareTo(emojiStr) == 0 && reaction.me) { alreadyAdded = true; reaction.count = (reaction.count - 1); if (reaction.count == 0) { @@ -405,6 +405,7 @@ public class StatusAdapter extends RecyclerView.Adapter int paddingDp = (int) (paddingPixel * density); builder.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); builder.setTitle(R.string.insert_emoji); + if (emojis != null && emojis.size() > 0 && emojis.get(BaseMainActivity.currentInstance) != null) { GridView gridView = new GridView(context); gridView.setAdapter(new EmojiAdapter(emojis.get(BaseMainActivity.currentInstance))); @@ -418,7 +419,7 @@ public class StatusAdapter extends RecyclerView.Adapter return; } for (Reaction reaction : status.pleroma.emoji_reactions) { - if (reaction.name.compareTo(emojiStr) == 0) { + if (reaction.name.compareTo(emojiStr) == 0 && reaction.me) { alreadyAdded = true; reaction.count = (reaction.count - 1); if (reaction.count == 0) { diff --git a/app/src/main/res/layout/activity_media_pager.xml b/app/src/main/res/layout/activity_media_pager.xml index 458fed4d8..510961f41 100644 --- a/app/src/main/res/layout/activity_media_pager.xml +++ b/app/src/main/res/layout/activity_media_pager.xml @@ -95,7 +95,7 @@ android:text="@string/view_the_original_message" android:textColor="@color/cyanea_accent_dark_reference" android:textSize="18sp" - android:visibility="gone" + android:visibility="invisible" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/drawer_status.xml b/app/src/main/res/layout/drawer_status.xml index 23415d7a8..0828b3b2d 100644 --- a/app/src/main/res/layout/drawer_status.xml +++ b/app/src/main/res/layout/drawer_status.xml @@ -247,7 +247,7 @@ android:text="@string/display_toot_truncate" android:textAllCaps="false" app:iconTint="@color/cyanea_accent_reference" - app:strokeColor="@color/cyanea_accent_dark_reference" /> + app:strokeColor="@color/cyanea_accent_reference" />