diff options
11 files changed, 170 insertions, 82 deletions
diff --git a/packages/SystemUI/res/layout-land/global_actions_grid.xml b/packages/SystemUI/res/layout-land/global_actions_grid.xml index 911b661d48eb..480f5235f75a 100644 --- a/packages/SystemUI/res/layout-land/global_actions_grid.xml +++ b/packages/SystemUI/res/layout-land/global_actions_grid.xml @@ -29,10 +29,10 @@ android:layoutDirection="ltr" android:layout_marginTop="@dimen/global_actions_grid_side_margin" android:translationZ="@dimen/global_actions_translate" - android:paddingLeft="@dimen/global_actions_grid_top_padding" - android:paddingRight="@dimen/global_actions_grid_bottom_padding" - android:paddingTop="@dimen/global_actions_grid_left_padding" - android:paddingBottom="@dimen/global_actions_grid_right_padding" + android:paddingLeft="@dimen/global_actions_grid_horizontal_padding" + android:paddingRight="@dimen/global_actions_grid_horizontal_padding" + android:paddingTop="@dimen/global_actions_grid_vertical_padding" + android:paddingBottom="@dimen/global_actions_grid_vertical_padding" android:background="?android:attr/colorBackgroundFloating" > <LinearLayout @@ -61,17 +61,18 @@ <!-- For separated items--> <LinearLayout android:id="@+id/separated_button" - android:layout_width="wrap_content" + android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/global_actions_grid_side_margin" android:layout_marginBottom="@dimen/global_actions_grid_side_margin" - android:paddingTop="@dimen/global_actions_grid_left_padding" - android:paddingLeft="@dimen/global_actions_grid_top_padding" - android:paddingBottom="@dimen/global_actions_grid_right_padding" - android:paddingRight="@dimen/global_actions_grid_bottom_padding" + android:paddingLeft="@dimen/global_actions_grid_horizontal_padding" + android:paddingRight="@dimen/global_actions_grid_horizontal_padding" + android:paddingTop="@dimen/global_actions_grid_vertical_padding" + android:paddingBottom="@dimen/global_actions_grid_vertical_padding" android:orientation="horizontal" android:layoutDirection="ltr" android:background="?android:attr/colorBackgroundFloating" + android:gravity="center" android:translationZ="@dimen/global_actions_translate" /> diff --git a/packages/SystemUI/res/layout-land/global_actions_grid_seascape.xml b/packages/SystemUI/res/layout-land/global_actions_grid_seascape.xml index 669be1b40567..4f868263226d 100644 --- a/packages/SystemUI/res/layout-land/global_actions_grid_seascape.xml +++ b/packages/SystemUI/res/layout-land/global_actions_grid_seascape.xml @@ -23,17 +23,18 @@ <LinearLayout android:id="@+id/separated_button" android:layout_gravity="top|left" - android:layout_width="wrap_content" + android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/global_actions_grid_side_margin" android:layout_marginBottom="@dimen/global_actions_grid_side_margin" - android:paddingTop="@dimen/global_actions_grid_left_padding" - android:paddingLeft="@dimen/global_actions_grid_top_padding" - android:paddingBottom="@dimen/global_actions_grid_right_padding" - android:paddingRight="@dimen/global_actions_grid_bottom_padding" + android:paddingLeft="@dimen/global_actions_grid_horizontal_padding" + android:paddingRight="@dimen/global_actions_grid_horizontal_padding" + android:paddingTop="@dimen/global_actions_grid_vertical_padding" + android:paddingBottom="@dimen/global_actions_grid_vertical_padding" android:orientation="horizontal" android:layoutDirection="rtl" android:background="?android:attr/colorBackgroundFloating" + android:gravity="center" android:translationZ="@dimen/global_actions_translate" /> @@ -44,12 +45,12 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" - android:layout_marginTop="@dimen/global_actions_grid_side_margin" + android:layout_marginBottom="@dimen/global_actions_grid_side_margin" android:translationZ="@dimen/global_actions_translate" - android:paddingLeft="@dimen/global_actions_grid_top_padding" - android:paddingRight="@dimen/global_actions_grid_bottom_padding" - android:paddingTop="@dimen/global_actions_grid_left_padding" - android:paddingBottom="@dimen/global_actions_grid_right_padding" + android:paddingLeft="@dimen/global_actions_grid_horizontal_padding" + android:paddingRight="@dimen/global_actions_grid_horizontal_padding" + android:paddingTop="@dimen/global_actions_grid_vertical_padding" + android:paddingBottom="@dimen/global_actions_grid_vertical_padding" android:background="?android:attr/colorBackgroundFloating" > <LinearLayout diff --git a/packages/SystemUI/res/layout/global_actions_grid.xml b/packages/SystemUI/res/layout/global_actions_grid.xml index 1b56fa089281..729e96ebc22e 100644 --- a/packages/SystemUI/res/layout/global_actions_grid.xml +++ b/packages/SystemUI/res/layout/global_actions_grid.xml @@ -23,15 +23,16 @@ <LinearLayout android:id="@+id/separated_button" android:layout_width="wrap_content" - android:layout_height="wrap_content" + android:layout_height="match_parent" android:layout_marginLeft="@dimen/global_actions_grid_side_margin" android:layout_marginRight="@dimen/global_actions_grid_side_margin" - android:paddingTop="@dimen/global_actions_grid_top_padding" - android:paddingLeft="@dimen/global_actions_grid_left_padding" - android:paddingBottom="@dimen/global_actions_grid_bottom_padding" - android:paddingRight="@dimen/global_actions_grid_right_padding" + android:paddingLeft="@dimen/global_actions_grid_horizontal_padding" + android:paddingRight="@dimen/global_actions_grid_horizontal_padding" + android:paddingTop="@dimen/global_actions_grid_vertical_padding" + android:paddingBottom="@dimen/global_actions_grid_vertical_padding" android:orientation="vertical" android:background="?android:attr/colorBackgroundFloating" + android:gravity="center" android:translationZ="@dimen/global_actions_translate" /> @@ -44,10 +45,10 @@ android:layoutDirection="rtl" android:layout_marginRight="@dimen/global_actions_grid_side_margin" android:translationZ="@dimen/global_actions_translate" - android:paddingLeft="@dimen/global_actions_grid_left_padding" - android:paddingRight="@dimen/global_actions_grid_right_padding" - android:paddingTop="@dimen/global_actions_grid_top_padding" - android:paddingBottom="@dimen/global_actions_grid_bottom_padding" + android:paddingLeft="@dimen/global_actions_grid_horizontal_padding" + android:paddingRight="@dimen/global_actions_grid_horizontal_padding" + android:paddingTop="@dimen/global_actions_grid_vertical_padding" + android:paddingBottom="@dimen/global_actions_grid_vertical_padding" android:background="?android:attr/colorBackgroundFloating" > <LinearLayout diff --git a/packages/SystemUI/res/layout/global_actions_grid_item.xml b/packages/SystemUI/res/layout/global_actions_grid_item.xml index a8938390690f..5dee09dac947 100644 --- a/packages/SystemUI/res/layout/global_actions_grid_item.xml +++ b/packages/SystemUI/res/layout/global_actions_grid_item.xml @@ -18,46 +18,43 @@ work around this for now with LinearLayouts. --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="72dp" - android:layout_height="72dp" - android:gravity="center" + android:layout_width="@dimen/global_actions_grid_item_width" + android:layout_height="@dimen/global_actions_grid_item_height" + android:gravity="top|center_horizontal" android:orientation="vertical" android:layout_marginTop="@dimen/global_actions_grid_item_vertical_margin" android:layout_marginBottom="@dimen/global_actions_grid_item_vertical_margin" android:layout_marginLeft="@dimen/global_actions_grid_item_side_margin" android:layout_marginRight="@dimen/global_actions_grid_item_side_margin" - android:paddingEnd="4dip" - android:paddingStart="4dip"> - +> <ImageView android:id="@*android:id/icon" - android:layout_width="24dp" - android:layout_height="24dp" - android:layout_gravity="center" + android:layout_width="@dimen/global_actions_grid_item_icon_width" + android:layout_height="@dimen/global_actions_grid_item_icon_height" + android:layout_marginTop="@dimen/global_actions_grid_item_icon_top_margin" + android:layout_marginBottom="@dimen/global_actions_grid_item_icon_bottom_margin" + android:layout_marginLeft="@dimen/global_actions_grid_item_icon_side_margin" + android:layout_marginRight="@dimen/global_actions_grid_item_icon_side_margin" android:scaleType="center" android:alpha="?android:attr/primaryContentAlpha" /> <TextView android:id="@*android:id/message" - android:layout_width="wrap_content" + android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_gravity="top|center_horizontal" - android:paddingTop="10dp" android:gravity="center" - android:textSize="12sp" + android:textSize="12dp" android:textAppearance="?android:attr/textAppearanceSmall" - android:singleLine="true" /> <TextView + android:visibility="gone" android:id="@*android:id/status" - android:layout_width="wrap_content" + android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_gravity="top|center_horizontal" android:gravity="center" android:textColor="?android:attr/textColorTertiary" android:textAppearance="?android:attr/textAppearanceSmall" - android:singleLine="true" /> </LinearLayout> diff --git a/packages/SystemUI/res/values-sw320dp-land/dimens.xml b/packages/SystemUI/res/values-sw320dp-land/dimens.xml new file mode 100644 index 000000000000..2ec5abd673cb --- /dev/null +++ b/packages/SystemUI/res/values-sw320dp-land/dimens.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2019 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<resources> + + <!-- Global actions grid --> + <dimen name="global_actions_grid_vertical_padding">3dp</dimen> + <dimen name="global_actions_grid_horizontal_padding">0dp</dimen> + + <dimen name="global_actions_grid_item_side_margin">4dp</dimen> + <dimen name="global_actions_grid_item_vertical_margin">5dp</dimen> + +</resources> + diff --git a/packages/SystemUI/res/values-sw320dp/dimens.xml b/packages/SystemUI/res/values-sw320dp/dimens.xml new file mode 100644 index 000000000000..0c2b1cc5e679 --- /dev/null +++ b/packages/SystemUI/res/values-sw320dp/dimens.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2019 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<resources> + + <!-- Global actions grid --> + <dimen name="global_actions_grid_container_bottom_margin">16dp</dimen> + + <dimen name="global_actions_grid_vertical_padding">0dp</dimen> + <dimen name="global_actions_grid_horizontal_padding">3dp</dimen> + + <dimen name="global_actions_grid_item_side_margin">5dp</dimen> + <dimen name="global_actions_grid_item_vertical_margin">4dp</dimen> + <dimen name="global_actions_grid_item_width">64dp</dimen> + <dimen name="global_actions_grid_item_height">64dp</dimen> + + <dimen name="global_actions_grid_item_icon_width">18dp</dimen> + <dimen name="global_actions_grid_item_icon_height">18dp</dimen> + <dimen name="global_actions_grid_item_icon_top_margin">12dp</dimen> + <dimen name="global_actions_grid_item_icon_side_margin">22dp</dimen> + <dimen name="global_actions_grid_item_icon_bottom_margin">4dp</dimen> + +</resources> + diff --git a/packages/SystemUI/res/values-sw410dp-land/dimens.xml b/packages/SystemUI/res/values-sw410dp-land/dimens.xml new file mode 100644 index 000000000000..61ba2d02da9e --- /dev/null +++ b/packages/SystemUI/res/values-sw410dp-land/dimens.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2019 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<resources> + + <!-- Global actions grid --> + <dimen name="global_actions_grid_vertical_padding">4dp</dimen> + <dimen name="global_actions_grid_horizontal_padding">8dp</dimen> + + <dimen name="global_actions_grid_item_side_margin">8dp</dimen> + <dimen name="global_actions_grid_item_vertical_margin">12dp</dimen> + +</resources> + diff --git a/packages/SystemUI/res/values-sw410dp/dimens.xml b/packages/SystemUI/res/values-sw410dp/dimens.xml index 5ce65241c9ca..4197eb2519fa 100644 --- a/packages/SystemUI/res/values-sw410dp/dimens.xml +++ b/packages/SystemUI/res/values-sw410dp/dimens.xml @@ -21,4 +21,22 @@ for different hardware and product builds. --> <resources> <dimen name="qs_detail_items_padding_top">16dp</dimen> + + <!-- Global actions grid --> + <dimen name="global_actions_grid_container_bottom_margin">16dp</dimen> + + <dimen name="global_actions_grid_vertical_padding">8dp</dimen> + <dimen name="global_actions_grid_horizontal_padding">4dp</dimen> + + <dimen name="global_actions_grid_item_side_margin">12dp</dimen> + <dimen name="global_actions_grid_item_vertical_margin">8dp</dimen> + <dimen name="global_actions_grid_item_width">72dp</dimen> + <dimen name="global_actions_grid_item_height">72dp</dimen> + + <dimen name="global_actions_grid_item_icon_width">24dp</dimen> + <dimen name="global_actions_grid_item_icon_height">24dp</dimen> + <dimen name="global_actions_grid_item_icon_top_margin">16dp</dimen> + <dimen name="global_actions_grid_item_icon_side_margin">24dp</dimen> + <dimen name="global_actions_grid_item_icon_bottom_margin">4dp</dimen> + </resources> diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index 1e1245fe0d86..911855f016f9 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -841,26 +841,15 @@ <dimen name="default_gear_space">18dp</dimen> <dimen name="cell_overlay_padding">18dp</dimen> + <!-- Global actions power menu --> <dimen name="global_actions_panel_width">120dp</dimen> - - <dimen name="global_actions_grid_container_bottom_margin">16dp</dimen> - - <dimen name="global_actions_grid_side_margin">4dp</dimen> - <dimen name="global_actions_grid_separated_panel_width">104dp</dimen> - <dimen name="global_actions_grid_top_padding">8dp</dimen> - <dimen name="global_actions_grid_bottom_padding">8dp</dimen> - <dimen name="global_actions_grid_left_padding">4dp</dimen> - <dimen name="global_actions_grid_right_padding">4dp</dimen> - - <dimen name="global_actions_grid_item_side_margin">12dp</dimen> - <dimen name="global_actions_grid_item_vertical_margin">8dp</dimen> - <dimen name="global_actions_top_padding">120dp</dimen> - <dimen name="global_actions_padding">12dp</dimen> - <dimen name="global_actions_translate">9dp</dimen> + <!-- Global actions grid layout --> + <dimen name="global_actions_grid_side_margin">4dp</dimen> + <!-- The maximum offset in either direction that elements are moved horizontally to prevent burn-in on AOD. --> <dimen name="burn_in_prevention_offset_x">8dp</dimen> diff --git a/packages/SystemUI/src/com/android/systemui/MultiListLayout.java b/packages/SystemUI/src/com/android/systemui/MultiListLayout.java index 00ff518ce212..8c49d56ae348 100644 --- a/packages/SystemUI/src/com/android/systemui/MultiListLayout.java +++ b/packages/SystemUI/src/com/android/systemui/MultiListLayout.java @@ -151,7 +151,10 @@ public abstract class MultiListLayout extends LinearLayout { return null; } - interface RotationListener { + /** + * Interface to provide callbacks which trigger when this list detects a rotation. + */ + public interface RotationListener { void onRotate(int from, int to); } } diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java index 7c9b2864f7f2..3fa6035387c7 100644 --- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java +++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java @@ -33,7 +33,6 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.UserInfo; -import android.content.res.Configuration; import android.database.ContentObserver; import android.graphics.Point; import android.graphics.drawable.Drawable; @@ -161,8 +160,6 @@ class GlobalActionsDialog implements DialogInterface.OnDismissListener, private final ScreenshotHelper mScreenshotHelper; private final ScreenRecordHelper mScreenRecordHelper; - private int mLastRotation; - /** * @param context everything needs a context :( */ @@ -205,8 +202,6 @@ class GlobalActionsDialog implements DialogInterface.OnDismissListener, mScreenshotHelper = new ScreenshotHelper(context); mScreenRecordHelper = new ScreenRecordHelper(context); - mLastRotation = RotationUtils.getRotation(mContext); - Dependency.get(ConfigurationController.class).addCallback(this); } @@ -432,15 +427,6 @@ class GlobalActionsDialog implements DialogInterface.OnDismissListener, mContext.getTheme().applyStyle(mContext.getThemeResId(), true); } - @Override - public void onConfigChanged(Configuration newConfig) { - int rotation = RotationUtils.getRotation(mContext); - if (rotation != mLastRotation) { - mDialog.onRotate(); - } - mLastRotation = rotation; - } - public void destroy() { Dependency.get(ConfigurationController.class).removeCallback(this); } @@ -1540,13 +1526,7 @@ class GlobalActionsDialog implements DialogInterface.OnDismissListener, return true; } }); - } - - public void onRotate() { - if (mShowing && isGridEnabled(mContext)) { - initializeLayout(); - updateList(); - } + mGlobalActionsLayout.setRotationListener(this::onRotate); } private int getGlobalActionsLayoutId(Context context) { @@ -1703,6 +1683,13 @@ class GlobalActionsDialog implements DialogInterface.OnDismissListener, public void setKeyguardShowing(boolean keyguardShowing) { mKeyguardShowing = keyguardShowing; } + + public void onRotate(int from, int to) { + if (mShowing && isGridEnabled(mContext)) { + initializeLayout(); + updateList(); + } + } } /** |