diff options
| author | 2020-03-05 10:09:39 +0000 | |
|---|---|---|
| committer | 2020-03-05 10:09:39 +0000 | |
| commit | 5f35da6c5cea3c568fc960b8aaa9d092f3547c08 (patch) | |
| tree | 05fe50e3c4a2c234f06c0c0ae39c6f4ec4149271 | |
| parent | dc1fe789784cad28e4cb09f9c54624228611e588 (diff) | |
| parent | 9ef947a8a25da9a3de760d22fc139db8d2a4e5a7 (diff) | |
Merge "Controls UI - Spinner cleanup" into rvc-dev
7 files changed, 112 insertions, 48 deletions
diff --git a/packages/SystemUI/res/drawable/control_spinner_background.xml b/packages/SystemUI/res/drawable/control_spinner_background.xml new file mode 100644 index 000000000000..999a77c71bb2 --- /dev/null +++ b/packages/SystemUI/res/drawable/control_spinner_background.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2020 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. +--> + +<layer-list xmlns:android="http://schemas.android.com/apk/res/android" + android:paddingMode="stack" + android:paddingStart="0dp" + android:paddingEnd="40dp" + android:paddingLeft="0dp" + android:paddingRight="0dp"> + <item + android:gravity="end|fill_vertical" + android:width="40dp" + android:drawable="@*android:drawable/control_background_40dp_material" /> + + <item + android:drawable="@drawable/ic_ksh_key_down" + android:gravity="end|bottom" + android:paddingBottom="6dp" + android:width="24dp" + android:height="24dp" + android:end="12dp" /> +</layer-list> diff --git a/packages/SystemUI/res/layout/controls_spinner_item.xml b/packages/SystemUI/res/layout/controls_spinner_item.xml index 6b880545b296..cb2ad94c8c99 100644 --- a/packages/SystemUI/res/layout/controls_spinner_item.xml +++ b/packages/SystemUI/res/layout/controls_spinner_item.xml @@ -29,22 +29,18 @@ android:id="@+id/app_icon" android:layout_gravity="center" android:layout_width="34dp" - android:layout_height="24dp" + android:layout_height="24dp" android:layout_marginEnd="10dp" /> <TextView + style="@style/Control.Spinner.Item" android:id="@+id/controls_spinner_item" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:singleLine="true" - android:layout_gravity="center" - android:textSize="25sp" - android:textColor="@color/control_secondary_text" - android:fontFamily="@*android:string/config_headlineFontFamily" /> + android:layout_gravity="center" /> <Space android:layout_weight="1" android:layout_width="0dp" android:layout_height="1dp" /> </LinearLayout> - diff --git a/packages/SystemUI/res/layout/controls_with_favorites.xml b/packages/SystemUI/res/layout/controls_with_favorites.xml index 77bcc3575fad..fd722737a6aa 100644 --- a/packages/SystemUI/res/layout/controls_with_favorites.xml +++ b/packages/SystemUI/res/layout/controls_with_favorites.xml @@ -14,47 +14,49 @@ ~ limitations under the License. --> <merge - xmlns:android="http://schemas.android.com/apk/res/android"> + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto"> - <LinearLayout - android:id="@+id/controls_header" - android:orientation="horizontal" + <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingTop="12dp"> + android:paddingTop="20dp"> - <Space - android:layout_weight="1" - android:layout_width="0dp" - android:layout_height="1dp" /> + <LinearLayout + android:id="@+id/controls_header" + android:orientation="horizontal" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/controls_header_side_margin" + android:layout_marginEnd="@dimen/controls_header_side_margin" + android:gravity="center" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" > - <ImageView - android:id="@+id/app_icon" - android:layout_gravity="center" - android:layout_width="24dp" - android:layout_height="24dp" - android:layout_marginEnd="10dp" /> + <ImageView + android:id="@+id/app_icon" + android:layout_gravity="center" + android:layout_width="24dp" + android:layout_height="24dp" + android:layout_marginEnd="10dp" /> - <TextView - style="@style/Control.Spinner.Header" - android:clickable="false" - android:id="@+id/app_or_structure_spinner" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:singleLine="true" - android:layout_gravity="center" - android:ellipsize="end" /> + <TextView + style="@style/Control.Spinner.Header" + android:clickable="false" + android:id="@+id/app_or_structure_spinner" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" /> + </LinearLayout> - <Space - android:layout_weight="1" - android:layout_width="0dp" - android:layout_height="1dp" /> - </LinearLayout> + </androidx.constraintlayout.widget.ConstraintLayout> <LinearLayout android:id="@+id/global_actions_controls_list" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" - android:paddingTop="20dp" /> + android:paddingTop="12dp" /> </merge> diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml index 73e49cee6a8b..e61d8049e45c 100644 --- a/packages/SystemUI/res/values/colors.xml +++ b/packages/SystemUI/res/values/colors.xml @@ -223,4 +223,6 @@ <color name="control_secondary_text">@*android:color/dim_foreground_dark</color> <color name="control_default_foreground">@*android:color/foreground_material_dark</color> <color name="control_default_background">@*android:color/background_floating_material_dark</color> + <color name="control_list_popup_background">@*android:color/background_floating_material_dark</color> + <color name="control_spinner_dropdown">@*android:color/foreground_material_dark</color> </resources> diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index 4f803bccfb25..a5bb9d7a8916 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -1216,6 +1216,8 @@ <dimen name="magnifier_up_down_controls_height">40dp</dimen> <!-- Home Controls --> + <dimen name="controls_header_side_margin">32dp</dimen> + <dimen name="control_header_text">24sp</dimen> <dimen name="control_spacing">4dp</dimen> <dimen name="control_list_divider">1dp</dimen> <dimen name="control_corner_radius">15dp</dimen> diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml index 83c507095534..a6c1eb0e7226 100644 --- a/packages/SystemUI/res/values/styles.xml +++ b/packages/SystemUI/res/values/styles.xml @@ -656,10 +656,22 @@ <item name="android:fontFamily">@*android:string/config_bodyFontFamily</item> </style> - <style name="Control.Spinner.Header" parent="@*android:style/Widget.DeviceDefault.Spinner.DropDown"> - <item name="android:textSize">25sp</item> - <item name="android:textColor">@color/control_primary_text</item> + <style name="Control" /> + + <style name="Control.Spinner"> + <item name="android:textSize">@dimen/control_header_text</item> <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item> + <item name="android:singleLine">true</item> + <item name="android:ellipsize">end</item> + </style> + + <style name="Control.Spinner.Header"> + <item name="android:background">@drawable/control_spinner_background</item> + <item name="android:textColor">@color/control_primary_text</item> + </style> + + <style name="Control.Spinner.Item"> + <item name="android:textColor">@color/control_secondary_text</item> </style> <style name="TextAppearance.Control.Status"> @@ -675,8 +687,11 @@ <item name="android:textSize">12sp</item> <item name="android:textColor">@color/control_secondary_text</item> </style> - <style name="Control.ListPopupWindow" parent="@android:style/Widget.ListPopupWindow"> + <style name="Control.ListPopupWindow" parent="@*android:style/Widget.DeviceDefault.ListPopupWindow"> <item name="android:overlapAnchor">true</item> + + <!-- used to override dark/light theming --> + <item name="*android:colorPopupBackground">@color/control_list_popup_background</item> </style> </resources> diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt index c7157da26ea3..eaf57ff208e5 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt @@ -24,6 +24,7 @@ import android.content.Intent import android.content.ServiceConnection import android.content.SharedPreferences import android.graphics.drawable.Drawable +import android.graphics.drawable.LayerDrawable import android.os.IBinder import android.service.controls.Control import android.service.controls.TokenProvider @@ -152,12 +153,19 @@ class ControlsUiControllerImpl @Inject constructor ( private lateinit var lastItems: List<SelectionItem> private var popup: ListPopupWindow? = null - private val addControlsItem = SelectionItem( - context.resources.getString(R.string.controls_providers_title), - "", - context.getDrawable(R.drawable.ic_add), - EMPTY_COMPONENT - ) + private val addControlsItem: SelectionItem + + init { + val addDrawable = context.getDrawable(R.drawable.ic_add).apply { + setTint(context.resources.getColor(R.color.control_secondary_text, null)) + } + addControlsItem = SelectionItem( + context.resources.getString(R.string.controls_providers_title), + "", + addDrawable, + EMPTY_COMPONENT + ) + } override val available: Boolean get() = controlsController.get().available @@ -296,6 +304,9 @@ class ControlsUiControllerImpl @Inject constructor ( val item = adapter.findSelectionItem(selectedStructure) ?: adapter.getItem(0) parent.requireViewById<TextView>(R.id.app_or_structure_spinner).apply { setText(item.getTitle()) + // override the default color on the dropdown drawable + (getBackground() as LayerDrawable).getDrawable(1) + .setTint(context.resources.getColor(R.color.control_spinner_dropdown, null)) } parent.requireViewById<ImageView>(R.id.app_icon).apply { setContentDescription(item.getTitle()) @@ -368,7 +379,8 @@ class ControlsUiControllerImpl @Inject constructor ( if (newSelection != selectedStructure) { selectedStructure = newSelection updatePreferences(selectedStructure) - showControlsView(lastItems) + controlsListingController.get().removeCallback(listingCallback) + show(parent) } } } |