summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/widget/ConversationLayout.java48
-rw-r--r--core/res/res/layout/notification_template_material_conversation.xml37
-rw-r--r--core/res/res/values/dimens.xml9
-rw-r--r--core/res/res/values/symbols.xml4
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" />