diff options
5 files changed, 53 insertions, 44 deletions
diff --git a/packages/SystemUI/res/layout/combined_qs_header.xml b/packages/SystemUI/res/layout/combined_qs_header.xml index 3a15ae4f17ff..60a78d6346f1 100644 --- a/packages/SystemUI/res/layout/combined_qs_header.xml +++ b/packages/SystemUI/res/layout/combined_qs_header.xml @@ -118,34 +118,37 @@ frame when animating QS <-> QQS transition app:layout_constraintStart_toEndOf="@id/date" app:layout_constraintTop_toTopOf="@id/clock" /> - <LinearLayout + <FrameLayout android:id="@+id/shade_header_system_icons" android:layout_width="wrap_content" android:layout_height="@dimen/shade_header_system_icons_height" - android:clickable="true" - android:orientation="horizontal" - android:gravity="center_vertical" - android:paddingStart="@dimen/shade_header_system_icons_padding_start" - android:paddingEnd="@dimen/shade_header_system_icons_padding_end" - android:paddingTop="@dimen/shade_header_system_icons_padding_top" - android:paddingBottom="@dimen/shade_header_system_icons_padding_bottom" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="@id/privacy_container" app:layout_constraintTop_toTopOf="@id/clock"> - - <com.android.systemui.statusbar.phone.StatusIconContainer - android:id="@+id/statusIcons" - android:layout_width="0dp" - android:layout_weight="1" - android:layout_height="wrap_content" - android:paddingEnd="@dimen/signal_cluster_battery_padding" /> - - <com.android.systemui.battery.BatteryMeterView - android:id="@+id/batteryRemainingIcon" + <LinearLayout + android:id="@+id/hover_system_icons_container" android:layout_width="wrap_content" - android:layout_height="wrap_content" - app:textAppearance="@style/TextAppearance.QS.Status" /> - </LinearLayout> + android:layout_height="match_parent" + android:layout_gravity="right|center_vertical" + android:paddingStart="@dimen/hover_system_icons_container_padding_start" + android:paddingEnd="@dimen/hover_system_icons_container_padding_end" + android:paddingTop="@dimen/hover_system_icons_container_padding_top" + android:paddingBottom="@dimen/hover_system_icons_container_padding_bottom"> + + <com.android.systemui.statusbar.phone.StatusIconContainer + android:id="@+id/statusIcons" + android:layout_width="0dp" + android:layout_weight="1" + android:layout_height="wrap_content" + android:paddingEnd="@dimen/signal_cluster_battery_padding" /> + + <com.android.systemui.battery.BatteryMeterView + android:id="@+id/batteryRemainingIcon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + app:textAppearance="@style/TextAppearance.QS.Status" /> + </LinearLayout> + </FrameLayout> <FrameLayout android:id="@+id/privacy_container" diff --git a/packages/SystemUI/res/values-sw600dp/dimens.xml b/packages/SystemUI/res/values-sw600dp/dimens.xml index 915dcdb9755f..1e54fc9e1445 100644 --- a/packages/SystemUI/res/values-sw600dp/dimens.xml +++ b/packages/SystemUI/res/values-sw600dp/dimens.xml @@ -80,10 +80,10 @@ <dimen name="large_screen_shade_header_height">42dp</dimen> <!-- start padding is smaller to account for status icon margins coming from drawable itself --> - <dimen name="shade_header_system_icons_padding_start">3dp</dimen> - <dimen name="shade_header_system_icons_padding_end">4dp</dimen> - <dimen name="shade_header_system_icons_padding_top">2dp</dimen> - <dimen name="shade_header_system_icons_padding_bottom">2dp</dimen> + <dimen name="hover_system_icons_container_padding_start">3dp</dimen> + <dimen name="hover_system_icons_container_padding_end">4dp</dimen> + <dimen name="hover_system_icons_container_padding_top">2dp</dimen> + <dimen name="hover_system_icons_container_padding_bottom">2dp</dimen> <!-- Lockscreen shade transition values --> <dimen name="lockscreen_shade_transition_by_tap_distance">200dp</dimen> diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index b086ed8960b1..ae3138ef0c52 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -496,10 +496,10 @@ <dimen name="large_screen_shade_header_min_height">@dimen/qs_header_row_min_height</dimen> <dimen name="large_screen_shade_header_left_padding">@dimen/qs_horizontal_margin</dimen> <dimen name="shade_header_system_icons_height">@dimen/large_screen_shade_header_min_height</dimen> - <dimen name="shade_header_system_icons_padding_start">0dp</dimen> - <dimen name="shade_header_system_icons_padding_end">0dp</dimen> - <dimen name="shade_header_system_icons_padding_top">0dp</dimen> - <dimen name="shade_header_system_icons_padding_bottom">0dp</dimen> + <dimen name="hover_system_icons_container_padding_start">0dp</dimen> + <dimen name="hover_system_icons_container_padding_end">0dp</dimen> + <dimen name="hover_system_icons_container_padding_top">0dp</dimen> + <dimen name="hover_system_icons_container_padding_bottom">0dp</dimen> <!-- The top margin of the panel that holds the list of notifications. On phones it's always 0dp but it's overridden in Car UI diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt index 656411874de5..9a356ad1fd0b 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt @@ -135,7 +135,8 @@ constructor( private val date: TextView = header.requireViewById(R.id.date) private val iconContainer: StatusIconContainer = header.requireViewById(R.id.statusIcons) private val mShadeCarrierGroup: ShadeCarrierGroup = header.requireViewById(R.id.carrier_group) - private val systemIcons: View = header.requireViewById(R.id.shade_header_system_icons) + private val systemIconsHoverContainer: View = + header.requireViewById(R.id.hover_system_icons_container) private var roundedCorners = 0 private var cutout: DisplayCutout? = null @@ -259,14 +260,18 @@ constructor( header.paddingRight, header.paddingBottom ) - systemIcons.setPaddingRelative( + systemIconsHoverContainer.setPaddingRelative( resources.getDimensionPixelSize( - R.dimen.shade_header_system_icons_padding_start + R.dimen.hover_system_icons_container_padding_start ), - resources.getDimensionPixelSize(R.dimen.shade_header_system_icons_padding_top), - resources.getDimensionPixelSize(R.dimen.shade_header_system_icons_padding_end), resources.getDimensionPixelSize( - R.dimen.shade_header_system_icons_padding_bottom + R.dimen.hover_system_icons_container_padding_top + ), + resources.getDimensionPixelSize( + R.dimen.hover_system_icons_container_padding_end + ), + resources.getDimensionPixelSize( + R.dimen.hover_system_icons_container_padding_bottom ) ) } @@ -330,8 +335,8 @@ constructor( demoModeController.addCallback(demoModeReceiver) statusBarIconController.addIconGroup(iconManager) nextAlarmController.addCallback(nextAlarmCallback) - systemIcons.setOnHoverListener( - statusOverlayHoverListenerFactory.createListener(systemIcons) + systemIconsHoverContainer.setOnHoverListener( + statusOverlayHoverListenerFactory.createListener(systemIconsHoverContainer) ) } @@ -343,7 +348,7 @@ constructor( demoModeController.removeCallback(demoModeReceiver) statusBarIconController.removeIconGroup(iconManager) nextAlarmController.removeCallback(nextAlarmCallback) - systemIcons.setOnHoverListener(null) + systemIconsHoverContainer.setOnHoverListener(null) } fun disable(state1: Int, state2: Int, animate: Boolean) { @@ -479,11 +484,11 @@ constructor( if (largeScreenActive) { logInstantEvent("Large screen constraints set") header.setTransition(LARGE_SCREEN_HEADER_TRANSITION_ID) - systemIcons.setOnClickListener { shadeCollapseAction?.run() } + systemIconsHoverContainer.setOnClickListener { shadeCollapseAction?.run() } } else { logInstantEvent("Small screen constraints set") header.setTransition(HEADER_TRANSITION_ID) - systemIcons.setOnClickListener(null) + systemIconsHoverContainer.setOnClickListener(null) } header.jumpToState(header.startState) updatePosition() diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/ShadeHeaderControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shade/ShadeHeaderControllerTest.kt index 8f8b840b03c9..7d5f68e783d5 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shade/ShadeHeaderControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/shade/ShadeHeaderControllerTest.kt @@ -130,7 +130,7 @@ class ShadeHeaderControllerTest : SysuiTestCase() { var viewVisibility = View.GONE var viewAlpha = 1f - private val systemIcons = LinearLayout(context) + private val systemIconsHoverContainer = LinearLayout(context) private lateinit var shadeHeaderController: ShadeHeaderController private lateinit var carrierIconSlots: List<String> private val configurationController = FakeConfigurationController() @@ -150,7 +150,8 @@ class ShadeHeaderControllerTest : SysuiTestCase() { .thenReturn(batteryMeterView) whenever<StatusIconContainer>(view.requireViewById(R.id.statusIcons)).thenReturn(statusIcons) - whenever<View>(view.requireViewById(R.id.shade_header_system_icons)).thenReturn(systemIcons) + whenever<View>(view.requireViewById(R.id.hover_system_icons_container)) + .thenReturn(systemIconsHoverContainer) viewContext = Mockito.spy(context) whenever(view.context).thenReturn(viewContext) @@ -457,12 +458,12 @@ class ShadeHeaderControllerTest : SysuiTestCase() { } @Test - fun testLargeScreenActive_collapseActionRun_onSystemIconsClick() { + fun testLargeScreenActive_collapseActionRun_onSystemIconsHoverContainerClick() { shadeHeaderController.largeScreenActive = true var wasRun = false shadeHeaderController.shadeCollapseAction = Runnable { wasRun = true } - systemIcons.performClick() + systemIconsHoverContainer.performClick() assertThat(wasRun).isTrue() } |