diff --git a/src/main/java/eu/siacs/conversations/ui/BindingAdapters.java b/src/main/java/eu/siacs/conversations/ui/BindingAdapters.java index 6f6b4e8bebba341dbc61ca9c81ec7cb747167b95..502c2d1a79602f9c7680269effbbf6d8c330897b 100644 --- a/src/main/java/eu/siacs/conversations/ui/BindingAdapters.java +++ b/src/main/java/eu/siacs/conversations/ui/BindingAdapters.java @@ -1,6 +1,8 @@ package eu.siacs.conversations.ui; import android.view.View; +import android.view.ViewGroup; +import android.util.TypedValue; import com.google.android.material.chip.Chip; import com.google.android.material.chip.ChipGroup; @@ -41,6 +43,9 @@ public class BindingAdapters { final Consumer> onModifiedReactions, final Runnable addReaction) { final var context = chipGroup.getContext(); + final var size = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 35, context.getResources().getDisplayMetrics()); + final var corner = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 35, context.getResources().getDisplayMetrics()); + final var layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, size); final List> reactions = aggregated.reactions; if (reactions == null || reactions.isEmpty()) { chipGroup.setVisibility(View.GONE); @@ -51,9 +56,13 @@ public class BindingAdapters { final var emoji = reaction.getKey(); final var count = reaction.getValue(); final Chip chip = new Chip(chipGroup.getContext()); - chip.setEnsureMinTouchTargetSize(false); + //chip.setEnsureMinTouchTargetSize(false); + chip.setChipMinHeight(size-32.0f); + chip.ensureAccessibleTouchTarget(size); chip.setChipStartPadding(0.0f); chip.setChipEndPadding(0.0f); + chip.setChipCornerRadius(corner); + chip.setLayoutParams(layoutParams); if (count == 1) { chip.setText(emoji); } else { @@ -91,22 +100,26 @@ public class BindingAdapters { }); chipGroup.addView(chip); } - if (onReceived) { + if (addReaction != null) { final Chip chip = new Chip(chipGroup.getContext()); + chip.setChipMinHeight(size-32.0f); + chip.ensureAccessibleTouchTarget(size); + chip.setLayoutParams(layoutParams); + chip.setChipCornerRadius(corner); chip.setChipIconResource(R.drawable.ic_add_reaction_24dp); - chip.setChipStrokeColor( - MaterialColors.getColorStateListOrNull( - chipGroup.getContext(), - com.google.android.material.R.attr.colorTertiary)); + //chip.setChipStrokeColor( + // MaterialColors.getColorStateListOrNull( + // chipGroup.getContext(), + // com.google.android.material.R.attr.colorTertiary)); chip.setChipBackgroundColor( MaterialColors.getColorStateListOrNull( chipGroup.getContext(), - com.google.android.material.R.attr.colorTertiaryContainer)); + com.google.android.material.R.attr.colorSurfaceContainerLow)); chip.setChipIconTint( MaterialColors.getColorStateListOrNull( chipGroup.getContext(), - com.google.android.material.R.attr.colorOnTertiaryContainer)); - chip.setEnsureMinTouchTargetSize(false); + com.google.android.material.R.attr.colorOnSurface)); + //chip.setEnsureMinTouchTargetSize(false); chip.setTextEndPadding(0.0f); chip.setTextStartPadding(0.0f); chip.setOnClickListener(v -> addReaction.run()); diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java index e64e16d444036aee9c26b2955db9c570242e55b6..efd6e07c9b75ec5f1177ed62024c9d29bf17b3f6 100644 --- a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java +++ b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java @@ -1538,10 +1538,11 @@ public class MessageAdapter extends ArrayAdapter { reactions -> sendReactions(message, reactions), () -> addReaction(message)); } else if (type == SENT) { - BindingAdapters.setReactionsOnSent( + BindingAdapters.setReactionsOnReceived( viewHolder.reactions, message.getAggregatedReactions(), - reactions -> sendReactions(message, reactions)); + reactions -> sendReactions(message, reactions), + () -> addReaction(message)); } if (type == RECEIVED || type == SENT) { diff --git a/src/main/res/layout/item_message_received.xml b/src/main/res/layout/item_message_received.xml index 387afe0e1aba1e0d4c62304afa9b9575e71f981f..d25f8d82f210ed4037270ecc551a2328117ad2a0 100644 --- a/src/main/res/layout/item_message_received.xml +++ b/src/main/res/layout/item_message_received.xml @@ -128,7 +128,7 @@ android:id="@+id/reactions_anchor" android:layout_width="0dp" android:layout_height="0dp" - android:layout_marginBottom="4dp" + android:layout_marginBottom="12dp" app:layout_constraintBottom_toBottomOf="@+id/message_box" app:layout_constraintStart_toStartOf="@+id/message_box" /> @@ -136,10 +136,10 @@ android:id="@+id/reactions" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginStart="10dp" + android:layout_marginStart="7dp" android:orientation="horizontal" android:visibility="visible" - app:chipSpacingHorizontal="4dp" + app:chipSpacingHorizontal="2dp" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="@+id/message_box" app:layout_constraintTop_toBottomOf="@+id/reactions_anchor" /> diff --git a/src/main/res/layout/item_message_sent.xml b/src/main/res/layout/item_message_sent.xml index a883fa6adf5c775f9071edb57c306d316e7f5317..5d034970c75010c7405558821ef8fb0d908d4d11 100644 --- a/src/main/res/layout/item_message_sent.xml +++ b/src/main/res/layout/item_message_sent.xml @@ -135,7 +135,7 @@ android:id="@+id/reactions_anchor" android:layout_width="0dp" android:layout_height="0dp" - android:layout_marginBottom="4dp" + android:layout_marginBottom="12dp" app:layout_constraintBottom_toBottomOf="@+id/message_box" app:layout_constraintEnd_toEndOf="@+id/message_box" /> @@ -143,10 +143,10 @@ android:id="@+id/reactions" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginEnd="10dp" + android:layout_marginEnd="7dp" android:orientation="horizontal" android:visibility="visible" - app:chipSpacingHorizontal="4dp" + app:chipSpacingHorizontal="2dp" app:layout_constraintEnd_toEndOf="@+id/message_box" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintTop_toBottomOf="@+id/reactions_anchor" />