diff options
13 files changed, 85 insertions, 68 deletions
diff --git a/packages/SystemUI/res/layout/controls_app_item.xml b/packages/SystemUI/res/layout/controls_app_item.xml index d54cd6db867a..a208098b59c9 100644 --- a/packages/SystemUI/res/layout/controls_app_item.xml +++ b/packages/SystemUI/res/layout/controls_app_item.xml @@ -16,33 +16,25 @@ <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" - android:layout_height="wrap_content" + android:layout_height="64dp" android:background="?android:attr/selectableItemBackground"> <LinearLayout android:layout_width="match_parent" - android:layout_height="wrap_content" + android:layout_height="match_parent" android:layout_gravity="start|top" - android:gravity="center_vertical" - android:minHeight="?android:attr/listPreferredItemHeightSmall" - android:paddingStart="?android:attr/listPreferredItemPaddingStart" - android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" - android:layout_marginBottom="@dimen/controls_app_bottom_margin"> + android:gravity="center_vertical"> <FrameLayout android:id="@+id/icon_frame" android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:gravity="start|center_vertical" - android:minWidth="56dp" + android:layout_height="match_parent" android:orientation="horizontal" - android:paddingTop="@dimen/controls_app_icon_frame_top_padding" - android:paddingBottom="@dimen/controls_app_icon_frame_top_padding" - android:paddingEnd="@dimen/controls_app_icon_frame_side_padding" - android:paddingStart="@dimen/controls_app_icon_frame_side_padding" > + android:paddingEnd="@dimen/controls_app_icon_frame_side_padding"> <ImageView android:id="@android:id/icon" + android:layout_gravity="start|center_vertical" android:layout_width="@dimen/controls_app_icon_size" android:layout_height="@dimen/controls_app_icon_size" /> </FrameLayout> @@ -51,9 +43,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" - android:orientation="vertical" - android:paddingTop="@dimen/controls_app_text_padding" - android:paddingBottom="@dimen/controls_app_text_padding"> + android:orientation="vertical"> <TextView android:id="@android:id/title" @@ -62,8 +52,7 @@ android:ellipsize="end" android:fadingEdge="horizontal" android:singleLine="true" - android:textAppearance="?android:attr/textAppearanceMedium" - android:textColor="?android:attr/textColorPrimary"/> + android:textAppearance="@style/TextAppearance.Control.Management.Subtitle"/> <TextView android:id="@+id/favorites" @@ -81,7 +70,5 @@ android:layout_width="match_parent" android:layout_height="@dimen/controls_app_divider_height" android:layout_gravity="center_horizontal|bottom" - android:layout_marginStart="@dimen/controls_app_divider_side_margin" - android:layout_marginEnd="@dimen/controls_app_divider_side_margin" android:background="?android:attr/listDivider" /> </FrameLayout>
\ No newline at end of file diff --git a/packages/SystemUI/res/layout/controls_base_item.xml b/packages/SystemUI/res/layout/controls_base_item.xml index e7bb3afc25af..477a70f4c7ad 100644 --- a/packages/SystemUI/res/layout/controls_base_item.xml +++ b/packages/SystemUI/res/layout/controls_base_item.xml @@ -98,15 +98,15 @@ <CheckBox android:id="@+id/favorite" android:visibility="invisible" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="bottom|end" + android:layout_width="@dimen/controls_management_checkbox_size" + android:layout_height="@dimen/controls_management_checkbox_size" + android:minHeight="0dp" + android:minWidth="0dp" + android:gravity="center" android:background="@android:color/transparent" android:clickable="false" android:selectable="false" android:importantForAccessibility="no" - android:layout_marginTop="4dp" - android:layout_marginStart="4dp" app:layout_constraintStart_toEndOf="@id/subtitle" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintBottom_toBottomOf="parent"/> diff --git a/packages/SystemUI/res/layout/controls_horizontal_divider_with_empty.xml b/packages/SystemUI/res/layout/controls_horizontal_divider_with_empty.xml index 90b3398e3de2..11144f6a94b4 100644 --- a/packages/SystemUI/res/layout/controls_horizontal_divider_with_empty.xml +++ b/packages/SystemUI/res/layout/controls_horizontal_divider_with_empty.xml @@ -22,23 +22,17 @@ > <View - android:layout_width="match_parent" - android:layout_height="@dimen/controls_management_list_margin" - /> - - <FrameLayout android:id="@+id/frame" android:layout_width="match_parent" android:layout_height="@dimen/control_height" android:visibility="gone" > - </FrameLayout> + </View> <View android:id="@+id/divider" android:layout_width="match_parent" android:layout_height="1dp" - android:layout_marginBottom="10dp" - android:layout_marginStart="40dp" - android:layout_marginEnd="40dp" + android:layout_marginBottom="@dimen/controls_management_editing_divider_margin" + android:layout_marginTop="@dimen/controls_management_editing_divider_margin" android:background="#4dffffff" /> </LinearLayout> diff --git a/packages/SystemUI/res/layout/controls_management.xml b/packages/SystemUI/res/layout/controls_management.xml index 835e54e9e433..46f79deff109 100644 --- a/packages/SystemUI/res/layout/controls_management.xml +++ b/packages/SystemUI/res/layout/controls_management.xml @@ -31,18 +31,15 @@ android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textAppearance="?android:attr/textAppearanceLarge" - android:textSize="@dimen/controls_title_size" + android:textAppearance="@style/TextAppearance.Control.Management.Title" android:textAlignment="center" /> - - <TextView android:id="@+id/subtitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/controls_management_titles_margin" - android:textAppearance="?android:attr/textAppearanceSmall" + android:textAppearance="@style/TextAppearance.Control.Management.Subtitle" android:textAlignment="center" /> <ViewStub @@ -53,7 +50,7 @@ <FrameLayout android:layout_width="match_parent" - android:layout_height="64dp"> + android:layout_height="72dp"> <View android:layout_width="match_parent" @@ -64,7 +61,7 @@ <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" - android:padding="4dp"> + android:padding="@dimen/controls_management_footer_side_margin"> <Button android:id="@+id/other_apps" diff --git a/packages/SystemUI/res/layout/controls_management_apps.xml b/packages/SystemUI/res/layout/controls_management_apps.xml index 94df9d8f4775..4348ffe40087 100644 --- a/packages/SystemUI/res/layout/controls_management_apps.xml +++ b/packages/SystemUI/res/layout/controls_management_apps.xml @@ -19,6 +19,8 @@ android:id="@+id/list" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_marginTop="@dimen/controls_management_list_margin" + android:layout_marginTop="@dimen/controls_management_apps_list_margin" + android:layout_marginStart="@dimen/controls_management_apps_extra_side_margin" + android:layout_marginEnd="@dimen/controls_management_apps_extra_side_margin" /> diff --git a/packages/SystemUI/res/layout/controls_management_editing.xml b/packages/SystemUI/res/layout/controls_management_editing.xml index 8a14ec3666b2..7356b290380a 100644 --- a/packages/SystemUI/res/layout/controls_management_editing.xml +++ b/packages/SystemUI/res/layout/controls_management_editing.xml @@ -22,6 +22,6 @@ android:layout_height="match_parent" android:clipChildren="false" android:clipToPadding="false" - android:paddingTop="@dimen/controls_management_list_margin" + android:paddingTop="@dimen/controls_management_editing_list_margin" /> diff --git a/packages/SystemUI/res/layout/controls_management_favorites.xml b/packages/SystemUI/res/layout/controls_management_favorites.xml index d2ccfcb11c5c..a0d8ae42f584 100644 --- a/packages/SystemUI/res/layout/controls_management_favorites.xml +++ b/packages/SystemUI/res/layout/controls_management_favorites.xml @@ -32,10 +32,10 @@ <com.android.systemui.controls.management.ManagementPageIndicator android:id="@+id/structure_page_indicator" android:layout_width="wrap_content" - android:layout_height="match_parent" + android:layout_height="@dimen/controls_management_page_indicator_height" android:layout_gravity="center" android:layout_marginTop="@dimen/controls_management_list_margin" - android:visibility="gone" /> + android:visibility="invisible" /> <androidx.viewpager2.widget.ViewPager2 android:id="@+id/structure_pager" diff --git a/packages/SystemUI/res/layout/controls_structure_page.xml b/packages/SystemUI/res/layout/controls_structure_page.xml index 047ab98eb191..f048d62d46d7 100644 --- a/packages/SystemUI/res/layout/controls_structure_page.xml +++ b/packages/SystemUI/res/layout/controls_structure_page.xml @@ -21,4 +21,4 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" - android:layout_marginTop="@dimen/controls_management_list_margin"/>
\ No newline at end of file + android:layout_marginTop="@dimen/controls_management_zone_top_margin"/>
\ No newline at end of file diff --git a/packages/SystemUI/res/layout/controls_zone_header.xml b/packages/SystemUI/res/layout/controls_zone_header.xml index 93f99b12fd31..74c020a29c60 100644 --- a/packages/SystemUI/res/layout/controls_zone_header.xml +++ b/packages/SystemUI/res/layout/controls_zone_header.xml @@ -18,10 +18,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" - android:textAppearance="@style/TextAppearance.Control.Title" - android:layout_marginStart="12dp" - android:layout_marginEnd="2dp" - android:layout_marginTop="8dp" + android:textAppearance="@style/TextAppearance.Control.Management.Subtitle" + android:layout_marginTop="@dimen/controls_management_zone_top_margin" android:layout_marginBottom="4dp"> - </TextView>
\ No newline at end of file diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index 2c2e7244ce2e..c68c814532fe 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -1283,13 +1283,23 @@ <!-- Home Controls management screens --> <dimen name="controls_management_top_padding">48dp</dimen> - <dimen name="controls_management_side_padding">8dp</dimen> - <dimen name="controls_management_titles_margin">8dp</dimen> + <dimen name="controls_management_side_padding">16dp</dimen> + <dimen name="controls_management_titles_margin">16dp</dimen> + <dimen name="controls_management_footer_side_margin">8dp</dimen> <dimen name="controls_management_list_margin">16dp</dimen> - <dimen name="controls_title_size">26sp</dimen> - - <dimen name="controls_app_icon_size">32dp</dimen> - <dimen name="controls_app_icon_frame_side_padding">8dp</dimen> + <dimen name="controls_management_apps_list_margin">64dp</dimen> + <dimen name="controls_management_editing_list_margin">48dp</dimen> + <dimen name="controls_management_editing_divider_margin">24dp</dimen> + <dimen name="controls_management_apps_extra_side_margin">8dp</dimen> + <dimen name="controls_management_apps_top_margin"></dimen> + <dimen name="controls_management_zone_top_margin">32dp</dimen> + <dimen name="controls_management_page_indicator_height">24dp</dimen> + <dimen name="controls_management_checkbox_size">25dp</dimen> + <dimen name="controls_title_size">24sp</dimen> + <dimen name="controls_subtitle_size">16sp</dimen> + + <dimen name="controls_app_icon_size">24dp</dimen> + <dimen name="controls_app_icon_frame_side_padding">16dp</dimen> <dimen name="controls_app_icon_frame_top_padding">4dp</dimen> <dimen name="controls_app_icon_frame_bottom_padding">@dimen/controls_app_icon_frame_top_padding</dimen> <dimen name="controls_app_bottom_margin">8dp</dimen> diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml index d3a5f04b7285..6e25625d3b88 100644 --- a/packages/SystemUI/res/values/styles.xml +++ b/packages/SystemUI/res/values/styles.xml @@ -734,6 +734,18 @@ <item name="android:textSize">@dimen/control_text_size</item> <item name="android:textColor">@color/control_secondary_text</item> </style> + <style name="TextAppearance.Control.Management" > + <item name="android:textColor">?android:attr/textColorPrimary</item> + </style> + <style name="TextAppearance.Control.Management.Title"> + <item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item> + <item name="android:textSize">@dimen/controls_title_size</item> + </style> + <style name="TextAppearance.Control.Management.Subtitle"> + <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item> + <item name="android:textSize">@dimen/controls_subtitle_size</item> + </style> + <style name="Control.ListPopupWindow" parent="@*android:style/Widget.DeviceDefault.ListPopupWindow"> <item name="android:overlapAnchor">true</item> diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt b/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt index 03ca3931e68c..79dd9edef0f0 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt @@ -18,6 +18,7 @@ package com.android.systemui.controls.management import android.content.ComponentName import android.graphics.Rect +import android.service.controls.Control import android.service.controls.DeviceTypes import android.view.LayoutInflater import android.view.View @@ -46,9 +47,9 @@ class ControlAdapter( ) : RecyclerView.Adapter<Holder>() { companion object { - private const val TYPE_ZONE = 0 - private const val TYPE_CONTROL = 1 - private const val TYPE_DIVIDER = 2 + const val TYPE_ZONE = 0 + const val TYPE_CONTROL = 1 + const val TYPE_DIVIDER = 2 } val spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() { @@ -142,7 +143,7 @@ sealed class Holder(view: View) : RecyclerView.ViewHolder(view) { /** * Holder for using with [DividerWrapper] to display a divider between zones. * - * The divider can be shown or hidden. It also has a frame view the height of a control, that can + * The divider can be shown or hidden. It also has a view the height of a control, that can * be toggled visible or gone. */ private class DividerHolder(view: View) : Holder(view) { @@ -229,10 +230,25 @@ class MarginItemDecorator( parent: RecyclerView, state: RecyclerView.State ) { - outRect.apply { - top = topMargin - left = sideMargins - right = sideMargins + val position = parent.getChildAdapterPosition(view) + if (position == RecyclerView.NO_POSITION) return + val type = parent.adapter?.getItemViewType(position) + if (type == ControlAdapter.TYPE_CONTROL) { + outRect.apply { + top = topMargin + left = sideMargins + right = sideMargins + bottom = 0 + } + } else if (type == ControlAdapter.TYPE_ZONE && position == 0) { + // add negative padding to the first zone to counteract the margin + val margin = (view.layoutParams as ViewGroup.MarginLayoutParams).topMargin + outRect.apply { + top = -margin + left = 0 + right = 0 + bottom = 0 + } } } } diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsFavoritingActivity.kt b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsFavoritingActivity.kt index e3175aafb1b1..bd75116984ab 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsFavoritingActivity.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsFavoritingActivity.kt @@ -104,7 +104,9 @@ class ControlsFavoritingActivity @Inject constructor( override fun onServicesUpdated(serviceInfos: List<ControlsServiceInfo>) { if (serviceInfos.size > 1) { - otherAppsButton.visibility = View.VISIBLE + otherAppsButton.post { + otherAppsButton.visibility = View.VISIBLE + } } } } @@ -170,7 +172,7 @@ class ControlsFavoritingActivity @Inject constructor( pageIndicator.setNumPages(listOfStructures.size) pageIndicator.setLocation(0f) pageIndicator.visibility = - if (listOfStructures.size > 1) View.VISIBLE else View.GONE + if (listOfStructures.size > 1) View.VISIBLE else View.INVISIBLE ControlsAnimations.enterAnimation(pageIndicator).apply { addListener(object : AnimatorListenerAdapter() { |