From 5fe2d1ec0d4ac0952ace5ef47d0ab5350c99c1b7 Mon Sep 17 00:00:00 2001 From: 0xd9a <0xd9a@noreply.codeberg.org> Date: Sat, 5 Apr 2025 23:09:09 +0530 Subject: [PATCH] Squeeze buttons when needed to prevent overlapping --- .../mastodon/ui/drawer/StatusAdapter.java | 18 +- .../layouts/mastodon/layout/drawer_status.xml | 195 ++++++++---------- 2 files changed, 90 insertions(+), 123 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java index 612416ff..c25300d6 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java @@ -1286,18 +1286,16 @@ public class StatusAdapter extends RecyclerView.Adapter holder.binding.actionButtonFavorite.setImageSize((int) (normalSize * scaleIcon)); holder.binding.actionButtonBookmark.setImageSize((int) (normalSize * scaleIcon)); - - holder.binding.statusAddCustomEmoji.getLayoutParams().width = (int) (normalSize * scaleIcon); - holder.binding.statusAddCustomEmoji.getLayoutParams().height = (int) (normalSize * scaleIcon); + holder.binding.statusAddCustomEmoji.setIconSize((int) (normalSize * scaleIcon)); holder.binding.statusAddCustomEmoji.requestLayout(); holder.binding.actionButtonQuote.setIconSize((int) (normalSize * scaleIcon)); holder.binding.actionButtonQuote.requestLayout(); - holder.binding.statusEmoji.getLayoutParams().width = (int) (normalSize * scaleIcon); - holder.binding.statusEmoji.getLayoutParams().height = (int) (normalSize * scaleIcon); - holder.binding.actionButtonMore.getLayoutParams().width = (int) (normalSize * scaleIcon); - holder.binding.actionButtonMore.getLayoutParams().height = (int) (normalSize * scaleIcon); + holder.binding.statusEmoji.setIconSize((int) (normalSize * scaleIcon)); + holder.binding.statusEmoji.requestLayout(); + + holder.binding.actionButtonMore.setIconSize((int) (normalSize * scaleIcon)); holder.binding.actionButtonMore.requestLayout(); holder.binding.actionShare.getLayoutParams().width = (int) (normalSize * scaleIcon); holder.binding.actionShare.getLayoutParams().height = (int) (normalSize * scaleIcon); @@ -2222,11 +2220,11 @@ public class StatusAdapter extends RecyclerView.Adapter // Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(() -> holder.binding.statusContent.invalidate(), 0, 100, TimeUnit.MILLISECONDS); if (remote) { - holder.binding.actionButtonMoreContainer.setVisibility(View.GONE); + holder.binding.actionButtonMore.setVisibility(View.GONE); } else { - holder.binding.actionButtonMoreContainer.setVisibility(View.VISIBLE); + holder.binding.actionButtonMore.setVisibility(View.VISIBLE); } - holder.binding.actionButtonMoreContainer.setOnClickListener(v -> { + holder.binding.actionButtonMore.setOnClickListener(v -> { boolean isOwner = statusToDeal.account.id.compareTo(BaseMainActivity.currentUserID) == 0; PopupMenu popup = new PopupMenu(context, holder.binding.actionButtonMore); popup.getMenuInflater() diff --git a/app/src/main/res/layouts/mastodon/layout/drawer_status.xml b/app/src/main/res/layouts/mastodon/layout/drawer_status.xml index 1f76b85f..964fa3e0 100644 --- a/app/src/main/res/layouts/mastodon/layout/drawer_status.xml +++ b/app/src/main/res/layouts/mastodon/layout/drawer_status.xml @@ -648,23 +648,19 @@ android:layout_width="match_parent" android:layout_height="48dp" android:layout_marginStart="48dp" - android:layout_marginEnd="16dp" + android:layout_marginEnd="6dp" android:layout_marginTop="6dp" android:clipChildren="false" android:clipToPadding="false"> + app:layout_constraintWidth_max="48dp"> + - - + app:layout_constraintWidth_max="48dp"> - + + app:layout_constraintWidth_max="48dp" /> - + app:layout_constraintWidth_max="48dp"> + + - + + @@ -797,7 +784,7 @@ - - - - - - - + android:contentDescription="@string/formula" + android:visibility="gone" + app:icon="@drawable/ic_baseline_functions_24" + app:iconGravity="textStart" + app:iconSize="28dp" + app:iconTint="?colorControlNormal" + app:layout_constraintWidth_max="48dp" + tools:visibility="visible" /> - + - + + + + +