Loading packages/SystemUI/multivalentTests/src/com/android/systemui/navigationbar/views/NavigationBarTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -116,6 +116,7 @@ import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.NotificationRemoteInputManager; import com.android.systemui.statusbar.NotificationShadeDepthController; import com.android.systemui.statusbar.NotificationShadeWindowController; import com.android.systemui.statusbar.data.repository.LightBarControllerStore; import com.android.systemui.statusbar.phone.AutoHideController; import com.android.systemui.statusbar.phone.CentralSurfaces; import com.android.systemui.statusbar.phone.LightBarController; Loading Loading @@ -208,7 +209,7 @@ public class NavigationBarTest extends SysuiTestCase { @Mock private LightBarController mLightBarController; @Mock private LightBarController.Factory mLightBarcontrollerFactory; private LightBarControllerStore mLightBarControllerStore; @Mock private AutoHideController mAutoHideController; @Mock Loading Loading @@ -257,7 +258,7 @@ public class NavigationBarTest extends SysuiTestCase { public void setup() throws Exception { MockitoAnnotations.initMocks(this); when(mLightBarcontrollerFactory.create(any(Context.class))).thenReturn(mLightBarController); when(mLightBarControllerStore.forDisplay(anyInt())).thenReturn(mLightBarController); when(mAutoHideControllerFactory.create(any(Context.class))).thenReturn(mAutoHideController); when(mNavigationBarView.getHomeButton()).thenReturn(mHomeButton); when(mNavigationBarView.getRecentsButton()).thenReturn(mRecentsButton); Loading Loading @@ -649,8 +650,7 @@ public class NavigationBarTest extends SysuiTestCase { mFakeExecutor, mUiEventLogger, mNavBarHelper, mLightBarController, mLightBarcontrollerFactory, mLightBarControllerStore, mAutoHideController, mAutoHideControllerFactory, Optional.of(mTelecomManager), Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/data/repository/LightBarControllerStoreImplTest.kt 0 → 100644 +76 −0 Original line number Diff line number Diff line /* * Copyright (C) 2024 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. */ package com.android.systemui.statusbar.data.repository import android.view.Display.DEFAULT_DISPLAY import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.display.data.repository.displayRepository import com.android.systemui.kosmos.testScope import com.android.systemui.kosmos.useUnconfinedTestDispatcher import com.android.systemui.testKosmos import kotlinx.coroutines.runBlocking import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.kotlin.never import org.mockito.kotlin.verify @SmallTest @RunWith(AndroidJUnit4::class) class LightBarControllerStoreImplTest : SysuiTestCase() { private val kosmos = testKosmos().useUnconfinedTestDispatcher() private val testScope = kosmos.testScope private val fakeDisplayRepository = kosmos.displayRepository private val underTest = kosmos.lightBarControllerStoreImpl @Before fun start() { underTest.start() } @Before fun addDisplays() = runBlocking { fakeDisplayRepository.addDisplay(DEFAULT_DISPLAY) } @Test fun forDisplay_startsInstance() = testScope.runTest { val instance = underTest.forDisplay(DEFAULT_DISPLAY) verify(instance).start() } @Test fun beforeDisplayRemoved_doesNotStopInstances() = testScope.runTest { val instance = underTest.forDisplay(DEFAULT_DISPLAY) verify(instance, never()).stop() } @Test fun displayRemoved_stopsInstance() = testScope.runTest { val instance = underTest.forDisplay(DEFAULT_DISPLAY) fakeDisplayRepository.removeDisplay(DEFAULT_DISPLAY) verify(instance).stop() } } packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/LightBarControllerTest.java +18 −20 Original line number Diff line number Diff line Loading @@ -48,12 +48,10 @@ import com.android.keyguard.TestScopeProvider; import com.android.systemui.SysuiTestCase; import com.android.systemui.dump.DumpManager; import com.android.systemui.navigationbar.NavigationModeController; import com.android.systemui.settings.FakeDisplayTracker; import com.android.systemui.statusbar.data.model.StatusBarAppearance; import com.android.systemui.statusbar.data.model.StatusBarMode; import com.android.systemui.statusbar.data.repository.FakeStatusBarModeRepository; import com.android.systemui.statusbar.data.repository.FakeStatusBarModePerDisplayRepository; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.util.kotlin.JavaAdapter; import kotlinx.coroutines.test.TestScope; Loading Loading @@ -81,8 +79,8 @@ public class LightBarControllerTest extends SysuiTestCase { private SysuiDarkIconDispatcher mStatusBarIconController; private LightBarController mLightBarController; private final TestScope mTestScope = TestScopeProvider.getTestScope(); private final FakeStatusBarModeRepository mStatusBarModeRepository = new FakeStatusBarModeRepository(); private final FakeStatusBarModePerDisplayRepository mStatusBarModeRepository = new FakeStatusBarModePerDisplayRepository(); @Before public void setup() { Loading @@ -92,15 +90,15 @@ public class LightBarControllerTest extends SysuiTestCase { mLightBarTransitionsController = mock(LightBarTransitionsController.class); when(mStatusBarIconController.getTransitionsController()).thenReturn( mLightBarTransitionsController); mLightBarController = new LightBarController( mContext, new JavaAdapter(mTestScope), mLightBarController = new LightBarControllerImpl( mContext.getDisplayId(), mTestScope, mStatusBarIconController, mock(BatteryController.class), mock(NavigationModeController.class), mStatusBarModeRepository, mock(DumpManager.class), new FakeDisplayTracker(mContext)); mTestScope.getCoroutineContext()); mLightBarController.start(); } Loading @@ -121,7 +119,7 @@ public class LightBarControllerTest extends SysuiTestCase { new AppearanceRegion(APPEARANCE_LIGHT_STATUS_BARS, secondBounds) ); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, STATUS_BAR_BOUNDS, Loading @@ -142,7 +140,7 @@ public class LightBarControllerTest extends SysuiTestCase { new AppearanceRegion(0 /* appearance */, secondBounds) ); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, STATUS_BAR_BOUNDS, Loading @@ -165,7 +163,7 @@ public class LightBarControllerTest extends SysuiTestCase { new AppearanceRegion(APPEARANCE_LIGHT_STATUS_BARS, secondBounds) ); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, STATUS_BAR_BOUNDS, Loading @@ -190,7 +188,7 @@ public class LightBarControllerTest extends SysuiTestCase { new AppearanceRegion(APPEARANCE_LIGHT_STATUS_BARS, thirdBounds) ); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, STATUS_BAR_BOUNDS, Loading @@ -214,7 +212,7 @@ public class LightBarControllerTest extends SysuiTestCase { new AppearanceRegion(0 /* appearance */, secondBounds) ); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, STATUS_BAR_BOUNDS, Loading @@ -231,7 +229,7 @@ public class LightBarControllerTest extends SysuiTestCase { new AppearanceRegion(APPEARANCE_LIGHT_STATUS_BARS, new Rect(0, 0, 1, 1)) ); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, STATUS_BAR_BOUNDS, Loading @@ -249,7 +247,7 @@ public class LightBarControllerTest extends SysuiTestCase { new AppearanceRegion(0, new Rect(0, 0, 1, 1)) ); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, STATUS_BAR_BOUNDS, Loading @@ -266,7 +264,7 @@ public class LightBarControllerTest extends SysuiTestCase { new AppearanceRegion(APPEARANCE_LIGHT_STATUS_BARS, new Rect(0, 0, 1, 1)) ); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, STATUS_BAR_BOUNDS, Loading @@ -276,7 +274,7 @@ public class LightBarControllerTest extends SysuiTestCase { reset(mStatusBarIconController); // WHEN the same appearance regions but different status bar mode is sent mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.LIGHTS_OUT_TRANSPARENT, STATUS_BAR_BOUNDS, Loading @@ -298,7 +296,7 @@ public class LightBarControllerTest extends SysuiTestCase { /* start= */ new Rect(0, 0, 10, 10), /* end= */ new Rect(0, 0, 20, 20)); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, startingBounds, Loading @@ -311,7 +309,7 @@ public class LightBarControllerTest extends SysuiTestCase { BoundsPair newBounds = new BoundsPair( /* start= */ new Rect(0, 0, 30, 30), /* end= */ new Rect(0, 0, 40, 40)); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, newBounds, Loading packages/SystemUI/src/com/android/systemui/navigationbar/views/NavigationBar.java +5 −8 Original line number Diff line number Diff line Loading @@ -149,6 +149,7 @@ import com.android.systemui.statusbar.CommandQueue.Callbacks; import com.android.systemui.statusbar.NotificationRemoteInputManager; import com.android.systemui.statusbar.NotificationShadeDepthController; import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.data.repository.LightBarControllerStore; import com.android.systemui.statusbar.notification.stack.StackStateAnimator; import com.android.systemui.statusbar.phone.AutoHideController; import com.android.systemui.statusbar.phone.CentralSurfaces; Loading Loading @@ -258,8 +259,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements private boolean mTransientShownFromGestureOnSystemBar; private int mNavBarMode = NAV_BAR_MODE_3BUTTON; private LightBarController mLightBarController; private final LightBarController mMainLightBarController; private final LightBarController.Factory mLightBarControllerFactory; private final LightBarControllerStore mLightBarControllerStore; private AutoHideController mAutoHideController; private final AutoHideController mMainAutoHideController; private final AutoHideController.Factory mAutoHideControllerFactory; Loading Loading @@ -580,8 +580,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements @Background Executor bgExecutor, UiEventLogger uiEventLogger, NavBarHelper navBarHelper, LightBarController mainLightBarController, LightBarController.Factory lightBarControllerFactory, LightBarControllerStore lightBarControllerStore, AutoHideController mainAutoHideController, AutoHideController.Factory autoHideControllerFactory, Optional<TelecomManager> telecomManagerOptional, Loading Loading @@ -628,8 +627,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements mUiEventLogger = uiEventLogger; mNavBarHelper = navBarHelper; mNotificationShadeDepthController = notificationShadeDepthController; mMainLightBarController = mainLightBarController; mLightBarControllerFactory = lightBarControllerFactory; mLightBarControllerStore = lightBarControllerStore; mMainAutoHideController = mainAutoHideController; mAutoHideControllerFactory = autoHideControllerFactory; mTelecomManagerOptional = telecomManagerOptional; Loading Loading @@ -842,8 +840,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements // Unfortunately, we still need it because status bar needs LightBarController // before notifications creation. We cannot directly use getLightBarController() // from NavigationBarFragment directly. LightBarController lightBarController = mIsOnDefaultDisplay ? mMainLightBarController : mLightBarControllerFactory.create(mContext); LightBarController lightBarController = mLightBarControllerStore.forDisplay(mDisplayId); setLightBarController(lightBarController); // TODO(b/118592525): to support multi-display, we start to add something which is Loading packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarModule.kt +12 −5 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogBufferFactory import com.android.systemui.statusbar.core.StatusBarConnectedDisplays import com.android.systemui.statusbar.data.StatusBarDataLayerModule import com.android.systemui.statusbar.data.repository.LightBarControllerStore import com.android.systemui.statusbar.phone.LightBarController import com.android.systemui.statusbar.phone.StatusBarContentInsetsProvider import com.android.systemui.statusbar.phone.StatusBarContentInsetsProviderImpl Loading Loading @@ -55,31 +56,37 @@ import dagger.multibindings.IntoMap * [com.android.systemui.statusbar.policy.dagger.StatusBarPolicyModule], etc.). */ @Module(includes = [StatusBarDataLayerModule::class, SystemBarUtilsProxyImpl.Module::class]) abstract class StatusBarModule { interface StatusBarModule { @Binds @IntoMap @ClassKey(OngoingCallController::class) abstract fun bindOngoingCallController(impl: OngoingCallController): CoreStartable fun bindOngoingCallController(impl: OngoingCallController): CoreStartable @Binds @IntoMap @ClassKey(LightBarController::class) abstract fun bindLightBarController(impl: LightBarController): CoreStartable fun lightBarControllerAsCoreStartable(controller: LightBarController): CoreStartable @Binds @IntoMap @ClassKey(StatusBarSignalPolicy::class) abstract fun bindStatusBarSignalPolicy(impl: StatusBarSignalPolicy): CoreStartable fun bindStatusBarSignalPolicy(impl: StatusBarSignalPolicy): CoreStartable @Binds @SysUISingleton abstract fun statusBarWindowControllerFactory( fun statusBarWindowControllerFactory( implFactory: StatusBarWindowControllerImpl.Factory ): StatusBarWindowController.Factory companion object { @Provides @SysUISingleton fun lightBarController(store: LightBarControllerStore): LightBarController { return store.defaultDisplay } @Provides @SysUISingleton fun windowControllerStore( Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/navigationbar/views/NavigationBarTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -116,6 +116,7 @@ import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.NotificationRemoteInputManager; import com.android.systemui.statusbar.NotificationShadeDepthController; import com.android.systemui.statusbar.NotificationShadeWindowController; import com.android.systemui.statusbar.data.repository.LightBarControllerStore; import com.android.systemui.statusbar.phone.AutoHideController; import com.android.systemui.statusbar.phone.CentralSurfaces; import com.android.systemui.statusbar.phone.LightBarController; Loading Loading @@ -208,7 +209,7 @@ public class NavigationBarTest extends SysuiTestCase { @Mock private LightBarController mLightBarController; @Mock private LightBarController.Factory mLightBarcontrollerFactory; private LightBarControllerStore mLightBarControllerStore; @Mock private AutoHideController mAutoHideController; @Mock Loading Loading @@ -257,7 +258,7 @@ public class NavigationBarTest extends SysuiTestCase { public void setup() throws Exception { MockitoAnnotations.initMocks(this); when(mLightBarcontrollerFactory.create(any(Context.class))).thenReturn(mLightBarController); when(mLightBarControllerStore.forDisplay(anyInt())).thenReturn(mLightBarController); when(mAutoHideControllerFactory.create(any(Context.class))).thenReturn(mAutoHideController); when(mNavigationBarView.getHomeButton()).thenReturn(mHomeButton); when(mNavigationBarView.getRecentsButton()).thenReturn(mRecentsButton); Loading Loading @@ -649,8 +650,7 @@ public class NavigationBarTest extends SysuiTestCase { mFakeExecutor, mUiEventLogger, mNavBarHelper, mLightBarController, mLightBarcontrollerFactory, mLightBarControllerStore, mAutoHideController, mAutoHideControllerFactory, Optional.of(mTelecomManager), Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/data/repository/LightBarControllerStoreImplTest.kt 0 → 100644 +76 −0 Original line number Diff line number Diff line /* * Copyright (C) 2024 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. */ package com.android.systemui.statusbar.data.repository import android.view.Display.DEFAULT_DISPLAY import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.display.data.repository.displayRepository import com.android.systemui.kosmos.testScope import com.android.systemui.kosmos.useUnconfinedTestDispatcher import com.android.systemui.testKosmos import kotlinx.coroutines.runBlocking import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.kotlin.never import org.mockito.kotlin.verify @SmallTest @RunWith(AndroidJUnit4::class) class LightBarControllerStoreImplTest : SysuiTestCase() { private val kosmos = testKosmos().useUnconfinedTestDispatcher() private val testScope = kosmos.testScope private val fakeDisplayRepository = kosmos.displayRepository private val underTest = kosmos.lightBarControllerStoreImpl @Before fun start() { underTest.start() } @Before fun addDisplays() = runBlocking { fakeDisplayRepository.addDisplay(DEFAULT_DISPLAY) } @Test fun forDisplay_startsInstance() = testScope.runTest { val instance = underTest.forDisplay(DEFAULT_DISPLAY) verify(instance).start() } @Test fun beforeDisplayRemoved_doesNotStopInstances() = testScope.runTest { val instance = underTest.forDisplay(DEFAULT_DISPLAY) verify(instance, never()).stop() } @Test fun displayRemoved_stopsInstance() = testScope.runTest { val instance = underTest.forDisplay(DEFAULT_DISPLAY) fakeDisplayRepository.removeDisplay(DEFAULT_DISPLAY) verify(instance).stop() } }
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/LightBarControllerTest.java +18 −20 Original line number Diff line number Diff line Loading @@ -48,12 +48,10 @@ import com.android.keyguard.TestScopeProvider; import com.android.systemui.SysuiTestCase; import com.android.systemui.dump.DumpManager; import com.android.systemui.navigationbar.NavigationModeController; import com.android.systemui.settings.FakeDisplayTracker; import com.android.systemui.statusbar.data.model.StatusBarAppearance; import com.android.systemui.statusbar.data.model.StatusBarMode; import com.android.systemui.statusbar.data.repository.FakeStatusBarModeRepository; import com.android.systemui.statusbar.data.repository.FakeStatusBarModePerDisplayRepository; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.util.kotlin.JavaAdapter; import kotlinx.coroutines.test.TestScope; Loading Loading @@ -81,8 +79,8 @@ public class LightBarControllerTest extends SysuiTestCase { private SysuiDarkIconDispatcher mStatusBarIconController; private LightBarController mLightBarController; private final TestScope mTestScope = TestScopeProvider.getTestScope(); private final FakeStatusBarModeRepository mStatusBarModeRepository = new FakeStatusBarModeRepository(); private final FakeStatusBarModePerDisplayRepository mStatusBarModeRepository = new FakeStatusBarModePerDisplayRepository(); @Before public void setup() { Loading @@ -92,15 +90,15 @@ public class LightBarControllerTest extends SysuiTestCase { mLightBarTransitionsController = mock(LightBarTransitionsController.class); when(mStatusBarIconController.getTransitionsController()).thenReturn( mLightBarTransitionsController); mLightBarController = new LightBarController( mContext, new JavaAdapter(mTestScope), mLightBarController = new LightBarControllerImpl( mContext.getDisplayId(), mTestScope, mStatusBarIconController, mock(BatteryController.class), mock(NavigationModeController.class), mStatusBarModeRepository, mock(DumpManager.class), new FakeDisplayTracker(mContext)); mTestScope.getCoroutineContext()); mLightBarController.start(); } Loading @@ -121,7 +119,7 @@ public class LightBarControllerTest extends SysuiTestCase { new AppearanceRegion(APPEARANCE_LIGHT_STATUS_BARS, secondBounds) ); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, STATUS_BAR_BOUNDS, Loading @@ -142,7 +140,7 @@ public class LightBarControllerTest extends SysuiTestCase { new AppearanceRegion(0 /* appearance */, secondBounds) ); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, STATUS_BAR_BOUNDS, Loading @@ -165,7 +163,7 @@ public class LightBarControllerTest extends SysuiTestCase { new AppearanceRegion(APPEARANCE_LIGHT_STATUS_BARS, secondBounds) ); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, STATUS_BAR_BOUNDS, Loading @@ -190,7 +188,7 @@ public class LightBarControllerTest extends SysuiTestCase { new AppearanceRegion(APPEARANCE_LIGHT_STATUS_BARS, thirdBounds) ); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, STATUS_BAR_BOUNDS, Loading @@ -214,7 +212,7 @@ public class LightBarControllerTest extends SysuiTestCase { new AppearanceRegion(0 /* appearance */, secondBounds) ); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, STATUS_BAR_BOUNDS, Loading @@ -231,7 +229,7 @@ public class LightBarControllerTest extends SysuiTestCase { new AppearanceRegion(APPEARANCE_LIGHT_STATUS_BARS, new Rect(0, 0, 1, 1)) ); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, STATUS_BAR_BOUNDS, Loading @@ -249,7 +247,7 @@ public class LightBarControllerTest extends SysuiTestCase { new AppearanceRegion(0, new Rect(0, 0, 1, 1)) ); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, STATUS_BAR_BOUNDS, Loading @@ -266,7 +264,7 @@ public class LightBarControllerTest extends SysuiTestCase { new AppearanceRegion(APPEARANCE_LIGHT_STATUS_BARS, new Rect(0, 0, 1, 1)) ); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, STATUS_BAR_BOUNDS, Loading @@ -276,7 +274,7 @@ public class LightBarControllerTest extends SysuiTestCase { reset(mStatusBarIconController); // WHEN the same appearance regions but different status bar mode is sent mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.LIGHTS_OUT_TRANSPARENT, STATUS_BAR_BOUNDS, Loading @@ -298,7 +296,7 @@ public class LightBarControllerTest extends SysuiTestCase { /* start= */ new Rect(0, 0, 10, 10), /* end= */ new Rect(0, 0, 20, 20)); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, startingBounds, Loading @@ -311,7 +309,7 @@ public class LightBarControllerTest extends SysuiTestCase { BoundsPair newBounds = new BoundsPair( /* start= */ new Rect(0, 0, 30, 30), /* end= */ new Rect(0, 0, 40, 40)); mStatusBarModeRepository.getDefaultDisplay().getStatusBarAppearance().setValue( mStatusBarModeRepository.getStatusBarAppearance().setValue( new StatusBarAppearance( StatusBarMode.TRANSPARENT, newBounds, Loading
packages/SystemUI/src/com/android/systemui/navigationbar/views/NavigationBar.java +5 −8 Original line number Diff line number Diff line Loading @@ -149,6 +149,7 @@ import com.android.systemui.statusbar.CommandQueue.Callbacks; import com.android.systemui.statusbar.NotificationRemoteInputManager; import com.android.systemui.statusbar.NotificationShadeDepthController; import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.data.repository.LightBarControllerStore; import com.android.systemui.statusbar.notification.stack.StackStateAnimator; import com.android.systemui.statusbar.phone.AutoHideController; import com.android.systemui.statusbar.phone.CentralSurfaces; Loading Loading @@ -258,8 +259,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements private boolean mTransientShownFromGestureOnSystemBar; private int mNavBarMode = NAV_BAR_MODE_3BUTTON; private LightBarController mLightBarController; private final LightBarController mMainLightBarController; private final LightBarController.Factory mLightBarControllerFactory; private final LightBarControllerStore mLightBarControllerStore; private AutoHideController mAutoHideController; private final AutoHideController mMainAutoHideController; private final AutoHideController.Factory mAutoHideControllerFactory; Loading Loading @@ -580,8 +580,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements @Background Executor bgExecutor, UiEventLogger uiEventLogger, NavBarHelper navBarHelper, LightBarController mainLightBarController, LightBarController.Factory lightBarControllerFactory, LightBarControllerStore lightBarControllerStore, AutoHideController mainAutoHideController, AutoHideController.Factory autoHideControllerFactory, Optional<TelecomManager> telecomManagerOptional, Loading Loading @@ -628,8 +627,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements mUiEventLogger = uiEventLogger; mNavBarHelper = navBarHelper; mNotificationShadeDepthController = notificationShadeDepthController; mMainLightBarController = mainLightBarController; mLightBarControllerFactory = lightBarControllerFactory; mLightBarControllerStore = lightBarControllerStore; mMainAutoHideController = mainAutoHideController; mAutoHideControllerFactory = autoHideControllerFactory; mTelecomManagerOptional = telecomManagerOptional; Loading Loading @@ -842,8 +840,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements // Unfortunately, we still need it because status bar needs LightBarController // before notifications creation. We cannot directly use getLightBarController() // from NavigationBarFragment directly. LightBarController lightBarController = mIsOnDefaultDisplay ? mMainLightBarController : mLightBarControllerFactory.create(mContext); LightBarController lightBarController = mLightBarControllerStore.forDisplay(mDisplayId); setLightBarController(lightBarController); // TODO(b/118592525): to support multi-display, we start to add something which is Loading
packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarModule.kt +12 −5 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogBufferFactory import com.android.systemui.statusbar.core.StatusBarConnectedDisplays import com.android.systemui.statusbar.data.StatusBarDataLayerModule import com.android.systemui.statusbar.data.repository.LightBarControllerStore import com.android.systemui.statusbar.phone.LightBarController import com.android.systemui.statusbar.phone.StatusBarContentInsetsProvider import com.android.systemui.statusbar.phone.StatusBarContentInsetsProviderImpl Loading Loading @@ -55,31 +56,37 @@ import dagger.multibindings.IntoMap * [com.android.systemui.statusbar.policy.dagger.StatusBarPolicyModule], etc.). */ @Module(includes = [StatusBarDataLayerModule::class, SystemBarUtilsProxyImpl.Module::class]) abstract class StatusBarModule { interface StatusBarModule { @Binds @IntoMap @ClassKey(OngoingCallController::class) abstract fun bindOngoingCallController(impl: OngoingCallController): CoreStartable fun bindOngoingCallController(impl: OngoingCallController): CoreStartable @Binds @IntoMap @ClassKey(LightBarController::class) abstract fun bindLightBarController(impl: LightBarController): CoreStartable fun lightBarControllerAsCoreStartable(controller: LightBarController): CoreStartable @Binds @IntoMap @ClassKey(StatusBarSignalPolicy::class) abstract fun bindStatusBarSignalPolicy(impl: StatusBarSignalPolicy): CoreStartable fun bindStatusBarSignalPolicy(impl: StatusBarSignalPolicy): CoreStartable @Binds @SysUISingleton abstract fun statusBarWindowControllerFactory( fun statusBarWindowControllerFactory( implFactory: StatusBarWindowControllerImpl.Factory ): StatusBarWindowController.Factory companion object { @Provides @SysUISingleton fun lightBarController(store: LightBarControllerStore): LightBarController { return store.defaultDisplay } @Provides @SysUISingleton fun windowControllerStore( Loading