Add bubbles around additional elements in wallpaper mode.

fork-5.53.8
Greyson Parrelli 2021-01-22 23:05:13 -05:00
rodzic 7fa4eb079b
commit 4fb0f30d32
7 zmienionych plików z 91 dodań i 36 usunięć

Wyświetl plik

@ -160,6 +160,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo
protected ConversationItemBodyBubble bodyBubble; protected ConversationItemBodyBubble bodyBubble;
protected View reply; protected View reply;
protected View replyIcon;
@Nullable protected ViewGroup contactPhotoHolder; @Nullable protected ViewGroup contactPhotoHolder;
@Nullable private QuoteView quoteView; @Nullable private QuoteView quoteView;
private EmojiTextView bodyText; private EmojiTextView bodyText;
@ -237,7 +238,8 @@ public final class ConversationItem extends RelativeLayout implements BindableCo
this.revealableStub = new Stub<>(findViewById(R.id.revealable_view_stub)); this.revealableStub = new Stub<>(findViewById(R.id.revealable_view_stub));
this.groupSenderHolder = findViewById(R.id.group_sender_holder); this.groupSenderHolder = findViewById(R.id.group_sender_holder);
this.quoteView = findViewById(R.id.quote_view); this.quoteView = findViewById(R.id.quote_view);
this.reply = findViewById(R.id.reply_icon); this.reply = findViewById(R.id.reply_icon_wrapper);
this.replyIcon = findViewById(R.id.reply_icon);
this.reactionsView = findViewById(R.id.reactions_view); this.reactionsView = findViewById(R.id.reactions_view);
setOnClickListener(new ClickListener(null)); setOnClickListener(new ClickListener(null));
@ -282,7 +284,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo
setBodyText(messageRecord, searchQuery); setBodyText(messageRecord, searchQuery);
setBubbleState(messageRecord, hasWallpaper); setBubbleState(messageRecord, hasWallpaper);
setInteractionState(conversationMessage, pulse); setInteractionState(conversationMessage, pulse);
setStatusIcons(messageRecord); setStatusIcons(messageRecord, hasWallpaper);
setContactPhoto(recipient.get()); setContactPhoto(recipient.get());
setGroupMessageStatus(messageRecord, recipient.get()); setGroupMessageStatus(messageRecord, recipient.get());
setGroupAuthorColor(messageRecord, hasWallpaper); setGroupAuthorColor(messageRecord, hasWallpaper);
@ -459,6 +461,12 @@ public final class ConversationItem extends RelativeLayout implements BindableCo
if (audioViewStub.resolved()) { if (audioViewStub.resolved()) {
setAudioViewTint(messageRecord); setAudioViewTint(messageRecord);
} }
if (hasWallpaper) {
replyIcon.setBackgroundResource(R.drawable.wallpaper_message_decoration_background);
} else {
replyIcon.setBackground(null);
}
} }
private void setAudioViewTint(MessageRecord messageRecord) { private void setAudioViewTint(MessageRecord messageRecord) {
@ -1003,7 +1011,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo
return messageBody; return messageBody;
} }
private void setStatusIcons(MessageRecord messageRecord) { private void setStatusIcons(MessageRecord messageRecord, boolean hasWallpaper) {
bodyText.setCompoundDrawablesWithIntrinsicBounds(0, 0, messageRecord.isKeyExchange() ? R.drawable.ic_menu_login : 0, 0); bodyText.setCompoundDrawablesWithIntrinsicBounds(0, 0, messageRecord.isKeyExchange() ? R.drawable.ic_menu_login : 0, 0);
if (messageRecord.isFailed()) { if (messageRecord.isFailed()) {
@ -1013,6 +1021,12 @@ public final class ConversationItem extends RelativeLayout implements BindableCo
} else { } else {
alertView.setNone(); alertView.setNone();
} }
if (hasWallpaper) {
alertView.setBackgroundResource(R.drawable.wallpaper_message_decoration_background);
} else {
alertView.setBackground(null);
}
} }
private void setQuote(@NonNull MessageRecord current, @NonNull Optional<MessageRecord> previous, @NonNull Optional<MessageRecord> next, boolean isGroupThread) { private void setQuote(@NonNull MessageRecord current, @NonNull Optional<MessageRecord> previous, @NonNull Optional<MessageRecord> next, boolean isGroupThread) {

Wyświetl plik

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/conversation_item_wallpaper_bubble_color" />
</shape>

Wyświetl plik

@ -14,17 +14,26 @@
android:orientation="vertical" android:orientation="vertical"
android:paddingStart="8dp"> android:paddingStart="8dp">
<FrameLayout
android:id="@+id/reply_icon_wrapper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@id/body_bubble"
android:layout_alignTop="@id/body_bubble"
android:layout_alignBottom="@id/body_bubble"
android:alpha="0">
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/reply_icon" android:id="@+id/reply_icon"
android:layout_width="@dimen/conversation_item_reply_size" android:layout_width="@dimen/conversation_item_reply_size"
android:layout_height="@dimen/conversation_item_reply_size" android:layout_height="@dimen/conversation_item_reply_size"
android:layout_alignStart="@id/body_bubble" android:padding="9dp"
android:layout_alignTop="@id/body_bubble"
android:layout_alignBottom="@id/body_bubble"
android:alpha="0"
android:tint="@color/signal_icon_tint_primary" android:tint="@color/signal_icon_tint_primary"
android:layout_gravity="center"
app:srcCompat="@drawable/ic_reply_24" /> app:srcCompat="@drawable/ic_reply_24" />
</FrameLayout>
<FrameLayout <FrameLayout
android:id="@+id/contact_photo_container" android:id="@+id/contact_photo_container"
android:layout_width="@dimen/conversation_item_avatar_size" android:layout_width="@dimen/conversation_item_avatar_size"

Wyświetl plik

@ -14,17 +14,26 @@
android:orientation="vertical" android:orientation="vertical"
android:paddingStart="8dp"> android:paddingStart="8dp">
<FrameLayout
android:id="@+id/reply_icon_wrapper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@id/body_bubble"
android:layout_alignTop="@id/body_bubble"
android:layout_alignBottom="@id/body_bubble"
android:alpha="0">
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/reply_icon" android:id="@+id/reply_icon"
android:layout_width="@dimen/conversation_item_reply_size" android:layout_width="@dimen/conversation_item_reply_size"
android:layout_height="@dimen/conversation_item_reply_size" android:layout_height="@dimen/conversation_item_reply_size"
android:layout_alignStart="@id/body_bubble" android:padding="9dp"
android:layout_alignTop="@id/body_bubble"
android:layout_alignBottom="@id/body_bubble"
android:alpha="0"
android:tint="@color/signal_icon_tint_primary" android:tint="@color/signal_icon_tint_primary"
android:layout_gravity="center"
app:srcCompat="@drawable/ic_reply_24" /> app:srcCompat="@drawable/ic_reply_24" />
</FrameLayout>
<FrameLayout <FrameLayout
android:id="@+id/contact_photo_container" android:id="@+id/contact_photo_container"
android:layout_width="@dimen/conversation_item_avatar_size" android:layout_width="@dimen/conversation_item_avatar_size"

Wyświetl plik

@ -13,17 +13,26 @@
android:nextFocusRight="@id/embedded_text_editor" android:nextFocusRight="@id/embedded_text_editor"
android:orientation="horizontal"> android:orientation="horizontal">
<FrameLayout
android:id="@+id/reply_icon_wrapper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@id/body_bubble"
android:layout_alignTop="@id/body_bubble"
android:layout_alignBottom="@id/body_bubble"
android:alpha="0">
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/reply_icon" android:id="@+id/reply_icon"
android:layout_width="@dimen/conversation_item_reply_size" android:layout_width="@dimen/conversation_item_reply_size"
android:layout_height="@dimen/conversation_item_reply_size" android:layout_height="@dimen/conversation_item_reply_size"
android:layout_alignStart="@id/body_bubble" android:padding="9dp"
android:layout_alignTop="@id/body_bubble"
android:layout_alignBottom="@id/body_bubble"
android:alpha="0"
android:tint="@color/signal_icon_tint_primary" android:tint="@color/signal_icon_tint_primary"
android:layout_gravity="center"
app:srcCompat="@drawable/ic_reply_24" /> app:srcCompat="@drawable/ic_reply_24" />
</FrameLayout>
<org.thoughtcrime.securesms.conversation.ConversationItemBodyBubble <org.thoughtcrime.securesms.conversation.ConversationItemBodyBubble
android:id="@+id/body_bubble" android:id="@+id/body_bubble"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -163,8 +172,8 @@
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:orientation="vertical" android:padding="8dp"
android:paddingBottom="4dp" /> android:orientation="vertical" />
<org.thoughtcrime.securesms.reactions.ReactionsConversationView <org.thoughtcrime.securesms.reactions.ReactionsConversationView
android:id="@+id/reactions_view" android:id="@+id/reactions_view"

Wyświetl plik

@ -13,17 +13,26 @@
android:nextFocusRight="@id/embedded_text_editor" android:nextFocusRight="@id/embedded_text_editor"
android:orientation="horizontal"> android:orientation="horizontal">
<FrameLayout
android:id="@+id/reply_icon_wrapper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@id/body_bubble"
android:layout_alignTop="@id/body_bubble"
android:layout_alignBottom="@id/body_bubble"
android:alpha="0">
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/reply_icon" android:id="@+id/reply_icon"
android:layout_width="@dimen/conversation_item_reply_size" android:layout_width="@dimen/conversation_item_reply_size"
android:layout_height="@dimen/conversation_item_reply_size" android:layout_height="@dimen/conversation_item_reply_size"
android:layout_alignStart="@id/body_bubble" android:padding="9dp"
android:layout_alignTop="@id/body_bubble"
android:layout_alignBottom="@id/body_bubble"
android:alpha="0"
android:tint="@color/signal_icon_tint_primary" android:tint="@color/signal_icon_tint_primary"
android:layout_gravity="center"
app:srcCompat="@drawable/ic_reply_24" /> app:srcCompat="@drawable/ic_reply_24" />
</FrameLayout>
<org.thoughtcrime.securesms.conversation.ConversationItemBodyBubble <org.thoughtcrime.securesms.conversation.ConversationItemBodyBubble
android:id="@+id/body_bubble" android:id="@+id/body_bubble"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -90,8 +99,8 @@
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:orientation="vertical" android:padding="8dp"
android:paddingBottom="4dp" /> android:orientation="vertical" />
<org.thoughtcrime.securesms.reactions.ReactionsConversationView <org.thoughtcrime.securesms.reactions.ReactionsConversationView
android:id="@+id/reactions_view" android:id="@+id/reactions_view"

Wyświetl plik

@ -71,7 +71,7 @@
<dimen name="reaction_scrubber_anim_end_translation_y">0dp</dimen> <dimen name="reaction_scrubber_anim_end_translation_y">0dp</dimen>
<dimen name="reaction_scrubber_width">320dp</dimen> <dimen name="reaction_scrubber_width">320dp</dimen>
<dimen name="conversation_item_reply_size">20dp</dimen> <dimen name="conversation_item_reply_size">38dp</dimen>
<dimen name="conversation_item_avatar_size">28dp</dimen> <dimen name="conversation_item_avatar_size">28dp</dimen>
<dimen name="quote_corner_radius_large">10dp</dimen> <dimen name="quote_corner_radius_large">10dp</dimen>