diff --git a/core/java/com/android/internal/widget/ConversationLayout.java b/core/java/com/android/internal/widget/ConversationLayout.java index ea0f704829c8f..4e96ae7f79034 100644 --- a/core/java/com/android/internal/widget/ConversationLayout.java +++ b/core/java/com/android/internal/widget/ConversationLayout.java @@ -128,6 +128,8 @@ public class ConversationLayout extends FrameLayout private CharSequence mFallbackChatName; private CharSequence mFallbackGroupChatName; private CharSequence mConversationTitle; + private int mMessageSpacingStandard; + private int mMessageSpacingGroup; private int mNotificationHeaderExpandedPadding; private View mConversationHeader; private View mContentContainer; @@ -241,6 +243,10 @@ public class ConversationLayout extends FrameLayout mContentContainer = findViewById(R.id.notification_action_list_margin_target); mExpandButtonAndContentContainer = findViewById(R.id.expand_button_and_content_container); mExpandButton = findViewById(R.id.expand_button); + mMessageSpacingStandard = getResources().getDimensionPixelSize( + R.dimen.notification_messaging_spacing); + mMessageSpacingGroup = getResources().getDimensionPixelSize( + R.dimen.notification_messaging_spacing_conversation_group); mNotificationHeaderExpandedPadding = getResources().getDimensionPixelSize( R.dimen.conversation_header_expanded_padding_end); mContentMarginEnd = getResources().getDimensionPixelSize( @@ -699,6 +705,10 @@ public class ConversationLayout extends FrameLayout } private void updatePaddingsBasedOnContentAvailability() { + // groups have avatars that need more spacing + mMessagingLinearLayout.setSpacing( + mIsOneToOne ? mMessageSpacingStandard : mMessageSpacingGroup); + int messagingPadding = mIsOneToOne || mIsCollapsed ? 0 // Add some extra padding to the messages, since otherwise it will overlap with the diff --git a/core/java/com/android/internal/widget/MessagingLinearLayout.java b/core/java/com/android/internal/widget/MessagingLinearLayout.java index 7cfd46c880fce..cb1d387dbd073 100644 --- a/core/java/com/android/internal/widget/MessagingLinearLayout.java +++ b/core/java/com/android/internal/widget/MessagingLinearLayout.java @@ -17,6 +17,7 @@ package com.android.internal.widget; import android.annotation.Nullable; +import android.annotation.Px; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; @@ -251,6 +252,16 @@ public class MessagingLinearLayout extends ViewGroup { return super.drawChild(canvas, child, drawingTime); } + /** + * Set the spacing to be applied between views. + */ + public void setSpacing(@Px int spacing) { + if (mSpacing != spacing) { + mSpacing = spacing; + requestLayout(); + } + } + @Override public LayoutParams generateLayoutParams(AttributeSet attrs) { return new LayoutParams(mContext, attrs); diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml index 43c0ec979281b..fc3ed637e2b13 100644 --- a/core/res/res/values/dimens.xml +++ b/core/res/res/values/dimens.xml @@ -367,6 +367,9 @@ 6dp + + 24dp + 4dp @@ -760,7 +763,7 @@ 256dp - 36dp + 48dp 48dp 28dp @@ -779,17 +782,17 @@ 32dp - 25dp + @dimen/conversation_face_pile_avatar_size - 22dp + @dimen/conversation_badge_side_margin - 18dp + @dimen/conversation_badge_side_margin 2dp - 1dp + @dimen/conversation_face_pile_protection_width - 17dp + 32dp 2dp @@ -801,7 +804,7 @@ 20dp - 9dp + 8dp 38dp diff --git a/core/res/res/values/styles_device_defaults.xml b/core/res/res/values/styles_device_defaults.xml index 439ae48ebc549..ad0d0e07be1e0 100644 --- a/core/res/res/values/styles_device_defaults.xml +++ b/core/res/res/values/styles_device_defaults.xml @@ -302,10 +302,6 @@ easier. - diff --git a/core/res/res/values/styles_material.xml b/core/res/res/values/styles_material.xml index 3c4a5d4aab73c..eec6ae3fb521f 100644 --- a/core/res/res/values/styles_material.xml +++ b/core/res/res/values/styles_material.xml @@ -497,10 +497,6 @@ please see styles_device_defaults.xml. -