Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/window/StatusBarWindowControllerImplTest.kt +38 −7 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.statusbar.window import android.platform.test.annotations.DisableFlags import android.platform.test.annotations.EnableFlags import android.view.Display import android.view.fakeWindowManager import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest Loading @@ -28,7 +29,6 @@ import com.android.systemui.statusbar.core.StatusBarRootModernization import com.android.systemui.statusbar.policy.mockStatusBarConfigurationController import com.android.systemui.testKosmos import com.google.common.truth.Truth.assertThat import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.kotlin.any Loading @@ -42,21 +42,16 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { private val kosmos = testKosmos().also { it.statusBarWindowViewInflater = it.fakeStatusBarWindowViewInflater } private lateinit var underTest: StatusBarWindowControllerImpl private val fakeExecutor = kosmos.fakeExecutor private val fakeWindowManager = kosmos.fakeWindowManager private val mockFragmentService = kosmos.fragmentService private val fakeStatusBarWindowViewInflater = kosmos.fakeStatusBarWindowViewInflater private val statusBarConfigurationController = kosmos.mockStatusBarConfigurationController @Before fun setUp() { underTest = kosmos.statusBarWindowControllerImpl } @Test @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun attach_connectedDisplaysFlagEnabled_setsConfigControllerOnWindowView() { val underTest = kosmos.statusBarWindowControllerImpl val windowView = fakeStatusBarWindowViewInflater.inflatedMockViews.first() underTest.attach() Loading @@ -67,6 +62,7 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { @Test @DisableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun attach_connectedDisplaysFlagDisabled_doesNotSetConfigControllerOnWindowView() { val underTest = kosmos.statusBarWindowControllerImpl val mockWindowView = fakeStatusBarWindowViewInflater.inflatedMockViews.first() underTest.attach() Loading @@ -77,6 +73,7 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { @Test @EnableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarConnectedDisplays.FLAG_NAME) fun stop_statusBarModernizationFlagEnabled_doesNotRemoveFragment() { val underTest = kosmos.statusBarWindowControllerImpl val windowView = fakeStatusBarWindowViewInflater.inflatedMockViews.first() underTest.stop() Loading @@ -89,6 +86,7 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { @DisableFlags(StatusBarRootModernization.FLAG_NAME) @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun stop_statusBarModernizationFlagDisabled_removesFragment() { val underTest = kosmos.statusBarWindowControllerImpl val windowView = fakeStatusBarWindowViewInflater.inflatedMockViews.first() underTest.stop() Loading @@ -101,6 +99,7 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { @DisableFlags(StatusBarRootModernization.FLAG_NAME) @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun stop_statusBarModernizationFlagDisabled_removesFragmentOnExecutor() { val underTest = kosmos.statusBarWindowControllerImpl val windowView = fakeStatusBarWindowViewInflater.inflatedMockViews.first() underTest.stop() Loading @@ -113,6 +112,8 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { @Test @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun stop_removesWindowViewFromWindowManager() { val underTest = kosmos.statusBarWindowControllerImpl underTest.attach() underTest.stop() Loading @@ -122,11 +123,14 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { @Test(expected = IllegalStateException::class) @DisableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun stop_connectedDisplaysFlagDisabled_crashes() { val underTest = kosmos.statusBarWindowControllerImpl underTest.stop() } @Test fun attach_windowViewAddedToWindowManager() { val underTest = kosmos.statusBarWindowControllerImpl val windowView = fakeStatusBarWindowViewInflater.inflatedMockViews.first() underTest.attach() Loading @@ -137,6 +141,7 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { @Test @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun attachThenStops_connectedDisplaysFlagEnabled_registersAndUnregistersConfigControllerListener() { val underTest = kosmos.statusBarWindowControllerImpl underTest.attach() verify(statusBarConfigurationController).addCallback(any()) Loading @@ -149,8 +154,34 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { @Test @DisableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun attach_connectedDisplaysFlagDisabled_doesNotRegisterConfigControllerListener() { val underTest = kosmos.statusBarWindowControllerImpl underTest.attach() verify(statusBarConfigurationController, never()).addCallback(any()) } @Test fun attach_defaultDisplay_attachedWindowHasDefaultTitle() { kosmos.statusBarWindowControllerImplDisplayId = Display.DEFAULT_DISPLAY val underTest = kosmos.statusBarWindowControllerImpl val windowView = fakeStatusBarWindowViewInflater.inflatedMockViews.first() underTest.attach() val windowParams = fakeWindowManager.addedViews[windowView]!! assertThat(windowParams.title).isEqualTo("StatusBar") } @Test fun attach_nonDefaultDisplay_attachedWindowHasTitleWithDisplayId() { kosmos.statusBarWindowControllerImplDisplayId = 123 val underTest = kosmos.statusBarWindowControllerImpl val windowView = fakeStatusBarWindowViewInflater.inflatedMockViews.first() underTest.attach() val windowParams = fakeWindowManager.addedViews[windowView]!! assertThat(windowParams.title).isEqualTo("StatusBar(displayId=123)") } } packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowController.kt +1 −0 Original line number Diff line number Diff line Loading @@ -87,6 +87,7 @@ interface StatusBarWindowController { windowManager: WindowManager, statusBarConfigurationController: StatusBarConfigurationController, contentInsetsProvider: StatusBarContentInsetsProvider, displayId: Int, ): StatusBarWindowController } } packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowControllerImpl.java +10 −3 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.os.Binder; import android.os.RemoteException; import android.os.Trace; import android.util.Log; import android.view.Display; import android.view.DisplayCutout; import android.view.Gravity; import android.view.IWindowManager; Loading Loading @@ -84,6 +85,7 @@ public class StatusBarWindowControllerImpl implements StatusBarWindowController private final IWindowManager mIWindowManager; private final StatusBarContentInsetsProvider mContentInsetsProvider; private final Executor mMainExecutor; private final int mDisplayId; private int mBarHeight = -1; private final State mCurrentState = new State(); private boolean mIsAttached; Loading Loading @@ -115,8 +117,10 @@ public class StatusBarWindowControllerImpl implements StatusBarWindowController @Assisted StatusBarContentInsetsProvider contentInsetsProvider, FragmentService fragmentService, Optional<UnfoldTransitionProgressProvider> unfoldTransitionProgressProvider, @Main Executor mainExecutor) { @Main Executor mainExecutor, @Assisted int displayId) { mContext = context; mDisplayId = displayId; mWindowManager = windowManager; mStatusBarConfigurationController = statusBarConfigurationController; mIWindowManager = iWindowManager; Loading Loading @@ -282,7 +286,9 @@ public class StatusBarWindowControllerImpl implements StatusBarWindowController lp.token = new Binder(); lp.gravity = Gravity.TOP; lp.setFitInsetsTypes(0 /* types */); lp.setTitle("StatusBar"); String titleSuffix = mDisplayId == Display.DEFAULT_DISPLAY ? "" : "(displayId=" + mDisplayId + ")"; lp.setTitle("StatusBar" + titleSuffix); lp.packageName = mContext.getPackageName(); lp.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; final InsetsFrameProvider gestureInsetsProvider = Loading Loading @@ -421,7 +427,8 @@ public class StatusBarWindowControllerImpl implements StatusBarWindowController @NonNull Context context, @NonNull WindowManager windowManager, @NonNull StatusBarConfigurationController statusBarConfigurationController, @NonNull StatusBarContentInsetsProvider contentInsetsProvider); @NonNull StatusBarContentInsetsProvider contentInsetsProvider, int displayId); } } packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowControllerStore.kt +3 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.statusbar.window import android.content.Context import android.view.Display import android.view.WindowManager import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background Loading Loading @@ -70,6 +71,7 @@ constructor( statusBarDisplayContext.windowManager, statusBarConfigurationController, contentInsetsProvider, displayId, ) } Loading Loading @@ -97,6 +99,7 @@ constructor( windowManager, statusBarConfigurationControllerStore.defaultDisplay, statusBarContentInsetsProviderStore.defaultDisplay, Display.DEFAULT_DISPLAY, ) ) { Loading packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/window/FakeStatusBarWindowControllerFactory.kt +1 −0 Original line number Diff line number Diff line Loading @@ -27,5 +27,6 @@ class FakeStatusBarWindowControllerFactory : StatusBarWindowController.Factory { windowManager: WindowManager, statusBarConfigurationController: StatusBarConfigurationController, contentInsetsProvider: StatusBarContentInsetsProvider, displayId: Int, ) = FakeStatusBarWindowController() } Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/window/StatusBarWindowControllerImplTest.kt +38 −7 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.statusbar.window import android.platform.test.annotations.DisableFlags import android.platform.test.annotations.EnableFlags import android.view.Display import android.view.fakeWindowManager import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest Loading @@ -28,7 +29,6 @@ import com.android.systemui.statusbar.core.StatusBarRootModernization import com.android.systemui.statusbar.policy.mockStatusBarConfigurationController import com.android.systemui.testKosmos import com.google.common.truth.Truth.assertThat import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.kotlin.any Loading @@ -42,21 +42,16 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { private val kosmos = testKosmos().also { it.statusBarWindowViewInflater = it.fakeStatusBarWindowViewInflater } private lateinit var underTest: StatusBarWindowControllerImpl private val fakeExecutor = kosmos.fakeExecutor private val fakeWindowManager = kosmos.fakeWindowManager private val mockFragmentService = kosmos.fragmentService private val fakeStatusBarWindowViewInflater = kosmos.fakeStatusBarWindowViewInflater private val statusBarConfigurationController = kosmos.mockStatusBarConfigurationController @Before fun setUp() { underTest = kosmos.statusBarWindowControllerImpl } @Test @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun attach_connectedDisplaysFlagEnabled_setsConfigControllerOnWindowView() { val underTest = kosmos.statusBarWindowControllerImpl val windowView = fakeStatusBarWindowViewInflater.inflatedMockViews.first() underTest.attach() Loading @@ -67,6 +62,7 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { @Test @DisableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun attach_connectedDisplaysFlagDisabled_doesNotSetConfigControllerOnWindowView() { val underTest = kosmos.statusBarWindowControllerImpl val mockWindowView = fakeStatusBarWindowViewInflater.inflatedMockViews.first() underTest.attach() Loading @@ -77,6 +73,7 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { @Test @EnableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarConnectedDisplays.FLAG_NAME) fun stop_statusBarModernizationFlagEnabled_doesNotRemoveFragment() { val underTest = kosmos.statusBarWindowControllerImpl val windowView = fakeStatusBarWindowViewInflater.inflatedMockViews.first() underTest.stop() Loading @@ -89,6 +86,7 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { @DisableFlags(StatusBarRootModernization.FLAG_NAME) @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun stop_statusBarModernizationFlagDisabled_removesFragment() { val underTest = kosmos.statusBarWindowControllerImpl val windowView = fakeStatusBarWindowViewInflater.inflatedMockViews.first() underTest.stop() Loading @@ -101,6 +99,7 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { @DisableFlags(StatusBarRootModernization.FLAG_NAME) @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun stop_statusBarModernizationFlagDisabled_removesFragmentOnExecutor() { val underTest = kosmos.statusBarWindowControllerImpl val windowView = fakeStatusBarWindowViewInflater.inflatedMockViews.first() underTest.stop() Loading @@ -113,6 +112,8 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { @Test @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun stop_removesWindowViewFromWindowManager() { val underTest = kosmos.statusBarWindowControllerImpl underTest.attach() underTest.stop() Loading @@ -122,11 +123,14 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { @Test(expected = IllegalStateException::class) @DisableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun stop_connectedDisplaysFlagDisabled_crashes() { val underTest = kosmos.statusBarWindowControllerImpl underTest.stop() } @Test fun attach_windowViewAddedToWindowManager() { val underTest = kosmos.statusBarWindowControllerImpl val windowView = fakeStatusBarWindowViewInflater.inflatedMockViews.first() underTest.attach() Loading @@ -137,6 +141,7 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { @Test @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun attachThenStops_connectedDisplaysFlagEnabled_registersAndUnregistersConfigControllerListener() { val underTest = kosmos.statusBarWindowControllerImpl underTest.attach() verify(statusBarConfigurationController).addCallback(any()) Loading @@ -149,8 +154,34 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { @Test @DisableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun attach_connectedDisplaysFlagDisabled_doesNotRegisterConfigControllerListener() { val underTest = kosmos.statusBarWindowControllerImpl underTest.attach() verify(statusBarConfigurationController, never()).addCallback(any()) } @Test fun attach_defaultDisplay_attachedWindowHasDefaultTitle() { kosmos.statusBarWindowControllerImplDisplayId = Display.DEFAULT_DISPLAY val underTest = kosmos.statusBarWindowControllerImpl val windowView = fakeStatusBarWindowViewInflater.inflatedMockViews.first() underTest.attach() val windowParams = fakeWindowManager.addedViews[windowView]!! assertThat(windowParams.title).isEqualTo("StatusBar") } @Test fun attach_nonDefaultDisplay_attachedWindowHasTitleWithDisplayId() { kosmos.statusBarWindowControllerImplDisplayId = 123 val underTest = kosmos.statusBarWindowControllerImpl val windowView = fakeStatusBarWindowViewInflater.inflatedMockViews.first() underTest.attach() val windowParams = fakeWindowManager.addedViews[windowView]!! assertThat(windowParams.title).isEqualTo("StatusBar(displayId=123)") } }
packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowController.kt +1 −0 Original line number Diff line number Diff line Loading @@ -87,6 +87,7 @@ interface StatusBarWindowController { windowManager: WindowManager, statusBarConfigurationController: StatusBarConfigurationController, contentInsetsProvider: StatusBarContentInsetsProvider, displayId: Int, ): StatusBarWindowController } }
packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowControllerImpl.java +10 −3 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.os.Binder; import android.os.RemoteException; import android.os.Trace; import android.util.Log; import android.view.Display; import android.view.DisplayCutout; import android.view.Gravity; import android.view.IWindowManager; Loading Loading @@ -84,6 +85,7 @@ public class StatusBarWindowControllerImpl implements StatusBarWindowController private final IWindowManager mIWindowManager; private final StatusBarContentInsetsProvider mContentInsetsProvider; private final Executor mMainExecutor; private final int mDisplayId; private int mBarHeight = -1; private final State mCurrentState = new State(); private boolean mIsAttached; Loading Loading @@ -115,8 +117,10 @@ public class StatusBarWindowControllerImpl implements StatusBarWindowController @Assisted StatusBarContentInsetsProvider contentInsetsProvider, FragmentService fragmentService, Optional<UnfoldTransitionProgressProvider> unfoldTransitionProgressProvider, @Main Executor mainExecutor) { @Main Executor mainExecutor, @Assisted int displayId) { mContext = context; mDisplayId = displayId; mWindowManager = windowManager; mStatusBarConfigurationController = statusBarConfigurationController; mIWindowManager = iWindowManager; Loading Loading @@ -282,7 +286,9 @@ public class StatusBarWindowControllerImpl implements StatusBarWindowController lp.token = new Binder(); lp.gravity = Gravity.TOP; lp.setFitInsetsTypes(0 /* types */); lp.setTitle("StatusBar"); String titleSuffix = mDisplayId == Display.DEFAULT_DISPLAY ? "" : "(displayId=" + mDisplayId + ")"; lp.setTitle("StatusBar" + titleSuffix); lp.packageName = mContext.getPackageName(); lp.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; final InsetsFrameProvider gestureInsetsProvider = Loading Loading @@ -421,7 +427,8 @@ public class StatusBarWindowControllerImpl implements StatusBarWindowController @NonNull Context context, @NonNull WindowManager windowManager, @NonNull StatusBarConfigurationController statusBarConfigurationController, @NonNull StatusBarContentInsetsProvider contentInsetsProvider); @NonNull StatusBarContentInsetsProvider contentInsetsProvider, int displayId); } }
packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowControllerStore.kt +3 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.statusbar.window import android.content.Context import android.view.Display import android.view.WindowManager import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background Loading Loading @@ -70,6 +71,7 @@ constructor( statusBarDisplayContext.windowManager, statusBarConfigurationController, contentInsetsProvider, displayId, ) } Loading Loading @@ -97,6 +99,7 @@ constructor( windowManager, statusBarConfigurationControllerStore.defaultDisplay, statusBarContentInsetsProviderStore.defaultDisplay, Display.DEFAULT_DISPLAY, ) ) { Loading
packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/window/FakeStatusBarWindowControllerFactory.kt +1 −0 Original line number Diff line number Diff line Loading @@ -27,5 +27,6 @@ class FakeStatusBarWindowControllerFactory : StatusBarWindowController.Factory { windowManager: WindowManager, statusBarConfigurationController: StatusBarConfigurationController, contentInsetsProvider: StatusBarContentInsetsProvider, displayId: Int, ) = FakeStatusBarWindowController() }