From 4b3236e97e213f2285549a2e569629e0bc9b3d67 Mon Sep 17 00:00:00 2001
From: Thomas <tschneider.ac@gmail.com>
Date: Thu, 20 Oct 2022 12:18:53 +0200
Subject: [PATCH] Fix button sizes for messages

---
 .../fedilab/android/helper/CustomEmoji.java   |  2 +-
 .../app/fedilab/android/helper/Helper.java    |  2 +-
 .../ui/drawer/NotificationAdapter.java        |  2 ++
 .../android/ui/drawer/StatusAdapter.java      | 26 +++++++++++++----
 .../res/drawable/ic_baseline_storage_24.xml   | 10 +++++++
 app/src/main/res/layout/drawer_follow.xml     |  2 +-
 app/src/main/res/layout/drawer_status.xml     | 29 ++++++++++++++-----
 7 files changed, 57 insertions(+), 16 deletions(-)
 create mode 100644 app/src/main/res/drawable/ic_baseline_storage_24.xml

diff --git a/app/src/main/java/app/fedilab/android/helper/CustomEmoji.java b/app/src/main/java/app/fedilab/android/helper/CustomEmoji.java
index d3230475..8f816ccc 100644
--- a/app/src/main/java/app/fedilab/android/helper/CustomEmoji.java
+++ b/app/src/main/java/app/fedilab/android/helper/CustomEmoji.java
@@ -32,7 +32,7 @@ public class CustomEmoji extends ReplacementSpan {
         Context mContext = viewWeakReference.get().getContext();
         this.viewWeakReference = viewWeakReference;
         SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(mContext);
-        scale = sharedpreferences.getFloat(mContext.getString(R.string.SET_FONT_SCALE), 1.0f);
+        scale = sharedpreferences.getFloat(mContext.getString(R.string.SET_FONT_SCALE), 1.1f);
     }
 
     @Override
diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java
index 20e2dd01..7dce373f 100644
--- a/app/src/main/java/app/fedilab/android/helper/Helper.java
+++ b/app/src/main/java/app/fedilab/android/helper/Helper.java
@@ -1188,7 +1188,7 @@ public class Helper {
     public static MultipartBody.Part getMultipartBodyWithWM(Context context, String waterMark, @NonNull String paramName, @NonNull Attachment attachment) {
         File files = new File(attachment.local_path);
         SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
-        float scale = sharedpreferences.getFloat(context.getString(R.string.SET_FONT_SCALE), 1.0f);
+        float scale = sharedpreferences.getFloat(context.getString(R.string.SET_FONT_SCALE), 1.1f);
         float textSize = 15;
         Paint mPaint = new Paint();
         mPaint.setTextSize(textSize);
diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/NotificationAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/NotificationAdapter.java
index 07fb4c34..04c31fad 100644
--- a/app/src/main/java/app/fedilab/android/ui/drawer/NotificationAdapter.java
+++ b/app/src/main/java/app/fedilab/android/ui/drawer/NotificationAdapter.java
@@ -226,6 +226,7 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
             } else if (getItemViewType(position) == TYPE_POLL) {
                 holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_poll_24);
             }
