summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2023-02-16 15:46:48 +0100
committerThomas <tschneider.ac@gmail.com>2023-02-16 15:46:48 +0100
commitc403dc14f9a1060766642041a41bd16828230912 (patch)
tree9e6287cdb82ef78348b25f92f4fc8f327580857d /app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java
parent17b26de808fdb8719c0c34225428c2eb2c4f921d (diff)
Change first media size depending of the ratio (width/height)
Diffstat (limited to 'app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java')
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java28
1 files changed, 23 insertions, 5 deletions
diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java
index 89285d860..4b2c9b432 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java
@@ -40,6 +40,7 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.LinearLayoutCompat;
+import androidx.constraintlayout.widget.ConstraintSet;
import androidx.core.app.ActivityOptionsCompat;
import androidx.core.content.ContextCompat;
import androidx.lifecycle.LifecycleOwner;
@@ -494,8 +495,23 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie
holder.binding.media.moreMedia.setVisibility(View.GONE);
} else if (status.media_attachments.size() == 3) {
holder.binding.media.media1Container.mediaRoot.setVisibility(View.VISIBLE);
- holder.binding.media.media2Container.mediaRoot.setVisibility(View.GONE);
- holder.binding.media.media3Container.mediaRoot.setVisibility(View.VISIBLE);
+ if (status.media_attachments.get(0).meta != null && status.media_attachments.get(0).meta.small.width < status.media_attachments.get(0).meta.small.height) {
+ ConstraintSet constraintSet = new ConstraintSet();
+ constraintSet.clone(holder.binding.media.mediaContainer);
+ constraintSet.connect(holder.binding.media.media4Container.getRoot().getId(), ConstraintSet.START, holder.binding.media.media1Container.getRoot().getId(), ConstraintSet.END);
+ constraintSet.connect(holder.binding.media.media4Container.getRoot().getId(), ConstraintSet.TOP, holder.binding.media.media2Container.getRoot().getId(), ConstraintSet.BOTTOM);
+ constraintSet.applyTo(holder.binding.media.mediaContainer);
+ holder.binding.media.media2Container.mediaRoot.setVisibility(View.VISIBLE);
+ holder.binding.media.media3Container.mediaRoot.setVisibility(View.GONE);
+ } else {
+ ConstraintSet constraintSet = new ConstraintSet();
+ constraintSet.clone(holder.binding.media.mediaContainer);
+ constraintSet.connect(holder.binding.media.media4Container.getRoot().getId(), ConstraintSet.START, holder.binding.media.media3Container.getRoot().getId(), ConstraintSet.END);
+ constraintSet.connect(holder.binding.media.media4Container.getRoot().getId(), ConstraintSet.TOP, holder.binding.media.media1Container.getRoot().getId(), ConstraintSet.BOTTOM);
+ constraintSet.applyTo(holder.binding.media.mediaContainer);
+ holder.binding.media.media2Container.mediaRoot.setVisibility(View.GONE);
+ holder.binding.media.media3Container.mediaRoot.setVisibility(View.VISIBLE);
+ }
holder.binding.media.media4Container.mediaRoot.setVisibility(View.VISIBLE);
holder.binding.media.moreMedia.setVisibility(View.GONE);
} else if (status.media_attachments.size() == 4) {
@@ -517,7 +533,11 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie
if (mediaPosition == 1) {
layoutMediaBinding = holder.binding.media.media1Container;
} else if (mediaPosition == 2 && status.media_attachments.size() == 3) {
- layoutMediaBinding = holder.binding.media.media3Container;
+ if (status.media_attachments.get(0).meta != null && status.media_attachments.get(0).meta.small.width < status.media_attachments.get(0).meta.small.height) {
+ layoutMediaBinding = holder.binding.media.media2Container;
+ } else {
+ layoutMediaBinding = holder.binding.media.media3Container;
+ }
} else if (mediaPosition == 2) {
layoutMediaBinding = holder.binding.media.media2Container;
} else if (mediaPosition == 3 && status.media_attachments.size() == 3) {
@@ -530,8 +550,6 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie
if (layoutMediaBinding != null) {
loadAndAddAttachment(context, layoutMediaBinding, holder, this, mediaPosition, -1.f, -1.f, -1.f, status, attachment);
}
-
-
mediaPosition++;
}
} else {