Release 3.4.3

This commit is contained in:
Thomas 2022-10-22 18:35:05 +02:00
parent 50fca052b3
commit e8e5af7abe
8 changed files with 65 additions and 22 deletions

View file

@ -13,8 +13,8 @@ android {
defaultConfig { defaultConfig {
minSdk 21 minSdk 21
targetSdk 31 targetSdk 31
versionCode 415 versionCode 416
versionName "3.4.2" versionName "3.4.3"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
} }
flavorDimensions "default" flavorDimensions "default"

View file

@ -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", "version": "3.4.2",
"code": "412", "code": "415",
"note": "Fixed:\n- Attach media to a reply" "note": "Fixed:\n- Attach media to a reply"
}, },
{ {

View file

@ -388,12 +388,12 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface {
} }
} else { } else {
binding.translate.setVisibility(View.GONE); binding.translate.setVisibility(View.GONE);
binding.originalMessage.setVisibility(View.GONE); binding.originalMessage.setVisibility(View.INVISIBLE);
binding.mediaDescriptionTranslated.setVisibility(View.GONE); binding.mediaDescriptionTranslated.setVisibility(View.GONE);
binding.mediaDescription.setVisibility(View.GONE); binding.mediaDescription.setVisibility(View.GONE);
} }
} else { } else {
binding.originalMessage.setVisibility(View.GONE); binding.originalMessage.setVisibility(View.INVISIBLE);
binding.translate.setVisibility(View.GONE); binding.translate.setVisibility(View.GONE);
binding.mediaDescriptionTranslated.setVisibility(View.GONE); binding.mediaDescriptionTranslated.setVisibility(View.GONE);
binding.mediaDescription.setVisibility(View.GONE); binding.mediaDescription.setVisibility(View.GONE);
@ -456,7 +456,7 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface {
} else { } else {
binding.mediaDescription.setVisibility(View.GONE); binding.mediaDescription.setVisibility(View.GONE);
binding.translate.setVisibility(View.GONE); binding.translate.setVisibility(View.GONE);
binding.originalMessage.setVisibility(View.GONE); binding.originalMessage.setVisibility(View.INVISIBLE);
hideSystemUI(); hideSystemUI();
} }
} }

View file

