Display reactions in ImageView instead of TextView on message bubbles.
This commit is contained in:
parent
9f8a110428
commit
1cc8634cc7
4 changed files with 39 additions and 32 deletions
|
@ -243,27 +243,21 @@
|
|||
app:mhfl_maxHeight="@dimen/reactions_bubble_container_max_height"
|
||||
tools:visibility="visible">
|
||||
|
||||
<org.thoughtcrime.securesms.components.emoji.EmojiTextView
|
||||
<org.thoughtcrime.securesms.components.emoji.EmojiImageView
|
||||
android:id="@+id/reactions_bubbles_secondary"
|
||||
android:layout_width="@dimen/reactions_bubble_size"
|
||||
android:layout_height="@dimen/reactions_bubble_size"
|
||||
android:layout_gravity="bottom"
|
||||
android:background="?attr/reactions_recv_background"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:textSize="@dimen/reactions_bubble_text_size"
|
||||
tools:ignore="SpUsage" />
|
||||
android:padding="6dp"
|
||||
android:background="?attr/reactions_recv_background" />
|
||||
|
||||
<org.thoughtcrime.securesms.components.emoji.EmojiTextView
|
||||
<org.thoughtcrime.securesms.components.emoji.EmojiImageView
|
||||
android:id="@+id/reactions_bubbles_primary"
|
||||
android:layout_width="@dimen/reactions_bubble_size"
|
||||
android:layout_height="@dimen/reactions_bubble_size"
|
||||
android:layout_gravity="top"
|
||||
android:background="?attr/reactions_recv_background"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:textSize="@dimen/reactions_bubble_text_size"
|
||||
tools:ignore="SpUsage" />
|
||||
android:padding="6dp"
|
||||
android:background="?attr/reactions_recv_background" />
|
||||
|
||||
</org.thoughtcrime.securesms.components.MaxHeightFrameLayout>
|
||||
|
||||
|
|
|
@ -200,27 +200,21 @@
|
|||
app:mhfl_maxHeight="@dimen/reactions_bubble_container_max_height"
|
||||
tools:visibility="visible">
|
||||
|
||||
<org.thoughtcrime.securesms.components.emoji.EmojiTextView
|
||||
<org.thoughtcrime.securesms.components.emoji.EmojiImageView
|
||||
android:id="@+id/reactions_bubbles_secondary"
|
||||
android:layout_width="@dimen/reactions_bubble_size"
|
||||
android:layout_height="@dimen/reactions_bubble_size"
|
||||
android:layout_gravity="bottom"
|
||||
android:background="?attr/reactions_recv_background"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:textSize="@dimen/reactions_bubble_text_size"
|
||||
tools:ignore="SpUsage" />
|
||||
android:padding="6dp"
|
||||
android:background="?attr/reactions_recv_background" />
|
||||
|
||||
<org.thoughtcrime.securesms.components.emoji.EmojiTextView
|
||||
<org.thoughtcrime.securesms.components.emoji.EmojiImageView
|
||||
android:id="@+id/reactions_bubbles_primary"
|
||||
android:layout_width="@dimen/reactions_bubble_size"
|
||||
android:layout_height="@dimen/reactions_bubble_size"
|
||||
android:layout_gravity="top"
|
||||
android:background="?attr/reactions_recv_background"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:textSize="@dimen/reactions_bubble_text_size"
|
||||
tools:ignore="SpUsage" />
|
||||
android:padding="6dp"
|
||||
android:background="?attr/reactions_recv_background" />
|
||||
|
||||
</org.thoughtcrime.securesms.components.MaxHeightFrameLayout>
|
||||
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
package org.thoughtcrime.securesms.components.emoji;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatImageView;
|
||||
|
||||
public class EmojiImageView extends AppCompatImageView {
|
||||
public EmojiImageView(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
public EmojiImageView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
public void setImageEmoji(CharSequence emoji) {
|
||||
setImageDrawable(EmojiProvider.getInstance(getContext()).getEmojiDrawable(emoji));
|
||||
}
|
||||
}
|
|
@ -9,23 +9,22 @@ import androidx.annotation.Nullable;
|
|||
import androidx.core.util.Pair;
|
||||
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.components.emoji.EmojiTextView;
|
||||
import org.thoughtcrime.securesms.components.emoji.EmojiImageView;
|
||||
import org.thoughtcrime.securesms.database.model.ReactionRecord;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.util.ThemeUtil;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
final class ConversationItemReactionBubbles {
|
||||
|
||||
private final ViewGroup reactionsContainer;
|
||||
private final EmojiTextView primaryEmojiReaction;
|
||||
private final EmojiTextView secondaryEmojiReaction;
|
||||
private final ViewGroup reactionsContainer;
|
||||
private final EmojiImageView primaryEmojiReaction;
|
||||
private final EmojiImageView secondaryEmojiReaction;
|
||||
|
||||
ConversationItemReactionBubbles(@NonNull ViewGroup reactionsContainer) {
|
||||
this.reactionsContainer = reactionsContainer;
|
||||
|
@ -81,7 +80,7 @@ final class ConversationItemReactionBubbles {
|
|||
primaryEmojiReaction.setVisibility(View.VISIBLE);
|
||||
secondaryEmojiReaction.setVisibility(View.GONE);
|
||||
|
||||
primaryEmojiReaction.setText(reactionInfo.emoji);
|
||||
primaryEmojiReaction.setImageEmoji(reactionInfo.emoji);
|
||||
primaryEmojiReaction.setBackground(getBackgroundDrawableForReactionBubble(reactionInfo));
|
||||
}
|
||||
|
||||
|
@ -91,9 +90,9 @@ final class ConversationItemReactionBubbles {
|
|||
secondaryEmojiReaction.setVisibility(View.VISIBLE);
|
||||
|
||||
Pair<ReactionInfo, ReactionInfo> primaryAndSecondaryReactions = getPrimaryAndSecondaryReactions(reactionInfos);
|
||||
primaryEmojiReaction.setText(primaryAndSecondaryReactions.first.emoji);
|
||||
primaryEmojiReaction.setImageEmoji(primaryAndSecondaryReactions.first.emoji);
|
||||
primaryEmojiReaction.setBackground(getBackgroundDrawableForReactionBubble(primaryAndSecondaryReactions.first));
|
||||
secondaryEmojiReaction.setText(primaryAndSecondaryReactions.second.emoji);
|
||||
secondaryEmojiReaction.setImageEmoji(primaryAndSecondaryReactions.second.emoji);
|
||||
secondaryEmojiReaction.setBackground(getBackgroundDrawableForReactionBubble(primaryAndSecondaryReactions.second));
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue