Loading core/java/com/android/internal/widget/ConversationLayout.java +4 −1 Original line number Diff line number Diff line Loading @@ -111,6 +111,7 @@ public class ConversationLayout extends FrameLayout private Icon mLargeIcon; private View mExpandButtonContainer; private ViewGroup mExpandButtonAndContentContainer; private ViewGroup mExpandButtonContainerA11yContainer; private NotificationExpandButton mExpandButton; private MessagingLinearLayout mImageMessageContainer; private int mBadgeProtrusion; Loading Loading @@ -234,6 +235,8 @@ public class ConversationLayout extends FrameLayout }); mConversationText = findViewById(R.id.conversation_text); mExpandButtonContainer = findViewById(R.id.expand_button_container); mExpandButtonContainerA11yContainer = findViewById(R.id.expand_button_a11y_container); mConversationHeader = findViewById(R.id.conversation_header); mContentContainer = findViewById(R.id.notification_action_list_margin_target); mExpandButtonAndContentContainer = findViewById(R.id.expand_button_and_content_container); Loading Loading @@ -1091,7 +1094,7 @@ public class ConversationLayout extends FrameLayout newContainer = mExpandButtonAndContentContainer; } else { buttonGravity = Gravity.CENTER_HORIZONTAL | Gravity.TOP; newContainer = this; newContainer = mExpandButtonContainerA11yContainer; } mExpandButton.setExpanded(!mIsCollapsed); Loading core/res/res/layout/notification_template_material_conversation.xml +48 −31 Original line number Diff line number Diff line Loading @@ -89,8 +89,24 @@ <include layout="@layout/notification_material_action_list" /> </com.android.internal.widget.RemeasuringLinearLayout> <!--This is dynamically placed between here and at the end of the layout. It starts here since only FrameLayout layout params have gravity--> <!--expand_button_a11y_container ensures talkback focus order is correct when view is expanded. The -1px of marginTop and 1px of paddingTop make sure expand_button_a11y_container is prior to its sibling view in accessibility focus order. {see android.view.ViewGroup.addChildrenForAccessibility()} expand_button_container will be moved under expand_button_and_content_container when collapsed, this dynamic movement ensures message can flow under expand button when expanded--> <FrameLayout android:id="@+id/expand_button_a11y_container" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="end|top" android:clipChildren="false" android:clipToPadding="false" android:layout_marginTop="-1px" android:paddingTop="1px" > <!--expand_button_container is dynamically placed between here and at the end of the layout. It starts here since only FrameLayout layout params have gravity--> <FrameLayout android:id="@+id/expand_button_container" android:layout_width="wrap_content" Loading @@ -98,9 +114,9 @@ android:layout_gravity="end|top" android:clipChildren="false" android:clipToPadding="false"> <!--This layout makes sure that we can nicely center the expand content in the collapsed layout while the parent makes sure that we're never laid out bigger than the messaging content.--> <!--expand_button_touch_container makes sure that we can nicely center the expand content in the collapsed layout while the parent makes sure that we're never laid out bigger than the messaging content.--> <LinearLayout android:id="@+id/expand_button_touch_container" android:layout_width="wrap_content" Loading Loading @@ -130,4 +146,5 @@ /> </LinearLayout> </FrameLayout> </FrameLayout> </com.android.internal.widget.ConversationLayout> core/res/res/values/symbols.xml +1 −0 Original line number Diff line number Diff line Loading @@ -4279,6 +4279,7 @@ <java-symbol type="id" name="conversation_icon_badge_ring" /> <java-symbol type="id" name="conversation_icon_badge_bg" /> <java-symbol type="id" name="expand_button_container" /> <java-symbol type="id" name="expand_button_a11y_container" /> <java-symbol type="id" name="expand_button_touch_container" /> <java-symbol type="id" name="messaging_group_content_container" /> <java-symbol type="id" name="expand_button_and_content_container" /> Loading Loading
core/java/com/android/internal/widget/ConversationLayout.java +4 −1 Original line number Diff line number Diff line Loading @@ -111,6 +111,7 @@ public class ConversationLayout extends FrameLayout private Icon mLargeIcon; private View mExpandButtonContainer; private ViewGroup mExpandButtonAndContentContainer; private ViewGroup mExpandButtonContainerA11yContainer; private NotificationExpandButton mExpandButton; private MessagingLinearLayout mImageMessageContainer; private int mBadgeProtrusion; Loading Loading @@ -234,6 +235,8 @@ public class ConversationLayout extends FrameLayout }); mConversationText = findViewById(R.id.conversation_text); mExpandButtonContainer = findViewById(R.id.expand_button_container); mExpandButtonContainerA11yContainer = findViewById(R.id.expand_button_a11y_container); mConversationHeader = findViewById(R.id.conversation_header); mContentContainer = findViewById(R.id.notification_action_list_margin_target); mExpandButtonAndContentContainer = findViewById(R.id.expand_button_and_content_container); Loading Loading @@ -1091,7 +1094,7 @@ public class ConversationLayout extends FrameLayout newContainer = mExpandButtonAndContentContainer; } else { buttonGravity = Gravity.CENTER_HORIZONTAL | Gravity.TOP; newContainer = this; newContainer = mExpandButtonContainerA11yContainer; } mExpandButton.setExpanded(!mIsCollapsed); Loading
core/res/res/layout/notification_template_material_conversation.xml +48 −31 Original line number Diff line number Diff line Loading @@ -89,8 +89,24 @@ <include layout="@layout/notification_material_action_list" /> </com.android.internal.widget.RemeasuringLinearLayout> <!--This is dynamically placed between here and at the end of the layout. It starts here since only FrameLayout layout params have gravity--> <!--expand_button_a11y_container ensures talkback focus order is correct when view is expanded. The -1px of marginTop and 1px of paddingTop make sure expand_button_a11y_container is prior to its sibling view in accessibility focus order. {see android.view.ViewGroup.addChildrenForAccessibility()} expand_button_container will be moved under expand_button_and_content_container when collapsed, this dynamic movement ensures message can flow under expand button when expanded--> <FrameLayout android:id="@+id/expand_button_a11y_container" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="end|top" android:clipChildren="false" android:clipToPadding="false" android:layout_marginTop="-1px" android:paddingTop="1px" > <!--expand_button_container is dynamically placed between here and at the end of the layout. It starts here since only FrameLayout layout params have gravity--> <FrameLayout android:id="@+id/expand_button_container" android:layout_width="wrap_content" Loading @@ -98,9 +114,9 @@ android:layout_gravity="end|top" android:clipChildren="false" android:clipToPadding="false"> <!--This layout makes sure that we can nicely center the expand content in the collapsed layout while the parent makes sure that we're never laid out bigger than the messaging content.--> <!--expand_button_touch_container makes sure that we can nicely center the expand content in the collapsed layout while the parent makes sure that we're never laid out bigger than the messaging content.--> <LinearLayout android:id="@+id/expand_button_touch_container" android:layout_width="wrap_content" Loading Loading @@ -130,4 +146,5 @@ /> </LinearLayout> </FrameLayout> </FrameLayout> </com.android.internal.widget.ConversationLayout>
core/res/res/values/symbols.xml +1 −0 Original line number Diff line number Diff line Loading @@ -4279,6 +4279,7 @@ <java-symbol type="id" name="conversation_icon_badge_ring" /> <java-symbol type="id" name="conversation_icon_badge_bg" /> <java-symbol type="id" name="expand_button_container" /> <java-symbol type="id" name="expand_button_a11y_container" /> <java-symbol type="id" name="expand_button_touch_container" /> <java-symbol type="id" name="messaging_group_content_container" /> <java-symbol type="id" name="expand_button_and_content_container" /> Loading