@ -33,6 +33,7 @@ import app.fedilab.android.client.entities.api.Reaction;
import app.fedilab.android.databinding.DrawerReactionBinding; import app.fedilab.android.databinding.DrawerReactionBinding;
import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.Helper;
import app.fedilab.android.viewmodel.mastodon.AnnouncementsVM; import app.fedilab.android.viewmodel.mastodon.AnnouncementsVM;
import app.fedilab.android.viewmodel.pleroma.ActionsVM;
/** /**
@ -44,10 +45,18 @@ public class ReactionAdapter extends RecyclerView.Adapter<ReactionAdapter.Reacti
private final List<Reaction> reactions; private final List<Reaction> reactions;
private final String announcementId; private final String announcementId;
private Context context; private Context context;
private final boolean statusReaction;
ReactionAdapter(String announcementId, List<Reaction> reactions, boolean statusReaction) {
this.reactions = reactions;
this.announcementId = announcementId;
this.statusReaction = statusReaction;
}
ReactionAdapter(String announcementId, List<Reaction> reactions) { ReactionAdapter(String announcementId, List<Reaction> reactions) {
this.reactions = reactions; this.reactions = reactions;
this.announcementId = announcementId; this.announcementId = announcementId;
this.statusReaction = false;
} }
@NonNull @NonNull
@ -78,17 +87,33 @@ public class ReactionAdapter extends RecyclerView.Adapter<ReactionAdapter.Reacti
holder.binding.reactionName.setVisibility(View.VISIBLE); holder.binding.reactionName.setVisibility(View.VISIBLE);
holder.binding.reactionEmoji.setVisibility(View.GONE); holder.binding.reactionEmoji.setVisibility(View.GONE);
} }
AnnouncementsVM announcementsVM = new ViewModelProvider((ViewModelStoreOwner) context).get(AnnouncementsVM.class); if (!statusReaction) {
holder.binding.reactionContainer.setOnClickListener(v -> { AnnouncementsVM announcementsVM = new ViewModelProvider((ViewModelStoreOwner) context).get(AnnouncementsVM.class);
if (reaction.me) { holder.binding.reactionContainer.setOnClickListener(v -> {
announcementsVM.removeReaction(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, announcementId, reaction.name); if (reaction.me) {
reaction.me = false; announcementsVM.removeReaction(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, announcementId, reaction.name);
} else { reaction.me = false;
announcementsVM.addReaction(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, announcementId, reaction.name); } else {
reaction.me = true; announcementsVM.addReaction(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, announcementId, reaction.name);
} reaction.me = true;
notifyItemChanged(position); }
}); 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 @Override

View file

@ -348,7 +348,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
if (MainActivity.currentAccount != null && MainActivity.currentAccount.api == Account.API.PLEROMA) { 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) { if (status.pleroma != null && status.pleroma.emoji_reactions != null && status.pleroma.emoji_reactions.size() > 0) {
holder.binding.layoutReactions.getRoot().setVisibility(View.VISIBLE); 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); holder.binding.layoutReactions.reactionsView.setAdapter(reactionAdapter);
LinearLayoutManager layoutManager LinearLayoutManager layoutManager
= new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false); = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false);
@ -369,7 +369,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
return; return;
} }
for (Reaction reaction : status.pleroma.emoji_reactions) { for (Reaction reaction : status.pleroma.emoji_reactions) {
if (reaction.name.compareTo(emojiStr) == 0) { if (reaction.name.compareTo(emojiStr) == 0 && reaction.me) {
alreadyAdded = true; alreadyAdded = true;
reaction.count = (reaction.count - 1); reaction.count = (reaction.count - 1);
if (reaction.count == 0) { if (reaction.count == 0) {
@ -405,6 +405,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
int paddingDp = (int) (paddingPixel * density); int paddingDp = (int) (paddingPixel * density);
builder.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); builder.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss());
builder.setTitle(R.string.insert_emoji); builder.setTitle(R.string.insert_emoji);
if (emojis != null && emojis.size() > 0 && emojis.get(BaseMainActivity.currentInstance) != null) { if (emojis != null && emojis.size() > 0 && emojis.get(BaseMainActivity.currentInstance) != null) {
GridView gridView = new GridView(context); GridView gridView = new GridView(context);
gridView.setAdapter(new EmojiAdapter(emojis.get(BaseMainActivity.currentInstance))); gridView.setAdapter(new EmojiAdapter(emojis.get(BaseMainActivity.currentInstance)));
@ -418,7 +419,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
return; return;
} }
for (Reaction reaction : status.pleroma.emoji_reactions) { for (Reaction reaction : status.pleroma.emoji_reactions) {
if (reaction.name.compareTo(emojiStr) == 0) { if (reaction.name.compareTo(emojiStr) == 0 && reaction.me) {
alreadyAdded = true; alreadyAdded = true;
reaction.count = (reaction.count - 1); reaction.count = (reaction.count - 1);
if (reaction.count == 0) { if (reaction.count == 0) {

View file

@ -95,7 +95,7 @@
android:text="@string/view_the_original_message" android:text="@string/view_the_original_message"
android:textColor="@color/cyanea_accent_dark_reference" android:textColor="@color/cyanea_accent_dark_reference"
android:textSize="18sp" android:textSize="18sp"
android:visibility="gone" android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"

View file

@ -247,7 +247,7 @@
android:text="@string/display_toot_truncate" android:text="@string/display_toot_truncate"
android:textAllCaps="false" android:textAllCaps="false"
app:iconTint="@color/cyanea_accent_reference" app:iconTint="@color/cyanea_accent_reference"
app:strokeColor="@color/cyanea_accent_dark_reference" /> app:strokeColor="@color/cyanea_accent_reference" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/container_trans" android:id="@+id/container_trans"

View file

@ -0,0 +1,12 @@
Changed:
- Swipe between timelines
- Improve cache
- Button sizes in messages follow defined scale
Fixed:
- Pleroma: Emoji reactions
- Sharing (several fixes)
- Theme issues
- Rendering issue for links
- Notifications not removed from cache
- Some crashes