Move image back below text

Stephen Paul Weber created

Now that it's just all round anyway

Change summary

src/cheogram/res/values/styles.xml                                  | 10 
src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java |  9 
src/main/res/layout/message_content.xml                             | 31 
src/main/res/layout/message_received.xml                            | 13 
src/main/res/layout/message_sent.xml                                | 13 
5 files changed, 28 insertions(+), 48 deletions(-)

Detailed changes

src/cheogram/res/values/styles.xml 🔗

@@ -5,15 +5,7 @@
 	<item name="cornerSize">@dimen/avatar_radius</item>
 </style>
 
-<style name="ShapeAppearanceOverlay.MessageImageIn" parent="ShapeAppearance.MaterialComponents.SmallComponent">
-	<item name="cornerFamily">rounded</item>
-	<item name="cornerSizeTopLeft">@dimen/image_radius</item>
-	<item name="cornerSizeTopRight">@dimen/image_radius</item>
-	<item name="cornerSizeBottomLeft">@dimen/image_radius</item>
-	<item name="cornerSizeBottomRight">@dimen/image_radius</item>
-</style>
-
-<style name="ShapeAppearanceOverlay.MessageImageOut" parent="ShapeAppearance.MaterialComponents.SmallComponent">
+<style name="ShapeAppearanceOverlay.MessageImage" parent="ShapeAppearance.MaterialComponents.SmallComponent">
 	<item name="cornerFamily">rounded</item>
 	<item name="cornerSizeTopLeft">@dimen/image_radius</item>
 	<item name="cornerSizeTopRight">@dimen/image_radius</item>

src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java 🔗

@@ -692,7 +692,7 @@ public class MessageAdapter extends ArrayAdapter<Message> {
                 if (height < 1) height = 1080;
 
                 viewHolder.image.setVisibility(View.VISIBLE);
-                imagePreviewLayout(width, height, viewHolder.image);
+                imagePreviewLayout(width, height, viewHolder.image, message.getBody() != null && message.getBody().length() > 0);
                 activity.loadBitmap(message, viewHolder.image);
                 viewHolder.image.setOnClickListener(v -> ConversationFragment.downloadFile(activity, message));
 
@@ -790,12 +790,12 @@ public class MessageAdapter extends ArrayAdapter<Message> {
         viewHolder.audioPlayer.setVisibility(View.GONE);
         viewHolder.image.setVisibility(View.VISIBLE);
         final FileParams params = message.getFileParams();
-        imagePreviewLayout(params.width, params.height, viewHolder.image);
+        imagePreviewLayout(params.width, params.height, viewHolder.image, message.getBody() != null && message.getBody().length() > 0);
         activity.loadBitmap(message, viewHolder.image);
         viewHolder.image.setOnClickListener(v -> openDownloadable(message));
     }
 
-    private void imagePreviewLayout(int w, int h, ImageView image) {
+    private void imagePreviewLayout(int w, int h, ImageView image, boolean topMargin) {
         final float target = activity.getResources().getDimension(R.dimen.image_preview_width);
         final int scaledW;
         final int scaledH;
@@ -813,7 +813,8 @@ public class MessageAdapter extends ArrayAdapter<Message> {
             scaledH = (int) (h / ((double) w / target));
         }
         final LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(scaledW, scaledH);
-        layoutParams.setMargins(0, (int) (metrics.density * 4), 0, (int) (metrics.density * 4));
+        layoutParams.setMargins(0, topMargin ? (int) (metrics.density * 4) : 0, 0, (int) (metrics.density * 4));
+        layoutParams.gravity = Gravity.CENTER;
         image.setLayoutParams(layoutParams);
     }
 

src/main/res/layout/message_content.xml 🔗

@@ -1,6 +1,28 @@
 <?xml version="1.0" encoding="utf-8"?>
 <merge xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
 
+    <TextView
+        android:id="@+id/message_body"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:autoLink="web"
+        android:longClickable="false"
+        android:textIsSelectable="true"
+        android:textAppearance="@style/TextAppearance.Conversations.Body1"/>
+
+    <com.google.android.material.imageview.ShapeableImageView
+        android:id="@+id/message_image"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:layout_marginBottom="4dp"
+        android:adjustViewBounds="true"
+        android:background="@color/black87"
+        android:longClickable="true"
+        android:scaleType="centerCrop"
+        app:strokeColor="@color/custom_theme_accent"
+        app:shapeAppearance="@style/ShapeAppearanceOverlay.MessageImage" />
+
     <Button
         android:id="@+id/download_button"
         style="?android:attr/buttonStyleSmall"
@@ -56,13 +78,4 @@
             android:progress="100"/>
     </RelativeLayout>
 
-    <TextView
-        android:id="@+id/message_body"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:autoLink="web"
-        android:longClickable="false"
-        android:textIsSelectable="true"
-        android:textAppearance="@style/TextAppearance.Conversations.Body1"/>
-
 </merge>

src/main/res/layout/message_received.xml 🔗

@@ -44,19 +44,6 @@
             android:clipToPadding="false"
             android:padding="2dp">
 
-            <com.google.android.material.imageview.ShapeableImageView
-                android:id="@+id/message_image"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:translationY="-5dp"
-                android:layout_marginBottom="4dp"
-                android:adjustViewBounds="true"
-                android:background="@color/black87"
-                android:longClickable="true"
-                android:scaleType="centerCrop"
-                app:strokeColor="@color/custom_theme_accent"
-                app:shapeAppearance="@style/ShapeAppearanceOverlay.MessageImageIn" />
-
             <include
                 android:id="@+id/message_content"
                 layout="@layout/message_content" />

src/main/res/layout/message_sent.xml 🔗

@@ -45,19 +45,6 @@
             android:clipToPadding="false"
             android:padding="2dp">
 
-            <com.google.android.material.imageview.ShapeableImageView
-                android:id="@+id/message_image"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:translationY="-5dp"
-                android:layout_marginBottom="4dp"
-                android:adjustViewBounds="true"
-                android:background="@color/black87"
-                android:longClickable="true"
-                android:scaleType="centerCrop"
-                app:strokeColor="@color/custom_theme_accent"
-                app:shapeAppearance="@style/ShapeAppearanceOverlay.MessageImageOut" />
-
             <include
                 android:id="@+id/message_content"
                 layout="@layout/message_content" />