Merge "Fix the order of talkback focus for ConversationLayout when expanded" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
f4643c773b
@@ -111,6 +111,7 @@ public class ConversationLayout extends FrameLayout
|
|||||||
private Icon mLargeIcon;
|
private Icon mLargeIcon;
|
||||||
private View mExpandButtonContainer;
|
private View mExpandButtonContainer;
|
||||||
private ViewGroup mExpandButtonAndContentContainer;
|
private ViewGroup mExpandButtonAndContentContainer;
|
||||||
|
private ViewGroup mExpandButtonContainerA11yContainer;
|
||||||
private NotificationExpandButton mExpandButton;
|
private NotificationExpandButton mExpandButton;
|
||||||
private MessagingLinearLayout mImageMessageContainer;
|
private MessagingLinearLayout mImageMessageContainer;
|
||||||
private int mBadgeProtrusion;
|
private int mBadgeProtrusion;
|
||||||
@@ -234,6 +235,8 @@ public class ConversationLayout extends FrameLayout
|
|||||||
});
|
});
|
||||||
mConversationText = findViewById(R.id.conversation_text);
|
mConversationText = findViewById(R.id.conversation_text);
|
||||||
mExpandButtonContainer = findViewById(R.id.expand_button_container);
|
mExpandButtonContainer = findViewById(R.id.expand_button_container);
|
||||||
|
mExpandButtonContainerA11yContainer =
|
||||||
|
findViewById(R.id.expand_button_a11y_container);
|
||||||
mConversationHeader = findViewById(R.id.conversation_header);
|
mConversationHeader = findViewById(R.id.conversation_header);
|
||||||
mContentContainer = findViewById(R.id.notification_action_list_margin_target);
|
mContentContainer = findViewById(R.id.notification_action_list_margin_target);
|
||||||
mExpandButtonAndContentContainer = findViewById(R.id.expand_button_and_content_container);
|
mExpandButtonAndContentContainer = findViewById(R.id.expand_button_and_content_container);
|
||||||
@@ -1091,7 +1094,7 @@ public class ConversationLayout extends FrameLayout
|
|||||||
newContainer = mExpandButtonAndContentContainer;
|
newContainer = mExpandButtonAndContentContainer;
|
||||||
} else {
|
} else {
|
||||||
buttonGravity = Gravity.CENTER_HORIZONTAL | Gravity.TOP;
|
buttonGravity = Gravity.CENTER_HORIZONTAL | Gravity.TOP;
|
||||||
newContainer = this;
|
newContainer = mExpandButtonContainerA11yContainer;
|
||||||
}
|
}
|
||||||
mExpandButton.setExpanded(!mIsCollapsed);
|
mExpandButton.setExpanded(!mIsCollapsed);
|
||||||
|
|
||||||
|
|||||||
@@ -89,45 +89,62 @@
|
|||||||
<include layout="@layout/notification_material_action_list" />
|
<include layout="@layout/notification_material_action_list" />
|
||||||
</com.android.internal.widget.RemeasuringLinearLayout>
|
</com.android.internal.widget.RemeasuringLinearLayout>
|
||||||
|
|
||||||
<!--This is dynamically placed between here and at the end of the layout. It starts here since
|
<!--expand_button_a11y_container ensures talkback focus order is correct when view is expanded.
|
||||||
only FrameLayout layout params have gravity-->
|
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
|
<FrameLayout
|
||||||
android:id="@+id/expand_button_container"
|
android:id="@+id/expand_button_a11y_container"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_gravity="end|top"
|
android:layout_gravity="end|top"
|
||||||
android:clipChildren="false"
|
android:clipChildren="false"
|
||||||
android:clipToPadding="false">
|
android:clipToPadding="false"
|
||||||
<!--This layout makes sure that we can nicely center the expand content in the
|
android:layout_marginTop="-1px"
|
||||||
collapsed layout while the parent makes sure that we're never laid out bigger
|
android:paddingTop="1px"
|
||||||
than the messaging content.-->
|
>
|
||||||
<LinearLayout
|
<!--expand_button_container is dynamically placed between here and at the end of the
|
||||||
android:id="@+id/expand_button_touch_container"
|
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_width="wrap_content"
|
||||||
android:layout_height="@dimen/conversation_expand_button_height"
|
android:layout_height="match_parent"
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_gravity="end|top"
|
android:layout_gravity="end|top"
|
||||||
android:paddingEnd="0dp"
|
|
||||||
android:clipToPadding="false"
|
|
||||||
android:clipChildren="false"
|
android:clipChildren="false"
|
||||||
>
|
android:clipToPadding="false">
|
||||||
<!-- Images -->
|
<!--expand_button_touch_container makes sure that we can nicely center the expand
|
||||||
<com.android.internal.widget.MessagingLinearLayout
|
content in the collapsed layout while the parent makes sure that we're never laid out
|
||||||
android:id="@+id/conversation_image_message_container"
|
bigger than the messaging content.-->
|
||||||
android:forceHasOverlappingRendering="false"
|
<LinearLayout
|
||||||
android:layout_width="40dp"
|
android:id="@+id/expand_button_touch_container"
|
||||||
android:layout_height="40dp"
|
android:layout_width="wrap_content"
|
||||||
android:layout_marginStart="@dimen/conversation_image_start_margin"
|
android:layout_height="@dimen/conversation_expand_button_height"
|
||||||
android:spacing="0dp"
|
android:orientation="horizontal"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="end|top"
|
||||||
|
android:paddingEnd="0dp"
|
||||||
android:clipToPadding="false"
|
android:clipToPadding="false"
|
||||||
android:clipChildren="false"
|
android:clipChildren="false"
|
||||||
/>
|
>
|
||||||
<include layout="@layout/notification_expand_button"
|
<!-- Images -->
|
||||||
android:layout_width="wrap_content"
|
<com.android.internal.widget.MessagingLinearLayout
|
||||||
android:layout_height="wrap_content"
|
android:id="@+id/conversation_image_message_container"
|
||||||
android:layout_gravity="center"
|
android:forceHasOverlappingRendering="false"
|
||||||
/>
|
android:layout_width="40dp"
|
||||||
</LinearLayout>
|
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>
|
</FrameLayout>
|
||||||
</com.android.internal.widget.ConversationLayout>
|
</com.android.internal.widget.ConversationLayout>
|
||||||
|
|||||||
@@ -4279,6 +4279,7 @@
|
|||||||
<java-symbol type="id" name="conversation_icon_badge_ring" />
|
<java-symbol type="id" name="conversation_icon_badge_ring" />
|
||||||
<java-symbol type="id" name="conversation_icon_badge_bg" />
|
<java-symbol type="id" name="conversation_icon_badge_bg" />
|
||||||
<java-symbol type="id" name="expand_button_container" />
|
<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="expand_button_touch_container" />
|
||||||
<java-symbol type="id" name="messaging_group_content_container" />
|
<java-symbol type="id" name="messaging_group_content_container" />
|
||||||
<java-symbol type="id" name="expand_button_and_content_container" />
|
<java-symbol type="id" name="expand_button_and_content_container" />
|
||||||
|
|||||||
Reference in New Issue
Block a user