diff options
| -rw-r--r-- | core/java/com/android/internal/widget/ConversationLayout.java | 48 | ||||
| -rw-r--r-- | core/res/res/layout/notification_template_material_conversation.xml | 37 | ||||
| -rw-r--r-- | core/res/res/values/dimens.xml | 9 | ||||
| -rw-r--r-- | core/res/res/values/symbols.xml | 4 |
4 files changed, 51 insertions, 47 deletions
diff --git a/core/java/com/android/internal/widget/ConversationLayout.java b/core/java/com/android/internal/widget/ConversationLayout.java index 297ebb0ad94d..688e00bc5a29 100644 --- a/core/java/com/android/internal/widget/ConversationLayout.java +++ b/core/java/com/android/internal/widget/ConversationLayout.java @@ -115,10 +115,9 @@ public class ConversationLayout extends FrameLayout private ImageResolver mImageResolver; private CachingIconView mConversationIconView; private View mConversationIconContainer; - private int mConversationIconTopPadding; private int mConversationIconTopPaddingExpandedGroup; - private int mConversationIconTopPaddingNoAppName; - private int mExpandedGroupMessagePaddingNoAppName; + private int mConversationIconTopPadding; + private int mExpandedGroupMessagePadding; private TextView mConversationText; private View mConversationIconBadge; private CachingIconView mConversationIconBadgeBg; @@ -162,6 +161,7 @@ public class ConversationLayout extends FrameLayout private Rect mAppOpsTouchRect = new Rect(); private float mMinTouchSize; private Icon mConversationIcon; + private View mAppNameDivider; public ConversationLayout(@NonNull Context context) { super(context); @@ -261,14 +261,12 @@ public class ConversationLayout extends FrameLayout R.dimen.conversation_avatar_size); mConversationAvatarSizeExpanded = getResources().getDimensionPixelSize( R.dimen.conversation_avatar_size_group_expanded); - mConversationIconTopPadding = getResources().getDimensionPixelSize( - R.dimen.conversation_icon_container_top_padding); mConversationIconTopPaddingExpandedGroup = getResources().getDimensionPixelSize( R.dimen.conversation_icon_container_top_padding_small_avatar); - mConversationIconTopPaddingNoAppName = getResources().getDimensionPixelSize( - R.dimen.conversation_icon_container_top_padding_no_app_name); - mExpandedGroupMessagePaddingNoAppName = getResources().getDimensionPixelSize( - R.dimen.expanded_group_conversation_message_padding_without_app_name); + mConversationIconTopPadding = getResources().getDimensionPixelSize( + R.dimen.conversation_icon_container_top_padding); + mExpandedGroupMessagePadding = getResources().getDimensionPixelSize( + R.dimen.expanded_group_conversation_message_padding); mExpandedGroupSideMargin = getResources().getDimensionPixelSize( R.dimen.conversation_badge_side_margin_group_expanded); mExpandedGroupSideMarginFacePile = getResources().getDimensionPixelSize( @@ -287,6 +285,7 @@ public class ConversationLayout extends FrameLayout mFallbackGroupChatName = getResources().getString( R.string.conversation_title_fallback_group_chat); mAppName = findViewById(R.id.app_name_text); + mAppNameDivider = findViewById(R.id.app_name_divider); mAppNameGone = mAppName.getVisibility() == GONE; mAppName.setOnVisibilityChangedListener((visibility) -> { onAppNameVisibilityChanged(); @@ -524,6 +523,7 @@ public class ConversationLayout extends FrameLayout updateImageMessages(); updatePaddingsBasedOnContentAvailability(); updateActionListPadding(); + updateAppNameDividerVisibility(); } private void updateActionListPadding() { @@ -685,27 +685,15 @@ public class ConversationLayout extends FrameLayout } private void updatePaddingsBasedOnContentAvailability() { - int containerTopPadding; - int messagingPadding = 0; - if (mIsOneToOne || mIsCollapsed) { - containerTopPadding = mConversationIconTopPadding; - } else { - if (mAppName.getVisibility() != GONE) { - // The app name is visible, let's center outselves in the two lines - containerTopPadding = mConversationIconTopPaddingExpandedGroup; - } else { - // App name is gone, let's center ourselves int he one remaining line - containerTopPadding = mConversationIconTopPaddingNoAppName; - - // The app name is gone and we're a group, we'll need to add some extra padding - // to the messages, since otherwise it will overlap with the group - messagingPadding = mExpandedGroupMessagePaddingNoAppName; - } - } + int messagingPadding = mIsOneToOne || mIsCollapsed + ? 0 + // Add some extra padding to the messages, since otherwise it will overlap with the + // group + : mExpandedGroupMessagePadding; mConversationIconContainer.setPaddingRelative( mConversationIconContainer.getPaddingStart(), - containerTopPadding, + mConversationIconTopPadding, mConversationIconContainer.getPaddingEnd(), mConversationIconContainer.getPaddingBottom()); @@ -1214,10 +1202,14 @@ public class ConversationLayout extends FrameLayout boolean appNameGone = mAppName.getVisibility() == GONE; if (appNameGone != mAppNameGone) { mAppNameGone = appNameGone; - updatePaddingsBasedOnContentAvailability(); + updateAppNameDividerVisibility(); } } + private void updateAppNameDividerVisibility() { + mAppNameDivider.setVisibility(mAppNameGone ? GONE : VISIBLE); + } + public void updateExpandability(boolean expandable, @Nullable OnClickListener onClickListener) { mExpandable = expandable; if (expandable) { diff --git a/core/res/res/layout/notification_template_material_conversation.xml b/core/res/res/layout/notification_template_material_conversation.xml index 8a57e057b084..d861f16089f2 100644 --- a/core/res/res/layout/notification_template_material_conversation.xml +++ b/core/res/res/layout/notification_template_material_conversation.xml @@ -139,6 +139,32 @@ android:layout_weight="1" /> + + <TextView + android:id="@+id/app_name_divider" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textAppearance="?attr/notificationHeaderTextAppearance" + android:layout_marginStart="@dimen/notification_header_separating_margin" + android:layout_marginEnd="@dimen/notification_header_separating_margin" + android:text="@string/notification_header_divider_symbol" + android:layout_gravity="center" + android:paddingTop="1sp" + android:singleLine="true" + android:visibility="gone" + /> + + <!-- App Name --> + <com.android.internal.widget.ObservableTextView + android:id="@+id/app_name_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/conversation_content_start" + android:textSize="12sp" + android:layout_marginBottom="16dp" + android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Info" + /> + <TextView android:id="@+id/time_divider" android:layout_width="wrap_content" @@ -230,17 +256,6 @@ </LinearLayout> </LinearLayout> - <!-- App Name --> - <com.android.internal.widget.ObservableTextView - android:id="@+id/app_name_text" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginStart="@dimen/conversation_content_start" - android:textSize="12sp" - android:layout_marginBottom="16dp" - android:textAppearance="@style/TextAppearance.DeviceDefault.Notification" - /> - <!-- Messages --> <com.android.internal.widget.MessagingLinearLayout android:id="@+id/notification_messaging" diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml index e4aef861198a..bbe547b597f5 100644 --- a/core/res/res/values/dimens.xml +++ b/core/res/res/values/dimens.xml @@ -708,14 +708,11 @@ <dimen name="conversation_face_pile_protection_width">2dp</dimen> <!-- The width of the protection of the face pile layout when expanded--> <dimen name="conversation_face_pile_protection_width_expanded">1dp</dimen> - <!-- The padding of the expanded message container when the app name is gone--> - <dimen name="expanded_group_conversation_message_padding_without_app_name">14dp</dimen> + <!-- The padding of the expanded message container--> + <dimen name="expanded_group_conversation_message_padding">14dp</dimen> <!-- The top padding of the conversation icon container in the regular state--> - <dimen name="conversation_icon_container_top_padding">12dp</dimen> - - <!-- The top padding of the conversation icon container when there's no app name present in a group--> - <dimen name="conversation_icon_container_top_padding_no_app_name">9dp</dimen> + <dimen name="conversation_icon_container_top_padding">9dp</dimen> <!-- The top padding of the conversation icon container when the avatar is small--> <dimen name="conversation_icon_container_top_padding_small_avatar">17.5dp</dimen> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 8f7cc8245e44..5f8edf4d8f6a 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -2825,6 +2825,7 @@ <java-symbol type="string" name="notification_hidden_text" /> <java-symbol type="id" name="app_name_text" /> + <java-symbol type="id" name="app_name_divider" /> <java-symbol type="id" name="header_text" /> <java-symbol type="id" name="header_text_secondary" /> <java-symbol type="id" name="expand_button" /> @@ -3900,12 +3901,11 @@ <java-symbol type="dimen" name="conversation_badge_side_margin_group_expanded" /> <java-symbol type="dimen" name="conversation_badge_side_margin_group_expanded_face_pile" /> <java-symbol type="dimen" name="conversation_content_start" /> - <java-symbol type="dimen" name="expanded_group_conversation_message_padding_without_app_name" /> + <java-symbol type="dimen" name="expanded_group_conversation_message_padding" /> <java-symbol type="dimen" name="messaging_layout_margin_end" /> <java-symbol type="dimen" name="conversation_header_expanded_padding_end" /> <java-symbol type="dimen" name="conversation_icon_container_top_padding" /> <java-symbol type="dimen" name="conversation_icon_container_top_padding_small_avatar" /> - <java-symbol type="dimen" name="conversation_icon_container_top_padding_no_app_name" /> <java-symbol type="layout" name="notification_template_material_conversation" /> <java-symbol type="dimen" name="button_padding_horizontal_material" /> <java-symbol type="dimen" name="button_inset_horizontal_material" /> |