Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/window/StatusBarWindowControllerImplTest.kt +22 −2 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ import com.android.systemui.concurrency.fakeExecutor import com.android.systemui.fragments.fragmentService import com.android.systemui.statusbar.core.StatusBarConnectedDisplays import com.android.systemui.statusbar.core.StatusBarRootModernization import com.android.systemui.statusbar.policy.statusBarConfigurationController import com.android.systemui.statusbar.policy.mockStatusBarConfigurationController import com.android.systemui.testKosmos import com.google.common.truth.Truth.assertThat import org.junit.Before Loading @@ -47,7 +47,7 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { private val fakeWindowManager = kosmos.fakeWindowManager private val mockFragmentService = kosmos.fragmentService private val fakeStatusBarWindowViewInflater = kosmos.fakeStatusBarWindowViewInflater private val statusBarConfigurationController = kosmos.statusBarConfigurationController private val statusBarConfigurationController = kosmos.mockStatusBarConfigurationController @Before fun setUp() { Loading Loading @@ -133,4 +133,24 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { assertThat(fakeWindowManager.addedViews.keys).containsExactly(windowView) } @Test @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun attachThenStops_connectedDisplaysFlagEnabled_registersAndUnregistersConfigControllerListener() { underTest.attach() verify(statusBarConfigurationController).addCallback(any()) underTest.stop() verify(statusBarConfigurationController).removeCallback(any()) } @Test @DisableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun attach_connectedDisplaysFlagDisabled_doesNotRegisterConfigControllerListener() { underTest.attach() verify(statusBarConfigurationController, never()).addCallback(any()) } } packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +5 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import com.android.systemui.Gefingerpoken; import com.android.systemui.res.R; import com.android.systemui.shade.ShadeExpandsOnStatusBarLongPress; import com.android.systemui.shade.StatusBarLongPressGestureDetector; import com.android.systemui.statusbar.core.StatusBarConnectedDisplays; import com.android.systemui.statusbar.phone.userswitcher.StatusBarUserSwitcherContainer; import com.android.systemui.statusbar.window.StatusBarWindowControllerStore; import com.android.systemui.user.ui.binder.StatusBarUserChipViewBinder; Loading Loading @@ -340,6 +341,10 @@ public class PhoneStatusBarView extends FrameLayout { if (Flags.statusBarStopUpdatingWindowHeight()) { return; } if (StatusBarConnectedDisplays.isEnabled()) { // Handled directly from StatusBarWindowControllerImpl (for each display) return; } mStatusBarWindowControllerStore.getDefaultDisplay().refreshStatusBarHeight(); } Loading packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowControllerImpl.java +15 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import static com.android.systemui.util.leak.RotationUtils.ROTATION_SEASCAPE; import static com.android.systemui.util.leak.RotationUtils.ROTATION_UPSIDE_DOWN; import android.content.Context; import android.content.res.Configuration; import android.graphics.Insets; import android.graphics.PixelFormat; import android.graphics.Rect; Loading Loading @@ -58,6 +59,7 @@ import com.android.systemui.statusbar.core.StatusBarConnectedDisplays; import com.android.systemui.statusbar.core.StatusBarRootModernization; import com.android.systemui.statusbar.data.repository.StatusBarConfigurationController; import com.android.systemui.statusbar.layout.StatusBarContentInsetsProvider; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.window.StatusBarWindowModule.InternalWindowViewInflater; import com.android.systemui.unfold.UnfoldTransitionProgressProvider; import com.android.systemui.unfold.util.JankMonitorTransitionProgressListener; Loading Loading @@ -95,6 +97,14 @@ public class StatusBarWindowControllerImpl implements StatusBarWindowController private final WindowManager.LayoutParams mLpChanged; private final Binder mInsetsSourceOwner = new Binder(); private final ConfigurationController.ConfigurationListener mConfigurationListener = new ConfigurationController.ConfigurationListener() { @Override public void onConfigChanged(Configuration newConfig) { refreshStatusBarHeight(); } }; @AssistedInject public StatusBarWindowControllerImpl( @Assisted Context context, Loading Loading @@ -174,6 +184,10 @@ public class StatusBarWindowControllerImpl implements StatusBarWindowController + " doesn't exist anymore.", e); } if (StatusBarConnectedDisplays.isEnabled()) { mStatusBarConfigurationController.addCallback(mConfigurationListener); refreshStatusBarHeight(); } mLpChanged.copyFrom(mLp); mContentInsetsProvider.addCallback(this::calculateStatusBarLocationsForAllRotations); Loading @@ -195,7 +209,7 @@ public class StatusBarWindowControllerImpl implements StatusBarWindowController // it here will fail too, since it wasn't added in the first place. Log.e(TAG, "Failed to remove View from WindowManager. View was not attached", e); } mStatusBarConfigurationController.removeCallback(mConfigurationListener); if (StatusBarRootModernization.isEnabled()) { return; } Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewTest.kt +22 −11 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import com.android.systemui.Flags.FLAG_STATUS_BAR_SWIPE_OVER_CHIP import com.android.systemui.Gefingerpoken import com.android.systemui.SysuiTestCase import com.android.systemui.res.R import com.android.systemui.shared.Flags.FLAG_STATUS_BAR_CONNECTED_DISPLAYS import com.android.systemui.statusbar.window.StatusBarWindowController import com.android.systemui.statusbar.window.StatusBarWindowControllerStore import com.android.systemui.util.mockito.mock Loading Loading @@ -186,24 +187,34 @@ class PhoneStatusBarViewTest : SysuiTestCase() { } @Test @DisableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT) fun onAttachedToWindow_flagOff_updatesWindowHeight() { @EnableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT) @DisableFlags(FLAG_STATUS_BAR_CONNECTED_DISPLAYS) fun onAttachedToWindow_stopUpdatingHeightFlagOn_connectedDisplayFlagOff_doesNotUpdateWindowHeight() { view.onAttachedToWindow() verify(windowController).refreshStatusBarHeight() verify(windowController, never()).refreshStatusBarHeight() } @Test @EnableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT) fun onAttachedToWindow_flagOn_doesNotUpdateWindowHeight() { @DisableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT) @EnableFlags(FLAG_STATUS_BAR_CONNECTED_DISPLAYS) fun onAttachedToWindow_stopUpdatingHeightFlagOff_connectedDisplayFlagOn_doesNotUpdateWindowHeight() { view.onAttachedToWindow() verify(windowController, never()).refreshStatusBarHeight() } @Test @DisableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT) fun onConfigurationChanged_flagOff_updatesWindowHeight() { @DisableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT, FLAG_STATUS_BAR_CONNECTED_DISPLAYS) fun onAttachedToWindow_stopUpdatingHeightFlagOff_connectedDisplayFlagOff_updatesWindowHeight() { view.onAttachedToWindow() verify(windowController).refreshStatusBarHeight() } @Test @DisableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT, FLAG_STATUS_BAR_CONNECTED_DISPLAYS) fun onConfigurationChanged_stopUpdatingHeightFlagOff_connectedDisplayFlagOff_updatesWindowHeight() { view.onConfigurationChanged(Configuration()) verify(windowController).refreshStatusBarHeight() Loading @@ -211,15 +222,15 @@ class PhoneStatusBarViewTest : SysuiTestCase() { @Test @EnableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT) fun onConfigurationChanged_flagOn_doesNotUpdateWindowHeight() { fun onConfigurationChanged_stopUpdatingHeightFlagOn_doesNotUpdateWindowHeight() { view.onConfigurationChanged(Configuration()) verify(windowController, never()).refreshStatusBarHeight() } @Test @DisableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT) fun onConfigurationChanged_multipleCalls_flagOff_updatesWindowHeightMultipleTimes() { @DisableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT, FLAG_STATUS_BAR_CONNECTED_DISPLAYS) fun onConfigurationChanged_multipleCalls_stopUpdatingHeightFlagOff_updatesWindowHeightMultipleTimes() { view.onConfigurationChanged(Configuration()) view.onConfigurationChanged(Configuration()) view.onConfigurationChanged(Configuration()) Loading @@ -230,7 +241,7 @@ class PhoneStatusBarViewTest : SysuiTestCase() { @Test @EnableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT) fun onConfigurationChanged_multipleCalls_flagOn_neverUpdatesWindowHeight() { fun onConfigurationChanged_multipleCalls_stopUpdatingHeightFlagOn_neverUpdatesWindowHeight() { view.onConfigurationChanged(Configuration()) view.onConfigurationChanged(Configuration()) view.onConfigurationChanged(Configuration()) Loading packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/ConfigurationControllerKosmos.kt +4 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.systemui.statusbar.policy import com.android.systemui.kosmos.Kosmos import com.android.systemui.statusbar.data.repository.StatusBarConfigurationController import org.mockito.kotlin.mock var Kosmos.configurationController: ConfigurationController by Kosmos.Fixture { fakeConfigurationController } Loading @@ -26,5 +27,8 @@ val Kosmos.fakeConfigurationController: FakeConfigurationController by val Kosmos.statusBarConfigurationController: StatusBarConfigurationController by Kosmos.Fixture { fakeConfigurationController } val Kosmos.mockStatusBarConfigurationController by Kosmos.Fixture { mock<StatusBarConfigurationController>() } val ConfigurationController.fake get() = this as FakeConfigurationController Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/window/StatusBarWindowControllerImplTest.kt +22 −2 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ import com.android.systemui.concurrency.fakeExecutor import com.android.systemui.fragments.fragmentService import com.android.systemui.statusbar.core.StatusBarConnectedDisplays import com.android.systemui.statusbar.core.StatusBarRootModernization import com.android.systemui.statusbar.policy.statusBarConfigurationController import com.android.systemui.statusbar.policy.mockStatusBarConfigurationController import com.android.systemui.testKosmos import com.google.common.truth.Truth.assertThat import org.junit.Before Loading @@ -47,7 +47,7 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { private val fakeWindowManager = kosmos.fakeWindowManager private val mockFragmentService = kosmos.fragmentService private val fakeStatusBarWindowViewInflater = kosmos.fakeStatusBarWindowViewInflater private val statusBarConfigurationController = kosmos.statusBarConfigurationController private val statusBarConfigurationController = kosmos.mockStatusBarConfigurationController @Before fun setUp() { Loading Loading @@ -133,4 +133,24 @@ class StatusBarWindowControllerImplTest : SysuiTestCase() { assertThat(fakeWindowManager.addedViews.keys).containsExactly(windowView) } @Test @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun attachThenStops_connectedDisplaysFlagEnabled_registersAndUnregistersConfigControllerListener() { underTest.attach() verify(statusBarConfigurationController).addCallback(any()) underTest.stop() verify(statusBarConfigurationController).removeCallback(any()) } @Test @DisableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun attach_connectedDisplaysFlagDisabled_doesNotRegisterConfigControllerListener() { underTest.attach() verify(statusBarConfigurationController, never()).addCallback(any()) } }
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +5 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import com.android.systemui.Gefingerpoken; import com.android.systemui.res.R; import com.android.systemui.shade.ShadeExpandsOnStatusBarLongPress; import com.android.systemui.shade.StatusBarLongPressGestureDetector; import com.android.systemui.statusbar.core.StatusBarConnectedDisplays; import com.android.systemui.statusbar.phone.userswitcher.StatusBarUserSwitcherContainer; import com.android.systemui.statusbar.window.StatusBarWindowControllerStore; import com.android.systemui.user.ui.binder.StatusBarUserChipViewBinder; Loading Loading @@ -340,6 +341,10 @@ public class PhoneStatusBarView extends FrameLayout { if (Flags.statusBarStopUpdatingWindowHeight()) { return; } if (StatusBarConnectedDisplays.isEnabled()) { // Handled directly from StatusBarWindowControllerImpl (for each display) return; } mStatusBarWindowControllerStore.getDefaultDisplay().refreshStatusBarHeight(); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowControllerImpl.java +15 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import static com.android.systemui.util.leak.RotationUtils.ROTATION_SEASCAPE; import static com.android.systemui.util.leak.RotationUtils.ROTATION_UPSIDE_DOWN; import android.content.Context; import android.content.res.Configuration; import android.graphics.Insets; import android.graphics.PixelFormat; import android.graphics.Rect; Loading Loading @@ -58,6 +59,7 @@ import com.android.systemui.statusbar.core.StatusBarConnectedDisplays; import com.android.systemui.statusbar.core.StatusBarRootModernization; import com.android.systemui.statusbar.data.repository.StatusBarConfigurationController; import com.android.systemui.statusbar.layout.StatusBarContentInsetsProvider; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.window.StatusBarWindowModule.InternalWindowViewInflater; import com.android.systemui.unfold.UnfoldTransitionProgressProvider; import com.android.systemui.unfold.util.JankMonitorTransitionProgressListener; Loading Loading @@ -95,6 +97,14 @@ public class StatusBarWindowControllerImpl implements StatusBarWindowController private final WindowManager.LayoutParams mLpChanged; private final Binder mInsetsSourceOwner = new Binder(); private final ConfigurationController.ConfigurationListener mConfigurationListener = new ConfigurationController.ConfigurationListener() { @Override public void onConfigChanged(Configuration newConfig) { refreshStatusBarHeight(); } }; @AssistedInject public StatusBarWindowControllerImpl( @Assisted Context context, Loading Loading @@ -174,6 +184,10 @@ public class StatusBarWindowControllerImpl implements StatusBarWindowController + " doesn't exist anymore.", e); } if (StatusBarConnectedDisplays.isEnabled()) { mStatusBarConfigurationController.addCallback(mConfigurationListener); refreshStatusBarHeight(); } mLpChanged.copyFrom(mLp); mContentInsetsProvider.addCallback(this::calculateStatusBarLocationsForAllRotations); Loading @@ -195,7 +209,7 @@ public class StatusBarWindowControllerImpl implements StatusBarWindowController // it here will fail too, since it wasn't added in the first place. Log.e(TAG, "Failed to remove View from WindowManager. View was not attached", e); } mStatusBarConfigurationController.removeCallback(mConfigurationListener); if (StatusBarRootModernization.isEnabled()) { return; } Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewTest.kt +22 −11 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import com.android.systemui.Flags.FLAG_STATUS_BAR_SWIPE_OVER_CHIP import com.android.systemui.Gefingerpoken import com.android.systemui.SysuiTestCase import com.android.systemui.res.R import com.android.systemui.shared.Flags.FLAG_STATUS_BAR_CONNECTED_DISPLAYS import com.android.systemui.statusbar.window.StatusBarWindowController import com.android.systemui.statusbar.window.StatusBarWindowControllerStore import com.android.systemui.util.mockito.mock Loading Loading @@ -186,24 +187,34 @@ class PhoneStatusBarViewTest : SysuiTestCase() { } @Test @DisableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT) fun onAttachedToWindow_flagOff_updatesWindowHeight() { @EnableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT) @DisableFlags(FLAG_STATUS_BAR_CONNECTED_DISPLAYS) fun onAttachedToWindow_stopUpdatingHeightFlagOn_connectedDisplayFlagOff_doesNotUpdateWindowHeight() { view.onAttachedToWindow() verify(windowController).refreshStatusBarHeight() verify(windowController, never()).refreshStatusBarHeight() } @Test @EnableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT) fun onAttachedToWindow_flagOn_doesNotUpdateWindowHeight() { @DisableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT) @EnableFlags(FLAG_STATUS_BAR_CONNECTED_DISPLAYS) fun onAttachedToWindow_stopUpdatingHeightFlagOff_connectedDisplayFlagOn_doesNotUpdateWindowHeight() { view.onAttachedToWindow() verify(windowController, never()).refreshStatusBarHeight() } @Test @DisableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT) fun onConfigurationChanged_flagOff_updatesWindowHeight() { @DisableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT, FLAG_STATUS_BAR_CONNECTED_DISPLAYS) fun onAttachedToWindow_stopUpdatingHeightFlagOff_connectedDisplayFlagOff_updatesWindowHeight() { view.onAttachedToWindow() verify(windowController).refreshStatusBarHeight() } @Test @DisableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT, FLAG_STATUS_BAR_CONNECTED_DISPLAYS) fun onConfigurationChanged_stopUpdatingHeightFlagOff_connectedDisplayFlagOff_updatesWindowHeight() { view.onConfigurationChanged(Configuration()) verify(windowController).refreshStatusBarHeight() Loading @@ -211,15 +222,15 @@ class PhoneStatusBarViewTest : SysuiTestCase() { @Test @EnableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT) fun onConfigurationChanged_flagOn_doesNotUpdateWindowHeight() { fun onConfigurationChanged_stopUpdatingHeightFlagOn_doesNotUpdateWindowHeight() { view.onConfigurationChanged(Configuration()) verify(windowController, never()).refreshStatusBarHeight() } @Test @DisableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT) fun onConfigurationChanged_multipleCalls_flagOff_updatesWindowHeightMultipleTimes() { @DisableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT, FLAG_STATUS_BAR_CONNECTED_DISPLAYS) fun onConfigurationChanged_multipleCalls_stopUpdatingHeightFlagOff_updatesWindowHeightMultipleTimes() { view.onConfigurationChanged(Configuration()) view.onConfigurationChanged(Configuration()) view.onConfigurationChanged(Configuration()) Loading @@ -230,7 +241,7 @@ class PhoneStatusBarViewTest : SysuiTestCase() { @Test @EnableFlags(FLAG_STATUS_BAR_STOP_UPDATING_WINDOW_HEIGHT) fun onConfigurationChanged_multipleCalls_flagOn_neverUpdatesWindowHeight() { fun onConfigurationChanged_multipleCalls_stopUpdatingHeightFlagOn_neverUpdatesWindowHeight() { view.onConfigurationChanged(Configuration()) view.onConfigurationChanged(Configuration()) view.onConfigurationChanged(Configuration()) Loading
packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/ConfigurationControllerKosmos.kt +4 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.systemui.statusbar.policy import com.android.systemui.kosmos.Kosmos import com.android.systemui.statusbar.data.repository.StatusBarConfigurationController import org.mockito.kotlin.mock var Kosmos.configurationController: ConfigurationController by Kosmos.Fixture { fakeConfigurationController } Loading @@ -26,5 +27,8 @@ val Kosmos.fakeConfigurationController: FakeConfigurationController by val Kosmos.statusBarConfigurationController: StatusBarConfigurationController by Kosmos.Fixture { fakeConfigurationController } val Kosmos.mockStatusBarConfigurationController by Kosmos.Fixture { mock<StatusBarConfigurationController>() } val ConfigurationController.fake get() = this as FakeConfigurationController