Fix shadow and animation clipping for Global Actions Dialog.
Fixes: 132637931 Test: Manual testing of animations in landscape/seascape/portrait for both column and grid GAD. Change-Id: I4870a0ec9c1c07ae6eee6c3d0943a19252a25241
This commit is contained in:
@@ -5,19 +5,21 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:clipToPadding="false"
|
||||
android:theme="@style/qs_theme"
|
||||
android:paddingLeft="@dimen/global_actions_top_padding"
|
||||
android:gravity="right"
|
||||
android:clipChildren="false"
|
||||
android:clipToPadding="false"
|
||||
android:paddingRight="@dimen/global_actions_grid_container_shadow_offset"
|
||||
android:layout_marginRight="@dimen/global_actions_grid_container_negative_shadow_offset"
|
||||
>
|
||||
<LinearLayout
|
||||
android:layout_height="match_parent"
|
||||
android:layout_width="wrap_content"
|
||||
android:gravity="top|right"
|
||||
android:padding="0dp"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginRight="@dimen/global_actions_grid_container_bottom_margin"
|
||||
android:clipChildren="false"
|
||||
android:clipToPadding="false"
|
||||
>
|
||||
<!-- Grid of action items -->
|
||||
<com.android.systemui.globalactions.ListGridLayout
|
||||
|
||||
@@ -5,11 +5,12 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:clipToPadding="false"
|
||||
android:theme="@style/qs_theme"
|
||||
android:gravity="left"
|
||||
android:paddingRight="@dimen/global_actions_top_padding"
|
||||
android:clipChildren="false"
|
||||
android:clipToPadding="false"
|
||||
android:paddingLeft="@dimen/global_actions_grid_container_shadow_offset"
|
||||
android:layout_marginLeft="@dimen/global_actions_grid_container_negative_shadow_offset"
|
||||
>
|
||||
<LinearLayout
|
||||
android:layout_height="match_parent"
|
||||
@@ -17,6 +18,8 @@
|
||||
android:gravity="bottom|left"
|
||||
android:padding="0dp"
|
||||
android:orientation="vertical"
|
||||
android:clipChildren="false"
|
||||
android:clipToPadding="false"
|
||||
android:layout_marginLeft="@dimen/global_actions_grid_container_bottom_margin"
|
||||
>
|
||||
<!-- For separated items-->
|
||||
|
||||
@@ -5,17 +5,20 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:clipToPadding="false"
|
||||
android:theme="@style/qs_theme"
|
||||
android:gravity="bottom"
|
||||
android:clipChildren="false"
|
||||
android:clipToPadding="false"
|
||||
android:paddingBottom="@dimen/global_actions_grid_container_shadow_offset"
|
||||
android:layout_marginBottom="@dimen/global_actions_grid_container_negative_shadow_offset"
|
||||
>
|
||||
<LinearLayout
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:gravity="bottom | right"
|
||||
android:padding="0dp"
|
||||
android:layoutDirection="ltr"
|
||||
android:clipChildren="false"
|
||||
android:clipToPadding="false"
|
||||
android:layout_marginBottom="@dimen/global_actions_grid_container_bottom_margin"
|
||||
>
|
||||
<!-- For separated items-->
|
||||
|
||||
@@ -16,8 +16,6 @@
|
||||
-->
|
||||
<resources>
|
||||
<!-- Global actions grid -->
|
||||
<dimen name="global_actions_grid_container_bottom_margin">4dp</dimen>
|
||||
|
||||
<dimen name="global_actions_grid_vertical_padding">0dp</dimen>
|
||||
<dimen name="global_actions_grid_horizontal_padding">3dp</dimen>
|
||||
|
||||
|
||||
@@ -16,8 +16,6 @@
|
||||
-->
|
||||
<resources>
|
||||
<!-- Global actions grid -->
|
||||
<dimen name="global_actions_grid_container_bottom_margin">4dp</dimen>
|
||||
|
||||
<dimen name="global_actions_grid_vertical_padding">0dp</dimen>
|
||||
<dimen name="global_actions_grid_horizontal_padding">3dp</dimen>
|
||||
|
||||
|
||||
@@ -23,8 +23,6 @@
|
||||
<dimen name="qs_detail_items_padding_top">16dp</dimen>
|
||||
|
||||
<!-- Global actions grid -->
|
||||
<dimen name="global_actions_grid_container_bottom_margin">4dp</dimen>
|
||||
|
||||
<dimen name="global_actions_grid_vertical_padding">8dp</dimen>
|
||||
<dimen name="global_actions_grid_horizontal_padding">4dp</dimen>
|
||||
|
||||
|
||||
@@ -944,6 +944,12 @@
|
||||
|
||||
<!-- Global actions grid layout -->
|
||||
<dimen name="global_actions_grid_side_margin">4dp</dimen>
|
||||
<dimen name="global_actions_grid_container_bottom_margin">4dp</dimen>
|
||||
|
||||
<!-- Used to workaround a bug where shadows are clipped during animations by expanding
|
||||
the bounds of the parent view. -->
|
||||
<dimen name="global_actions_grid_container_shadow_offset">20dp</dimen>
|
||||
<dimen name="global_actions_grid_container_negative_shadow_offset">-20dp</dimen>
|
||||
|
||||
<!-- The maximum offset in either direction that elements are moved horizontally to prevent
|
||||
burn-in on AOD. -->
|
||||
|
||||
@@ -42,6 +42,8 @@ public class GlobalActionsGridLayout extends GlobalActionsLayout {
|
||||
listView.setReverseSublists(shouldReverseSublists());
|
||||
listView.setReverseItems(shouldReverseListItems());
|
||||
listView.setSwapRowsAndColumns(shouldSwapRowsAndColumns());
|
||||
|
||||
fixNavBarClipping();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -73,6 +75,19 @@ public class GlobalActionsGridLayout extends GlobalActionsLayout {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Allows the dialog to clip over the navbar, which prevents shadows and animations from being
|
||||
* cut off.
|
||||
*/
|
||||
private void fixNavBarClipping() {
|
||||
ViewGroup parent = (ViewGroup) this.getParent();
|
||||
ViewGroup parentParent = (ViewGroup) parent.getParent();
|
||||
parent.setClipChildren(false);
|
||||
parent.setClipToPadding(false);
|
||||
parentParent.setClipChildren(false);
|
||||
parentParent.setClipToPadding(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ListGridLayout getListView() {
|
||||
return (ListGridLayout) super.getListView();
|
||||
|
||||
Reference in New Issue
Block a user