Loading core/java/com/android/internal/statusbar/IStatusBarService.aidl +7 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,13 @@ interface IStatusBarService // ---- Methods below are for use by the status bar policy services ---- // You need the STATUS_BAR_SERVICE permission RegisterStatusBarResult registerStatusBar(IStatusBar callbacks); /** * Registers the status bar for all displays. * * Returns a map of all display IDs (as strings) to their corresponding RegisterStatusBarResult * objects. */ Map<String, RegisterStatusBarResult> registerStatusBarForAllDisplays(IStatusBar callbacks); void onPanelRevealed(boolean clearNotificationEffects, int numItems); void onPanelHidden(); // Mark current notifications as "seen" and stop ringing, vibrating, blinking. Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/core/CommandQueueInitializerTest.kt +55 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.statusbar.core import android.internal.statusbar.FakeStatusBarService.Companion.SECONDARY_DISPLAY_ID import android.internal.statusbar.fakeStatusBarService import android.platform.test.annotations.EnableFlags import android.view.WindowInsets Loading Loading @@ -53,7 +54,7 @@ class CommandQueueInitializerTest : SysuiTestCase() { } @Test fun start_barResultHasTransientStatusBar_transientStateIsTrue() { fun start_defaultDisplay_barResultHasTransientStatusBar_transientStateIsTrue() { fakeStatusBarService.transientBarTypes = WindowInsets.Type.statusBars() initializer.start() Loading @@ -62,7 +63,7 @@ class CommandQueueInitializerTest : SysuiTestCase() { } @Test fun start_barResultDoesNotHaveTransientStatusBar_transientStateIsFalse() { fun start_defaultDisplay_barResultDoesNotHaveTransientStatusBar_transientStateIsFalse() { fakeStatusBarService.transientBarTypes = WindowInsets.Type.navigationBars() initializer.start() Loading @@ -70,6 +71,32 @@ class CommandQueueInitializerTest : SysuiTestCase() { assertThat(statusBarModeRepository.defaultDisplay.isTransientShown.value).isFalse() } @Test fun start_secondaryDisplay_barResultHasTransientStatusBar_transientStateIsTrue() { fakeStatusBarService.transientBarTypesSecondaryDisplay = WindowInsets.Type.statusBars() fakeStatusBarService.transientBarTypes = WindowInsets.Type.navigationBars() initializer.start() assertThat(statusBarModeRepository.forDisplay(SECONDARY_DISPLAY_ID).isTransientShown.value) .isTrue() // Default display should be unaffected assertThat(statusBarModeRepository.defaultDisplay.isTransientShown.value).isFalse() } @Test fun start_secondaryDisplay_barResultDoesNotHaveTransientStatusBar_transientStateIsFalse() { fakeStatusBarService.transientBarTypesSecondaryDisplay = WindowInsets.Type.navigationBars() fakeStatusBarService.transientBarTypes = WindowInsets.Type.statusBars() initializer.start() assertThat(statusBarModeRepository.forDisplay(SECONDARY_DISPLAY_ID).isTransientShown.value) .isFalse() // Default display should be unaffected assertThat(statusBarModeRepository.defaultDisplay.isTransientShown.value).isTrue() } @Test fun start_callsOnSystemBarAttributesChanged_basedOnRegisterBarResult() { initializer.start() Loading @@ -85,6 +112,17 @@ class CommandQueueInitializerTest : SysuiTestCase() { fakeStatusBarService.packageName, fakeStatusBarService.letterboxDetails, ) verify(commandQueueCallbacks) .onSystemBarAttributesChanged( SECONDARY_DISPLAY_ID, fakeStatusBarService.appearanceSecondaryDisplay, fakeStatusBarService.appearanceRegionsSecondaryDisplay, fakeStatusBarService.navbarColorManagedByImeSecondaryDisplay, fakeStatusBarService.behaviorSecondaryDisplay, fakeStatusBarService.requestedVisibleTypesSecondaryDisplay, fakeStatusBarService.packageNameSecondaryDisplay, fakeStatusBarService.letterboxDetailsSecondaryDisplay, ) } @Test Loading @@ -105,6 +143,14 @@ class CommandQueueInitializerTest : SysuiTestCase() { fakeStatusBarService.imeBackDisposition, fakeStatusBarService.showImeSwitcher, ) verify(commandQueueCallbacks) .setImeWindowStatus( SECONDARY_DISPLAY_ID, fakeStatusBarService.imeWindowVisSecondaryDisplay, fakeStatusBarService.imeBackDispositionSecondaryDisplay, fakeStatusBarService.showImeSwitcherSecondaryDisplay, ) } @Test Loading @@ -117,6 +163,11 @@ class CommandQueueInitializerTest : SysuiTestCase() { .isEqualTo(fakeStatusBarService.disabledFlags1) assertThat(commandQueue.disableFlags2ForDisplay(context.displayId)) .isEqualTo(fakeStatusBarService.disabledFlags2) assertThat(commandQueue.disableFlags1ForDisplay(SECONDARY_DISPLAY_ID)) .isEqualTo(fakeStatusBarService.disabledFlags1SecondaryDisplay) assertThat(commandQueue.disableFlags2ForDisplay(SECONDARY_DISPLAY_ID)) .isEqualTo(fakeStatusBarService.disabledFlags2SecondaryDisplay) } @Test Loading @@ -125,5 +176,7 @@ class CommandQueueInitializerTest : SysuiTestCase() { assertThat(commandQueue.disableFlags1ForDisplay(context.displayId)).isNull() assertThat(commandQueue.disableFlags2ForDisplay(context.displayId)).isNull() assertThat(commandQueue.disableFlags1ForDisplay(SECONDARY_DISPLAY_ID)).isNull() assertThat(commandQueue.disableFlags2ForDisplay(SECONDARY_DISPLAY_ID)).isNull() } } packages/SystemUI/src/com/android/systemui/statusbar/core/CommandQueueInitializer.kt +18 −11 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.app.StatusBarManager import android.content.Context import android.os.Binder import android.os.RemoteException import android.view.Display import android.view.WindowInsets import com.android.internal.statusbar.IStatusBarService import com.android.internal.statusbar.RegisterStatusBarResult Loading Loading @@ -47,20 +48,32 @@ constructor( override fun start() { StatusBarConnectedDisplays.assertInNewMode() val result: RegisterStatusBarResult = val resultPerDisplay: Map<String, RegisterStatusBarResult> = try { barService.registerStatusBar(commandQueue) barService.registerStatusBarForAllDisplays(commandQueue) } catch (ex: RemoteException) { ex.rethrowFromSystemServer() return } createNavigationBar(result) resultPerDisplay[Display.DEFAULT_DISPLAY.toString()]?.let { createNavigationBar(it) // Set up the initial icon state val numIcons: Int = it.mIcons.size for (i in 0 until numIcons) { commandQueue.setIcon(it.mIcons.keyAt(i), it.mIcons.valueAt(i)) } } for ((displayId, result) in resultPerDisplay.entries) { initializeStatusBarForDisplay(displayId.toInt(), result) } } private fun initializeStatusBarForDisplay(displayId: Int, result: RegisterStatusBarResult) { if ((result.mTransientBarTypes and WindowInsets.Type.statusBars()) != 0) { statusBarModeRepository.defaultDisplay.showTransient() statusBarModeRepository.forDisplay(displayId).showTransient() } val displayId = context.display.displayId val commandQueueCallbacks = commandQueueCallbacksLazy.get() commandQueueCallbacks.onSystemBarAttributesChanged( displayId, Loading @@ -81,12 +94,6 @@ constructor( result.mShowImeSwitcher, ) // Set up the initial icon state val numIcons: Int = result.mIcons.size for (i in 0 until numIcons) { commandQueue.setIcon(result.mIcons.keyAt(i), result.mIcons.valueAt(i)) } // set the initial view visibility val disabledFlags1 = result.mDisabledFlags1 val disabledFlags2 = result.mDisabledFlags2 Loading packages/SystemUI/tests/utils/src/android/internal/statusbar/FakeStatusBarService.kt +100 −15 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.os.Bundle import android.os.IBinder import android.os.UserHandle import android.util.ArrayMap import android.view.Display import android.view.KeyEvent import com.android.internal.logging.InstanceId import com.android.internal.statusbar.IAddTileResultCallback Loading Loading @@ -95,6 +96,90 @@ class FakeStatusBarService : IStatusBarService.Stub() { ) ) var statusBarIconsSecondaryDisplay = ArrayMap<String, StatusBarIcon>().also { it["slot1"] = mock<StatusBarIcon>() it["slot2"] = mock<StatusBarIcon>() } var disabledFlags1SecondaryDisplay = 12345678 var appearanceSecondaryDisplay = 1234 var appearanceRegionsSecondaryDisplay = arrayOf( AppearanceRegion( /* appearance = */ 123, /* bounds = */ Rect(/* left= */ 4, /* top= */ 3, /* right= */ 2, /* bottom= */ 1), ), AppearanceRegion( /* appearance = */ 345, /* bounds = */ Rect(/* left= */ 1, /* top= */ 2, /* right= */ 3, /* bottom= */ 4), ), ) var imeWindowVisSecondaryDisplay = 9876 var imeBackDispositionSecondaryDisplay = 654 var showImeSwitcherSecondaryDisplay = true var disabledFlags2SecondaryDisplay = 87654321 var navbarColorManagedByImeSecondaryDisplay = true var behaviorSecondaryDisplay = 234 var requestedVisibleTypesSecondaryDisplay = 345 var packageNameSecondaryDisplay = "fake.bar.ser.vice" var transientBarTypesSecondaryDisplay = 0 var letterboxDetailsSecondaryDisplay = arrayOf( LetterboxDetails( /* letterboxInnerBounds = */ Rect( /* left= */ 5, /* top= */ 6, /* right= */ 7, /* bottom= */ 8, ), /* letterboxFullBounds = */ Rect( /* left= */ 1, /* top= */ 2, /* right= */ 3, /* bottom= */ 4, ), /* appAppearance = */ 123, ) ) private val defaultRegisterStatusBarResult get() = RegisterStatusBarResult( statusBarIcons, disabledFlags1, appearance, appearanceRegions, imeWindowVis, imeBackDisposition, showImeSwitcher, disabledFlags2, navbarColorManagedByIme, behavior, requestedVisibleTypes, packageName, transientBarTypes, letterboxDetails, ) private val registerStatusBarResultSecondaryDisplay get() = RegisterStatusBarResult( statusBarIconsSecondaryDisplay, disabledFlags1SecondaryDisplay, appearanceSecondaryDisplay, appearanceRegionsSecondaryDisplay, imeWindowVisSecondaryDisplay, imeBackDispositionSecondaryDisplay, showImeSwitcherSecondaryDisplay, disabledFlags2SecondaryDisplay, navbarColorManagedByImeSecondaryDisplay, behaviorSecondaryDisplay, requestedVisibleTypesSecondaryDisplay, packageNameSecondaryDisplay, transientBarTypesSecondaryDisplay, letterboxDetailsSecondaryDisplay, ) override fun expandNotificationsPanel() {} override fun collapsePanels() {} Loading Loading @@ -140,21 +225,16 @@ class FakeStatusBarService : IStatusBarService.Stub() { override fun registerStatusBar(callbacks: IStatusBar): RegisterStatusBarResult { registeredStatusBar = callbacks return RegisterStatusBarResult( statusBarIcons, disabledFlags1, appearance, appearanceRegions, imeWindowVis, imeBackDisposition, showImeSwitcher, disabledFlags2, navbarColorManagedByIme, behavior, requestedVisibleTypes, packageName, transientBarTypes, letterboxDetails, return defaultRegisterStatusBarResult } override fun registerStatusBarForAllDisplays( callbacks: IStatusBar ): Map<String, RegisterStatusBarResult> { registeredStatusBar = callbacks return mapOf( DEFAULT_DISPLAY_ID.toString() to defaultRegisterStatusBarResult, SECONDARY_DISPLAY_ID.toString() to registerStatusBarResultSecondaryDisplay, ) } Loading Loading @@ -352,4 +432,9 @@ class FakeStatusBarService : IStatusBarService.Stub() { override fun unregisterNearbyMediaDevicesProvider(provider: INearbyMediaDevicesProvider) {} override fun showRearDisplayDialog(currentBaseState: Int) {} companion object { const val DEFAULT_DISPLAY_ID = Display.DEFAULT_DISPLAY const val SECONDARY_DISPLAY_ID = 2 } } packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/data/repository/FakeStatusBarModeRepository.kt +5 −5 Original line number Diff line number Diff line Loading @@ -34,12 +34,12 @@ class FakeStatusBarModeRepository @Inject constructor() : StatusBarModeRepositor const val DISPLAY_ID = Display.DEFAULT_DISPLAY } override val defaultDisplay: FakeStatusBarModePerDisplayRepository = FakeStatusBarModePerDisplayRepository() private val perDisplayRepos = mutableMapOf<Int, FakeStatusBarModePerDisplayRepository>() override fun forDisplay(displayId: Int): FakeStatusBarModePerDisplayRepository { return defaultDisplay } override val defaultDisplay: FakeStatusBarModePerDisplayRepository = forDisplay(DISPLAY_ID) override fun forDisplay(displayId: Int): FakeStatusBarModePerDisplayRepository = perDisplayRepos.computeIfAbsent(displayId) { FakeStatusBarModePerDisplayRepository() } } class FakeStatusBarModePerDisplayRepository : StatusBarModePerDisplayRepository { Loading Loading
core/java/com/android/internal/statusbar/IStatusBarService.aidl +7 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,13 @@ interface IStatusBarService // ---- Methods below are for use by the status bar policy services ---- // You need the STATUS_BAR_SERVICE permission RegisterStatusBarResult registerStatusBar(IStatusBar callbacks); /** * Registers the status bar for all displays. * * Returns a map of all display IDs (as strings) to their corresponding RegisterStatusBarResult * objects. */ Map<String, RegisterStatusBarResult> registerStatusBarForAllDisplays(IStatusBar callbacks); void onPanelRevealed(boolean clearNotificationEffects, int numItems); void onPanelHidden(); // Mark current notifications as "seen" and stop ringing, vibrating, blinking. Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/core/CommandQueueInitializerTest.kt +55 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.statusbar.core import android.internal.statusbar.FakeStatusBarService.Companion.SECONDARY_DISPLAY_ID import android.internal.statusbar.fakeStatusBarService import android.platform.test.annotations.EnableFlags import android.view.WindowInsets Loading Loading @@ -53,7 +54,7 @@ class CommandQueueInitializerTest : SysuiTestCase() { } @Test fun start_barResultHasTransientStatusBar_transientStateIsTrue() { fun start_defaultDisplay_barResultHasTransientStatusBar_transientStateIsTrue() { fakeStatusBarService.transientBarTypes = WindowInsets.Type.statusBars() initializer.start() Loading @@ -62,7 +63,7 @@ class CommandQueueInitializerTest : SysuiTestCase() { } @Test fun start_barResultDoesNotHaveTransientStatusBar_transientStateIsFalse() { fun start_defaultDisplay_barResultDoesNotHaveTransientStatusBar_transientStateIsFalse() { fakeStatusBarService.transientBarTypes = WindowInsets.Type.navigationBars() initializer.start() Loading @@ -70,6 +71,32 @@ class CommandQueueInitializerTest : SysuiTestCase() { assertThat(statusBarModeRepository.defaultDisplay.isTransientShown.value).isFalse() } @Test fun start_secondaryDisplay_barResultHasTransientStatusBar_transientStateIsTrue() { fakeStatusBarService.transientBarTypesSecondaryDisplay = WindowInsets.Type.statusBars() fakeStatusBarService.transientBarTypes = WindowInsets.Type.navigationBars() initializer.start() assertThat(statusBarModeRepository.forDisplay(SECONDARY_DISPLAY_ID).isTransientShown.value) .isTrue() // Default display should be unaffected assertThat(statusBarModeRepository.defaultDisplay.isTransientShown.value).isFalse() } @Test fun start_secondaryDisplay_barResultDoesNotHaveTransientStatusBar_transientStateIsFalse() { fakeStatusBarService.transientBarTypesSecondaryDisplay = WindowInsets.Type.navigationBars() fakeStatusBarService.transientBarTypes = WindowInsets.Type.statusBars() initializer.start() assertThat(statusBarModeRepository.forDisplay(SECONDARY_DISPLAY_ID).isTransientShown.value) .isFalse() // Default display should be unaffected assertThat(statusBarModeRepository.defaultDisplay.isTransientShown.value).isTrue() } @Test fun start_callsOnSystemBarAttributesChanged_basedOnRegisterBarResult() { initializer.start() Loading @@ -85,6 +112,17 @@ class CommandQueueInitializerTest : SysuiTestCase() { fakeStatusBarService.packageName, fakeStatusBarService.letterboxDetails, ) verify(commandQueueCallbacks) .onSystemBarAttributesChanged( SECONDARY_DISPLAY_ID, fakeStatusBarService.appearanceSecondaryDisplay, fakeStatusBarService.appearanceRegionsSecondaryDisplay, fakeStatusBarService.navbarColorManagedByImeSecondaryDisplay, fakeStatusBarService.behaviorSecondaryDisplay, fakeStatusBarService.requestedVisibleTypesSecondaryDisplay, fakeStatusBarService.packageNameSecondaryDisplay, fakeStatusBarService.letterboxDetailsSecondaryDisplay, ) } @Test Loading @@ -105,6 +143,14 @@ class CommandQueueInitializerTest : SysuiTestCase() { fakeStatusBarService.imeBackDisposition, fakeStatusBarService.showImeSwitcher, ) verify(commandQueueCallbacks) .setImeWindowStatus( SECONDARY_DISPLAY_ID, fakeStatusBarService.imeWindowVisSecondaryDisplay, fakeStatusBarService.imeBackDispositionSecondaryDisplay, fakeStatusBarService.showImeSwitcherSecondaryDisplay, ) } @Test Loading @@ -117,6 +163,11 @@ class CommandQueueInitializerTest : SysuiTestCase() { .isEqualTo(fakeStatusBarService.disabledFlags1) assertThat(commandQueue.disableFlags2ForDisplay(context.displayId)) .isEqualTo(fakeStatusBarService.disabledFlags2) assertThat(commandQueue.disableFlags1ForDisplay(SECONDARY_DISPLAY_ID)) .isEqualTo(fakeStatusBarService.disabledFlags1SecondaryDisplay) assertThat(commandQueue.disableFlags2ForDisplay(SECONDARY_DISPLAY_ID)) .isEqualTo(fakeStatusBarService.disabledFlags2SecondaryDisplay) } @Test Loading @@ -125,5 +176,7 @@ class CommandQueueInitializerTest : SysuiTestCase() { assertThat(commandQueue.disableFlags1ForDisplay(context.displayId)).isNull() assertThat(commandQueue.disableFlags2ForDisplay(context.displayId)).isNull() assertThat(commandQueue.disableFlags1ForDisplay(SECONDARY_DISPLAY_ID)).isNull() assertThat(commandQueue.disableFlags2ForDisplay(SECONDARY_DISPLAY_ID)).isNull() } }
packages/SystemUI/src/com/android/systemui/statusbar/core/CommandQueueInitializer.kt +18 −11 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.app.StatusBarManager import android.content.Context import android.os.Binder import android.os.RemoteException import android.view.Display import android.view.WindowInsets import com.android.internal.statusbar.IStatusBarService import com.android.internal.statusbar.RegisterStatusBarResult Loading Loading @@ -47,20 +48,32 @@ constructor( override fun start() { StatusBarConnectedDisplays.assertInNewMode() val result: RegisterStatusBarResult = val resultPerDisplay: Map<String, RegisterStatusBarResult> = try { barService.registerStatusBar(commandQueue) barService.registerStatusBarForAllDisplays(commandQueue) } catch (ex: RemoteException) { ex.rethrowFromSystemServer() return } createNavigationBar(result) resultPerDisplay[Display.DEFAULT_DISPLAY.toString()]?.let { createNavigationBar(it) // Set up the initial icon state val numIcons: Int = it.mIcons.size for (i in 0 until numIcons) { commandQueue.setIcon(it.mIcons.keyAt(i), it.mIcons.valueAt(i)) } } for ((displayId, result) in resultPerDisplay.entries) { initializeStatusBarForDisplay(displayId.toInt(), result) } } private fun initializeStatusBarForDisplay(displayId: Int, result: RegisterStatusBarResult) { if ((result.mTransientBarTypes and WindowInsets.Type.statusBars()) != 0) { statusBarModeRepository.defaultDisplay.showTransient() statusBarModeRepository.forDisplay(displayId).showTransient() } val displayId = context.display.displayId val commandQueueCallbacks = commandQueueCallbacksLazy.get() commandQueueCallbacks.onSystemBarAttributesChanged( displayId, Loading @@ -81,12 +94,6 @@ constructor( result.mShowImeSwitcher, ) // Set up the initial icon state val numIcons: Int = result.mIcons.size for (i in 0 until numIcons) { commandQueue.setIcon(result.mIcons.keyAt(i), result.mIcons.valueAt(i)) } // set the initial view visibility val disabledFlags1 = result.mDisabledFlags1 val disabledFlags2 = result.mDisabledFlags2 Loading
packages/SystemUI/tests/utils/src/android/internal/statusbar/FakeStatusBarService.kt +100 −15 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.os.Bundle import android.os.IBinder import android.os.UserHandle import android.util.ArrayMap import android.view.Display import android.view.KeyEvent import com.android.internal.logging.InstanceId import com.android.internal.statusbar.IAddTileResultCallback Loading Loading @@ -95,6 +96,90 @@ class FakeStatusBarService : IStatusBarService.Stub() { ) ) var statusBarIconsSecondaryDisplay = ArrayMap<String, StatusBarIcon>().also { it["slot1"] = mock<StatusBarIcon>() it["slot2"] = mock<StatusBarIcon>() } var disabledFlags1SecondaryDisplay = 12345678 var appearanceSecondaryDisplay = 1234 var appearanceRegionsSecondaryDisplay = arrayOf( AppearanceRegion( /* appearance = */ 123, /* bounds = */ Rect(/* left= */ 4, /* top= */ 3, /* right= */ 2, /* bottom= */ 1), ), AppearanceRegion( /* appearance = */ 345, /* bounds = */ Rect(/* left= */ 1, /* top= */ 2, /* right= */ 3, /* bottom= */ 4), ), ) var imeWindowVisSecondaryDisplay = 9876 var imeBackDispositionSecondaryDisplay = 654 var showImeSwitcherSecondaryDisplay = true var disabledFlags2SecondaryDisplay = 87654321 var navbarColorManagedByImeSecondaryDisplay = true var behaviorSecondaryDisplay = 234 var requestedVisibleTypesSecondaryDisplay = 345 var packageNameSecondaryDisplay = "fake.bar.ser.vice" var transientBarTypesSecondaryDisplay = 0 var letterboxDetailsSecondaryDisplay = arrayOf( LetterboxDetails( /* letterboxInnerBounds = */ Rect( /* left= */ 5, /* top= */ 6, /* right= */ 7, /* bottom= */ 8, ), /* letterboxFullBounds = */ Rect( /* left= */ 1, /* top= */ 2, /* right= */ 3, /* bottom= */ 4, ), /* appAppearance = */ 123, ) ) private val defaultRegisterStatusBarResult get() = RegisterStatusBarResult( statusBarIcons, disabledFlags1, appearance, appearanceRegions, imeWindowVis, imeBackDisposition, showImeSwitcher, disabledFlags2, navbarColorManagedByIme, behavior, requestedVisibleTypes, packageName, transientBarTypes, letterboxDetails, ) private val registerStatusBarResultSecondaryDisplay get() = RegisterStatusBarResult( statusBarIconsSecondaryDisplay, disabledFlags1SecondaryDisplay, appearanceSecondaryDisplay, appearanceRegionsSecondaryDisplay, imeWindowVisSecondaryDisplay, imeBackDispositionSecondaryDisplay, showImeSwitcherSecondaryDisplay, disabledFlags2SecondaryDisplay, navbarColorManagedByImeSecondaryDisplay, behaviorSecondaryDisplay, requestedVisibleTypesSecondaryDisplay, packageNameSecondaryDisplay, transientBarTypesSecondaryDisplay, letterboxDetailsSecondaryDisplay, ) override fun expandNotificationsPanel() {} override fun collapsePanels() {} Loading Loading @@ -140,21 +225,16 @@ class FakeStatusBarService : IStatusBarService.Stub() { override fun registerStatusBar(callbacks: IStatusBar): RegisterStatusBarResult { registeredStatusBar = callbacks return RegisterStatusBarResult( statusBarIcons, disabledFlags1, appearance, appearanceRegions, imeWindowVis, imeBackDisposition, showImeSwitcher, disabledFlags2, navbarColorManagedByIme, behavior, requestedVisibleTypes, packageName, transientBarTypes, letterboxDetails, return defaultRegisterStatusBarResult } override fun registerStatusBarForAllDisplays( callbacks: IStatusBar ): Map<String, RegisterStatusBarResult> { registeredStatusBar = callbacks return mapOf( DEFAULT_DISPLAY_ID.toString() to defaultRegisterStatusBarResult, SECONDARY_DISPLAY_ID.toString() to registerStatusBarResultSecondaryDisplay, ) } Loading Loading @@ -352,4 +432,9 @@ class FakeStatusBarService : IStatusBarService.Stub() { override fun unregisterNearbyMediaDevicesProvider(provider: INearbyMediaDevicesProvider) {} override fun showRearDisplayDialog(currentBaseState: Int) {} companion object { const val DEFAULT_DISPLAY_ID = Display.DEFAULT_DISPLAY const val SECONDARY_DISPLAY_ID = 2 } }
packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/data/repository/FakeStatusBarModeRepository.kt +5 −5 Original line number Diff line number Diff line Loading @@ -34,12 +34,12 @@ class FakeStatusBarModeRepository @Inject constructor() : StatusBarModeRepositor const val DISPLAY_ID = Display.DEFAULT_DISPLAY } override val defaultDisplay: FakeStatusBarModePerDisplayRepository = FakeStatusBarModePerDisplayRepository() private val perDisplayRepos = mutableMapOf<Int, FakeStatusBarModePerDisplayRepository>() override fun forDisplay(displayId: Int): FakeStatusBarModePerDisplayRepository { return defaultDisplay } override val defaultDisplay: FakeStatusBarModePerDisplayRepository = forDisplay(DISPLAY_ID) override fun forDisplay(displayId: Int): FakeStatusBarModePerDisplayRepository = perDisplayRepos.computeIfAbsent(displayId) { FakeStatusBarModePerDisplayRepository() } } class FakeStatusBarModePerDisplayRepository : StatusBarModePerDisplayRepository { Loading