From 454f21cb215fed05dcd862bb44a02f39ee1f13f9 Mon Sep 17 00:00:00 2001 From: Peter_Liang Date: Sun, 27 Mar 2022 20:26:21 +0800 Subject: [PATCH] Update the preview of the conversation message in the "Display size and text" page. Bug: 227076211 Test: manual test Change-Id: Ie83f95ba223a42f596c2a4ef68f33f4152a2cc07 --- ...tion_message_text_info_view_background.xml | 25 +++++++++++ res/drawable/ic_person.xml | 27 ++++++++++++ res/layout/screen_zoom_preview_1.xml | 30 +------------ res/values/colors.xml | 13 +++--- res/values/dimens.xml | 3 +- .../display/ConversationMessageView.java | 42 ++++++++++++------- 6 files changed, 89 insertions(+), 51 deletions(-) create mode 100644 res/drawable/conversation_message_text_info_view_background.xml create mode 100644 res/drawable/ic_person.xml diff --git a/res/drawable/conversation_message_text_info_view_background.xml b/res/drawable/conversation_message_text_info_view_background.xml new file mode 100644 index 00000000000..1d82f38251a --- /dev/null +++ b/res/drawable/conversation_message_text_info_view_background.xml @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/res/drawable/ic_person.xml b/res/drawable/ic_person.xml new file mode 100644 index 00000000000..5e5d0e8f9b0 --- /dev/null +++ b/res/drawable/ic_person.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/res/layout/screen_zoom_preview_1.xml b/res/layout/screen_zoom_preview_1.xml index 4aabfe4c47d..97e0863f36c 100644 --- a/res/layout/screen_zoom_preview_1.xml +++ b/res/layout/screen_zoom_preview_1.xml @@ -34,45 +34,19 @@ android:paddingEnd="@dimen/conversation_message_list_padding" android:orientation="vertical"> - - - - diff --git a/res/values/colors.xml b/res/values/colors.xml index f972e2955b6..e818a285fe6 100644 --- a/res/values/colors.xml +++ b/res/values/colors.xml @@ -44,16 +44,17 @@ #f5f5f5 #ffffff - #ffffffff - #ff323232 + #E4E3DA + #1B1C17 #99323232 #99ffffff - #689f38 - #ffffffff - #689f38 + #52534D + #C7C8B7 + #E6F451 #ffffffff - #4285f4 + #FBBC04 #ffffffff + #DADADA #B0BEC5 diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 8a59da2844b..5f3e7efecc8 100755 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -257,12 +257,13 @@ 16sp 12sp 20dp - 9dp + 9dp 18dp 14dp 10dp 12dp 4dp + 11dp 16dp diff --git a/src/com/android/settings/display/ConversationMessageView.java b/src/com/android/settings/display/ConversationMessageView.java index 22e1f205509..d72c9e627e0 100644 --- a/src/com/android/settings/display/ConversationMessageView.java +++ b/src/com/android/settings/display/ConversationMessageView.java @@ -21,6 +21,8 @@ import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; +import android.graphics.drawable.LayerDrawable; +import android.text.TextUtils; import android.util.AttributeSet; import android.view.Gravity; import android.view.LayoutInflater; @@ -106,14 +108,14 @@ public class ConversationMessageView extends FrameLayout { MeasureSpec.EXACTLY); mContactIconView.measure(iconMeasureSpec, iconMeasureSpec); - final int arrowWidth = - getResources().getDimensionPixelSize(R.dimen.message_bubble_arrow_width); + final int messageBubblePadding = + getResources().getDimensionPixelOffset(R.dimen.message_bubble_left_right_padding); // We need to subtract contact icon width twice from the horizontal space to get // the max leftover space because we want the message bubble to extend no further than the // starting position of the message bubble in the opposite direction. final int maxLeftoverSpace = horizontalSpace - mContactIconView.getMeasuredWidth() * 2 - - arrowWidth - getPaddingLeft() - getPaddingRight(); + - messageBubblePadding - getPaddingLeft() - getPaddingRight(); final int messageContentWidthMeasureSpec = MeasureSpec.makeMeasureSpec(maxLeftoverSpace, MeasureSpec.AT_MOST); @@ -170,19 +172,28 @@ public class ConversationMessageView extends FrameLayout { private void updateViewContent() { mMessageTextView.setText(mMessageText); mStatusTextView.setText(mTimestampText); + mStatusTextView.setVisibility(TextUtils.isEmpty(mTimestampText) ? GONE : VISIBLE); mContactIconView.setText(mIconText); mContactIconView.setTextColor(mIconTextColor); - final Drawable iconBase = getContext().getDrawable(R.drawable.conversation_message_icon); - mContactIconView - .setBackground(getTintedDrawable(getContext(), iconBase, mIconBackgroundColor)); + final Drawable iconBackground = getContext().getDrawable( + R.drawable.conversation_message_icon); + final Drawable icon = getContext().getDrawable(R.drawable.ic_person); + final LayerDrawable layerDrawable = new LayerDrawable( + new Drawable[]{ + getTintedDrawable(getContext(), iconBackground, mIconBackgroundColor), + getTintedDrawable(getContext(), icon, + getContext().getColor(R.color.message_icon_color))}); + final int iconInset = getResources().getDimensionPixelOffset(R.dimen.message_icon_inset); + layerDrawable.setLayerInset(/* index= */ 1, iconInset, iconInset, iconInset, iconInset); + mContactIconView.setBackground(layerDrawable); } private void updateViewAppearance() { final Resources res = getResources(); - final int arrowWidth = res.getDimensionPixelOffset( - R.dimen.message_bubble_arrow_width); + final int messageBubbleLeftRightPadding = res.getDimensionPixelOffset( + R.dimen.message_bubble_left_right_padding); final int messageTextLeftRightPadding = res.getDimensionPixelOffset( R.dimen.message_text_left_right_padding); final int textTopPadding = res.getDimensionPixelOffset( @@ -191,14 +202,11 @@ public class ConversationMessageView extends FrameLayout { R.dimen.message_text_bottom_padding); final int textLeftPadding, textRightPadding; + textLeftPadding = messageTextLeftRightPadding; + textRightPadding = messageTextLeftRightPadding; - if (mIncoming) { - textLeftPadding = messageTextLeftRightPadding + arrowWidth; - textRightPadding = messageTextLeftRightPadding; - } else { - textLeftPadding = messageTextLeftRightPadding; - textRightPadding = messageTextLeftRightPadding + arrowWidth; - } + final int messageBubbleLeftPadding = mIncoming ? messageBubbleLeftRightPadding : 0; + final int messageBubbleRightPadding = mIncoming ? 0 : messageBubbleLeftRightPadding; // These values do not depend on whether the message includes attachments final int gravity = mIncoming ? (Gravity.START | Gravity.CENTER_VERTICAL) : @@ -216,7 +224,7 @@ public class ConversationMessageView extends FrameLayout { final Context context = getContext(); final Drawable textBackgroundDrawable = getTintedDrawable(context, - context.getDrawable(bubbleDrawableResId), + context.getDrawable(R.drawable.conversation_message_text_info_view_background), context.getColor(bubbleColorResId)); mMessageTextAndInfoView.setBackground(textBackgroundDrawable); @@ -234,6 +242,8 @@ public class ConversationMessageView extends FrameLayout { // Update the message row and message bubble views setPadding(getPaddingLeft(), messageTopPadding, getPaddingRight(), 0); mMessageBubble.setGravity(gravity); + mMessageBubble.setPaddingRelative(messageBubbleLeftPadding, /* top= */ 0, + messageBubbleRightPadding, /* bottom= */ 0); updateTextAppearance(); }