+
             StatusesVM statusesVM = new ViewModelProvider((ViewModelStoreOwner) context).get(StatusesVM.class);
             SearchVM searchVM = new ViewModelProvider((ViewModelStoreOwner) context).get(SearchVM.class);
             if (notification.status != null) {
@@ -272,6 +273,7 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
                 }
             } else {
                 holderStatus.bindingNotification.containerTransparent.setVisibility(View.VISIBLE);
+                holderStatus.bindingNotification.status.mediaContainer.setVisibility(View.GONE);
                 String title = "";
                 MastodonHelper.loadPPMastodon(holderStatus.binding.avatar, notification.account);
                 if (getItemViewType(position) == TYPE_FAVOURITE) {
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 bd3c343b..86f959b7 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
@@ -915,17 +915,34 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
         if (theme_text_header_2_line != -1) {
             holder.binding.username.setTextColor(theme_text_header_2_line);
         }
-
+        //final float scale = context.getResources().getDisplayMetrics().density;
+        final float scale = sharedpreferences.getFloat(context.getString(R.string.SET_FONT_SCALE), 1.1f);
         if (statusToDeal.account.locked) {
-            final float scale = context.getResources().getDisplayMetrics().density;
             Drawable img = ContextCompat.getDrawable(context, R.drawable.ic_baseline_lock_24);
             assert img != null;
-            img.setBounds(0, 0, (int) (16 * scale + 0.5f), (int) (16 * scale + 0.5f));
+            img.setBounds(0, 0, (int) (Helper.convertDpToPixel(16, context) * scale + 0.5f), (int) (Helper.convertDpToPixel(16, context) * scale + 0.5f));
             holder.binding.username.setCompoundDrawables(null, null, img, null);
         } else {
             holder.binding.username.setCompoundDrawables(null, null, null, null);
         }
-
+        float normalSize = Helper.convertDpToPixel(28, context);
+        holder.binding.actionButtonReply.getLayoutParams().width = (int) (normalSize * scale);
+        holder.binding.actionButtonReply.getLayoutParams().height = (int) (normalSize * scale);
+        holder.binding.actionButtonReply.requestLayout();
+        holder.binding.actionButtonBoost.setImageSize((int) (normalSize * scale));
+        holder.binding.actionButtonFavorite.setImageSize((int) (normalSize * scale));
+        holder.binding.actionButtonBookmark.setImageSize((int) (normalSize * scale));
+        holder.binding.statusAddCustomEmoji.getLayoutParams().width = (int) (normalSize * scale);
+        holder.binding.statusAddCustomEmoji.getLayoutParams().height = (int) (normalSize * scale);
+        holder.binding.statusAddCustomEmoji.requestLayout();
+        holder.binding.statusEmoji.getLayoutParams().width = (int) (normalSize * scale);
+        holder.binding.statusEmoji.getLayoutParams().height = (int) (normalSize * scale);
+        holder.binding.actionButtonMore.getLayoutParams().width = (int) (normalSize * scale);
+        holder.binding.actionButtonMore.getLayoutParams().height = (int) (normalSize * scale);
+        holder.binding.actionButtonMore.requestLayout();
+        holder.binding.actionShare.getLayoutParams().width = (int) (normalSize * scale);
+        holder.binding.actionShare.getLayoutParams().height = (int) (normalSize * scale);
+        holder.binding.actionShare.requestLayout();
 
         if (statusToDeal.account.bot) {
             holder.binding.botIcon.setVisibility(View.VISIBLE);
@@ -1416,7 +1433,6 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
                     if (ownvotes != null && ownvotes.contains(j)) {
                         Drawable img = ContextCompat.getDrawable(context, R.drawable.ic_baseline_check_24);
                         assert img != null;
-                        final float scale = context.getResources().getDisplayMetrics().density;
                         img.setColorFilter(ContextCompat.getColor(context, R.color.cyanea_accent_reference), PorterDuff.Mode.SRC_IN);
                         img.setBounds(0, 0, (int) (20 * scale + 0.5f), (int) (20 * scale + 0.5f));
                         pollItemBinding.pollItemText.setCompoundDrawables(null, null, img, null);
diff --git a/app/src/main/res/drawable/ic_baseline_storage_24.xml b/app/src/main/res/drawable/ic_baseline_storage_24.xml
new file mode 100644
index 00000000..7871eb9d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_storage_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="#FFFFFF"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M2,20h20v-4L2,16v4zM4,17h2v2L4,19v-2zM2,4v4h20L22,4L2,4zM6,7L4,7L4,5h2v2zM2,14h20v-4L2,10v4zM4,11h2v2L4,13v-2z" />
+</vector>
diff --git a/app/src/main/res/layout/drawer_follow.xml b/app/src/main/res/layout/drawer_follow.xml
index 759432ca..37a41359 100644
--- a/app/src/main/res/layout/drawer_follow.xml
+++ b/app/src/main/res/layout/drawer_follow.xml
@@ -41,7 +41,7 @@
                 android:layout_gravity="center"
                 android:layout_marginEnd="12dp"
                 android:adjustViewBounds="true"
-                android:src="@drawable/ic_baseline_cached_24"
+                android:src="@drawable/ic_baseline_storage_24"
                 android:visibility="gone"
                 tools:visibility="visible" />
 
diff --git a/app/src/main/res/layout/drawer_status.xml b/app/src/main/res/layout/drawer_status.xml
index e04fb47f..23415d7a 100644
--- a/app/src/main/res/layout/drawer_status.xml
+++ b/app/src/main/res/layout/drawer_status.xml
@@ -548,14 +548,16 @@
             android:clipChildren="false"
             android:clipToPadding="false">
 
-            <androidx.appcompat.widget.AppCompatImageButton
+            <androidx.appcompat.widget.AppCompatImageView
                 android:id="@+id/action_button_reply"
-                style="@style/Widget.AppCompat.Button.Borderless"
                 android:layout_width="28dp"
                 android:layout_height="28dp"
                 android:contentDescription="@string/reply"
-                android:layout_marginStart="6dp"
+                android:layout_gravity="center"
                 android:adjustViewBounds="true"
+                android:clickable="true"
+                android:focusable="true"
+                android:layout_marginStart="6dp"
                 app:srcCompat="@drawable/ic_reply" />
 
             <androidx.appcompat.widget.AppCompatTextView
@@ -619,12 +621,13 @@
 
             <androidx.appcompat.widget.AppCompatImageView
                 android:id="@+id/cache_indicator"
-                android:layout_width="28dp"
-                android:layout_height="28dp"
+                android:layout_width="20dp"
+                android:layout_height="20dp"
                 android:layout_marginStart="12dp"
+                android:layout_gravity="center"
                 android:adjustViewBounds="true"
                 android:contentDescription="@string/cached_messages"
-                android:src="@drawable/ic_baseline_cached_24"
+                android:src="@drawable/ic_baseline_storage_24"
                 android:visibility="gone"
                 tools:visibility="visible" />
 
@@ -640,6 +643,10 @@
                 android:contentDescription="@string/add_reaction"
                 android:padding="3dp"
                 android:src="@drawable/ic_baseline_emoji_emotions_24"
+                android:layout_gravity="center"
+                android:adjustViewBounds="true"
+                android:clickable="true"
+                android:focusable="true"
                 android:visibility="gone"
                 tools:visibility="visible" />
 
@@ -650,6 +657,10 @@
                 android:layout_marginStart="6dp"
                 android:contentDescription="@string/add_reaction"
                 android:padding="3dp"
+                android:layout_gravity="center"
+                android:adjustViewBounds="true"
+                android:clickable="true"
+                android:focusable="true"
                 android:src="@drawable/ic_baseline_add_reaction_24"
                 android:visibility="gone"
                 tools:visibility="visible" />
@@ -659,13 +670,15 @@
                 android:layout_height="wrap_content"
                 android:layout_weight="1" />
 
-            <androidx.appcompat.widget.AppCompatImageButton
+            <androidx.appcompat.widget.AppCompatImageView
                 android:id="@+id/action_button_more"
-                style="@style/Widget.AppCompat.Button.Borderless"
                 android:contentDescription="@string/display_options"
                 android:layout_width="28dp"
                 android:layout_height="28dp"
+                android:layout_gravity="center"
+                android:clickable="true"
                 android:adjustViewBounds="true"
+                android:focusable="true"
                 app:srcCompat="@drawable/ic_more_horiz" />
 
         </androidx.appcompat.widget.LinearLayoutCompat>