Loading packages/SystemUI/res/layout/combined_qs_header.xml +24 −21 Original line number Diff line number Diff line Loading @@ -118,20 +118,22 @@ 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"> <LinearLayout android:id="@+id/hover_system_icons_container" android:layout_width="wrap_content" 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" Loading @@ -146,6 +148,7 @@ frame when animating QS <-> QQS transition android:layout_height="wrap_content" app:textAppearance="@style/TextAppearance.QS.Status" /> </LinearLayout> </FrameLayout> <FrameLayout android:id="@+id/privacy_container" Loading packages/SystemUI/res/values-sw600dp/dimens.xml +4 −4 Original line number Diff line number Diff line Loading @@ -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> Loading packages/SystemUI/res/values/dimens.xml +4 −4 Original line number Diff line number Diff line Loading @@ -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 Loading packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt +16 −11 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 ) ) } Loading Loading @@ -330,8 +335,8 @@ constructor( demoModeController.addCallback(demoModeReceiver) statusBarIconController.addIconGroup(iconManager) nextAlarmController.addCallback(nextAlarmCallback) systemIcons.setOnHoverListener( statusOverlayHoverListenerFactory.createListener(systemIcons) systemIconsHoverContainer.setOnHoverListener( statusOverlayHoverListenerFactory.createListener(systemIconsHoverContainer) ) } Loading @@ -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) { Loading Loading @@ -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() Loading packages/SystemUI/tests/src/com/android/systemui/shade/ShadeHeaderControllerTest.kt +5 −4 Original line number Diff line number Diff line Loading @@ -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() Loading @@ -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) Loading Loading @@ -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() } Loading Loading
packages/SystemUI/res/layout/combined_qs_header.xml +24 −21 Original line number Diff line number Diff line Loading @@ -118,20 +118,22 @@ 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"> <LinearLayout android:id="@+id/hover_system_icons_container" android:layout_width="wrap_content" 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" Loading @@ -146,6 +148,7 @@ frame when animating QS <-> QQS transition android:layout_height="wrap_content" app:textAppearance="@style/TextAppearance.QS.Status" /> </LinearLayout> </FrameLayout> <FrameLayout android:id="@+id/privacy_container" Loading
packages/SystemUI/res/values-sw600dp/dimens.xml +4 −4 Original line number Diff line number Diff line Loading @@ -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> Loading
packages/SystemUI/res/values/dimens.xml +4 −4 Original line number Diff line number Diff line Loading @@ -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 Loading
packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt +16 −11 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 ) ) } Loading Loading @@ -330,8 +335,8 @@ constructor( demoModeController.addCallback(demoModeReceiver) statusBarIconController.addIconGroup(iconManager) nextAlarmController.addCallback(nextAlarmCallback) systemIcons.setOnHoverListener( statusOverlayHoverListenerFactory.createListener(systemIcons) systemIconsHoverContainer.setOnHoverListener( statusOverlayHoverListenerFactory.createListener(systemIconsHoverContainer) ) } Loading @@ -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) { Loading Loading @@ -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() Loading
packages/SystemUI/tests/src/com/android/systemui/shade/ShadeHeaderControllerTest.kt +5 −4 Original line number Diff line number Diff line Loading @@ -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() Loading @@ -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) Loading Loading @@ -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() } Loading