Merge "Fix the order of talkback focus for ConversationLayout when expanded" into tm-qpr-dev am: f4643c773b

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19904008

Change-Id: I72539dbca5334cfb1f3f04226a71eabdfdedabe6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2022-09-09 18:39:37 +00:00
committed by Automerger Merge Worker
3 changed files with 53 additions and 32 deletions

View File

@@ -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;
@@ -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);
@@ -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);

View File

@@ -89,45 +89,62 @@
<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_container"
android:layout_width="wrap_content"
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">
<!--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.-->
<LinearLayout
android:id="@+id/expand_button_touch_container"
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"
android:layout_height="@dimen/conversation_expand_button_height"
android:orientation="horizontal"
android:layout_height="match_parent"
android:layout_gravity="end|top"
android:paddingEnd="0dp"
android:clipToPadding="false"
android:clipChildren="false"
>
<!-- Images -->
<com.android.internal.widget.MessagingLinearLayout
android:id="@+id/conversation_image_message_container"
android:forceHasOverlappingRendering="false"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginStart="@dimen/conversation_image_start_margin"
android:spacing="0dp"
android:layout_gravity="center"
android:clipToPadding="false">
<!--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"
android:layout_height="@dimen/conversation_expand_button_height"
android:orientation="horizontal"
android:layout_gravity="end|top"
android:paddingEnd="0dp"
android:clipToPadding="false"
android:clipChildren="false"
/>
<include layout="@layout/notification_expand_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
/>
</LinearLayout>
>
<!-- Images -->
<com.android.internal.widget.MessagingLinearLayout
android:id="@+id/conversation_image_message_container"
android:forceHasOverlappingRendering="false"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginStart="@dimen/conversation_image_start_margin"
android:spacing="0dp"
android:layout_gravity="center"
android:clipToPadding="false"
android:clipChildren="false"
/>
<include layout="@layout/notification_expand_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
/>
</LinearLayout>
</FrameLayout>
</FrameLayout>
</com.android.internal.widget.ConversationLayout>

View File

@@ -4268,6 +4268,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" />