Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a25315b6 authored by Nicolo' Mazzucato's avatar Nicolo' Mazzucato Committed by Nicolò Mazzucato
Browse files

Use per-display configuration controller for clock dimensions

This makes the clock update its dimensions correctly when the density of
a display changes.
Before this change, it was only working for the default display, as the
configuration controller for the extrnal one was wrong.

Bug: 404242315
Test: PhoneStatusBarViewControllerTest
Flag: com.android.systemui.shared.status_bar_connected_displays
Change-Id: Ibde73a413e24e8410e83612e17d44d0065398e21
parent 0c4aeff0
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import com.android.systemui.shade.domain.interactor.PanelExpansionInteractor
import com.android.systemui.shade.shared.flag.ShadeWindowGoesAround
import com.android.systemui.shared.animation.UnfoldMoveFromCenterAnimator
import com.android.systemui.statusbar.core.StatusBarConnectedDisplays
import com.android.systemui.statusbar.data.repository.StatusBarConfigurationControllerStore
import com.android.systemui.statusbar.data.repository.StatusBarContentInsetsProviderStore
import com.android.systemui.statusbar.policy.Clock
import com.android.systemui.statusbar.policy.ConfigurationController
@@ -371,7 +372,8 @@ private constructor(
        private val windowRootView: Provider<WindowRootView>,
        private val shadeLogger: ShadeLogger,
        private val viewUtil: ViewUtil,
        private val configurationController: ConfigurationController,
        private val statusBarConfigurationControllerStore: StatusBarConfigurationControllerStore,
        private val defaultDisplayConfigurationController: ConfigurationController,
        private val statusOverlayHoverListenerFactory: StatusOverlayHoverListenerFactory,
        @DisplaySpecific private val darkIconDispatcher: DarkIconDispatcher,
        private val statusBarContentInsetsProviderStore: StatusBarContentInsetsProviderStore,
@@ -385,6 +387,17 @@ private constructor(
                    null
                }

            val configurationController =
                if (StatusBarConnectedDisplays.isEnabled) {
                    statusBarConfigurationControllerStore.forDisplay(view.context.displayId)
                        ?: error(
                            "Couldn't get configuration controller for display " +
                                "${view.context.displayId}"
                        )
                } else {
                    defaultDisplayConfigurationController
                }

            return PhoneStatusBarViewController(
                view,
                progressProvider.getOrNull(),
+6 −1
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ import com.android.systemui.shade.domain.interactor.PanelExpansionInteractor
import com.android.systemui.shade.shared.flag.ShadeWindowGoesAround
import com.android.systemui.statusbar.CommandQueue
import com.android.systemui.statusbar.core.StatusBarConnectedDisplays
import com.android.systemui.statusbar.data.repository.FakeStatusBarConfigurationControllerStore
import com.android.systemui.statusbar.data.repository.fakeStatusBarContentInsetsProviderStore
import com.android.systemui.statusbar.policy.Clock
import com.android.systemui.statusbar.policy.ConfigurationController
@@ -100,7 +101,6 @@ class PhoneStatusBarViewControllerTest : SysuiTestCase() {
    @Mock private lateinit var moveFromCenterAnimation: StatusBarMoveFromCenterAnimationController
    @Mock private lateinit var sysuiUnfoldComponent: SysUIUnfoldComponent
    @Mock private lateinit var progressProvider: ScopedUnfoldTransitionProgressProvider
    @Mock private lateinit var configurationController: ConfigurationController
    @Mock private lateinit var mStatusOverlayHoverListenerFactory: StatusOverlayHoverListenerFactory
    @Mock private lateinit var userChipViewModel: StatusBarUserChipViewModel
    @Mock private lateinit var centralSurfacesImpl: CentralSurfacesImpl
@@ -112,6 +112,8 @@ class PhoneStatusBarViewControllerTest : SysuiTestCase() {
    @Mock private lateinit var mStatusBarLongPressGestureDetector: StatusBarLongPressGestureDetector
    @Mock private lateinit var statusBarTouchShadeDisplayPolicy: StatusBarTouchShadeDisplayPolicy
    private lateinit var statusBarWindowStateController: StatusBarWindowStateController
    private val fakeConfigurationControllerStore = FakeStatusBarConfigurationControllerStore()
    private lateinit var configurationController: ConfigurationController

    private lateinit var view: PhoneStatusBarView
    private lateinit var controller: PhoneStatusBarViewController
@@ -131,6 +133,8 @@ class PhoneStatusBarViewControllerTest : SysuiTestCase() {
        MockitoAnnotations.initMocks(this)

        statusBarWindowStateController = StatusBarWindowStateController(DISPLAY_ID, commandQueue)
        configurationController =
            fakeConfigurationControllerStore.forDisplay(Display.DEFAULT_DISPLAY)

        `when`(statusBarContentInsetsProvider.getStatusBarContentInsetsForCurrentRotation())
            .thenReturn(Insets.NONE)
@@ -590,6 +594,7 @@ class PhoneStatusBarViewControllerTest : SysuiTestCase() {
                windowRootView,
                shadeLogger,
                viewUtil,
                fakeConfigurationControllerStore,
                configurationController,
                mStatusOverlayHoverListenerFactory,
                fakeDarkIconDispatcher,