Skip to content

Commit

Permalink
Display reactions in ImageView instead of TextView on message bubbles.
Browse files Browse the repository at this point in the history
  • Loading branch information
alex-signal authored and greyson-signal committed Dec 5, 2019
1 parent 9f8a110 commit 1cc8634
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 32 deletions.
18 changes: 6 additions & 12 deletions res/layout/conversation_item_received.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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>

Expand Down
18 changes: 6 additions & 12 deletions res/layout/conversation_item_sent.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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>

Expand Down
Original file line number Diff line number Diff line change
@@ -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));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,22 @@
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;
Expand Down Expand Up @@ -81,7 +80,7 @@ private void displaySingleReaction(@NonNull ReactionInfo reactionInfo) {
primaryEmojiReaction.setVisibility(View.VISIBLE);
secondaryEmojiReaction.setVisibility(View.GONE);

primaryEmojiReaction.setText(reactionInfo.emoji);
primaryEmojiReaction.setImageEmoji(reactionInfo.emoji);
primaryEmojiReaction.setBackground(getBackgroundDrawableForReactionBubble(reactionInfo));
}

Expand All @@ -91,9 +90,9 @@ private void displayMultipleReactions(@NonNull Collection<ReactionInfo> reaction
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));
}

Expand Down

0 comments on commit 1cc8634

Please sign in to comment.