@@ -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>
@@ -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);
}
@@ -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>
@@ -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" />
@@ -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" />