Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/StatusBarContentInsetsProviderTest.kt +98 −3 Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ package com.android.systemui.statusbar.phone import android.content.Context import android.content.res.Configuration import android.graphics.Rect import android.platform.test.annotations.DisableFlags import android.platform.test.annotations.EnableFlags import android.view.Display import android.view.DisplayCutout import androidx.test.ext.junit.runners.AndroidJUnit4 Loading @@ -29,6 +31,7 @@ import com.android.systemui.SysUICutoutProvider import com.android.systemui.SysuiTestCase import com.android.systemui.dump.DumpManager import com.android.systemui.statusbar.commandline.CommandRegistry import com.android.systemui.statusbar.core.StatusBarConnectedDisplays import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.util.leak.RotationUtils import com.android.systemui.util.leak.RotationUtils.ROTATION_LANDSCAPE Loading Loading @@ -1051,7 +1054,8 @@ class StatusBarContentInsetsProviderTest : SysuiTestCase() { } @Test fun onMaxBoundsChanged_beforeStart_listenerNotNotified() { @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun onMaxBoundsChanged_beforeStart_flagEnabled_listenerNotNotified() { // Start out with an existing configuration with bounds configuration.windowConfiguration.setMaxBounds(0, 0, 100, 100) configurationController.onConfigurationChanged(configuration) Loading Loading @@ -1083,7 +1087,41 @@ class StatusBarContentInsetsProviderTest : SysuiTestCase() { } @Test fun onDensityOrFontScaleChanged_beforeStart_listenerNotNotified() { @DisableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun onMaxBoundsChanged_beforeStart_flagDisabled_listenerNotNotified() { // Start out with an existing configuration with bounds configuration.windowConfiguration.setMaxBounds(0, 0, 100, 100) configurationController.onConfigurationChanged(configuration) val provider = StatusBarContentInsetsProviderImpl( contextMock, configurationController, mock<DumpManager>(), mock<CommandRegistry>(), mock<SysUICutoutProvider>(), ) val listener = object : StatusBarContentInsetsChangedListener { var triggered = false override fun onStatusBarContentInsetsChanged() { triggered = true } } provider.addCallback(listener) // WHEN the config is updated with new bounds // but provider is not started configuration.windowConfiguration.setMaxBounds(0, 0, 456, 789) configurationController.onConfigurationChanged(configuration) // THEN the listener is notified assertThat(listener.triggered).isTrue() } @Test @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun onDensityOrFontScaleChanged_beforeStart_flagEnabled_listenerNotNotified() { configuration.densityDpi = 12 val provider = StatusBarContentInsetsProviderImpl( Loading Loading @@ -1111,6 +1149,36 @@ class StatusBarContentInsetsProviderTest : SysuiTestCase() { assertThat(listener.triggered).isFalse() } @Test @DisableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun onDensityOrFontScaleChanged_beforeStart_flagDisabled_listenerNotified() { configuration.densityDpi = 12 val provider = StatusBarContentInsetsProviderImpl( contextMock, configurationController, mock<DumpManager>(), mock<CommandRegistry>(), mock<SysUICutoutProvider>(), ) val listener = object : StatusBarContentInsetsChangedListener { var triggered = false override fun onStatusBarContentInsetsChanged() { triggered = true } } provider.addCallback(listener) // WHEN the config is updated, but the provider is not started configuration.densityDpi = 20 configurationController.onConfigurationChanged(configuration) // THEN the listener is notified assertThat(listener.triggered).isTrue() } @Test fun onDensityOrFontScaleChanged_afterStart_listenerNotified() { configuration.densityDpi = 12 Loading Loading @@ -1169,7 +1237,8 @@ class StatusBarContentInsetsProviderTest : SysuiTestCase() { } @Test fun onThemeChanged_beforeStart_listenerNotNotified() { @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun onThemeChanged_beforeStart_flagEnabled_listenerNotNotified() { val provider = StatusBarContentInsetsProviderImpl( contextMock, Loading @@ -1193,6 +1262,32 @@ class StatusBarContentInsetsProviderTest : SysuiTestCase() { assertThat(listener.triggered).isFalse() } @Test @DisableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun onThemeChanged_beforeStart_flagDisabled_listenerNotified() { val provider = StatusBarContentInsetsProviderImpl( contextMock, configurationController, mock<DumpManager>(), mock<CommandRegistry>(), mock<SysUICutoutProvider>(), ) val listener = object : StatusBarContentInsetsChangedListener { var triggered = false override fun onStatusBarContentInsetsChanged() { triggered = true } } provider.addCallback(listener) configurationController.notifyThemeChanged() assertThat(listener.triggered).isTrue() } private fun assertRects( expected: Rect, actual: Rect, Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarContentInsetsProvider.kt +8 −0 Original line number Diff line number Diff line Loading @@ -174,6 +174,14 @@ constructor( private val dumpableName = TAG + nameSuffix private val commandName = StatusBarInsetsCommand.NAME + nameSuffix init { if (!StatusBarConnectedDisplays.isEnabled) { // Call start(), since it is not called when the flag is disabled, to keep the old // behavior as it was. start() } } override fun start() { configurationController.addCallback(this) dumpManager.registerDumpable(dumpableName, this) Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/StatusBarContentInsetsProviderTest.kt +98 −3 Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ package com.android.systemui.statusbar.phone import android.content.Context import android.content.res.Configuration import android.graphics.Rect import android.platform.test.annotations.DisableFlags import android.platform.test.annotations.EnableFlags import android.view.Display import android.view.DisplayCutout import androidx.test.ext.junit.runners.AndroidJUnit4 Loading @@ -29,6 +31,7 @@ import com.android.systemui.SysUICutoutProvider import com.android.systemui.SysuiTestCase import com.android.systemui.dump.DumpManager import com.android.systemui.statusbar.commandline.CommandRegistry import com.android.systemui.statusbar.core.StatusBarConnectedDisplays import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.util.leak.RotationUtils import com.android.systemui.util.leak.RotationUtils.ROTATION_LANDSCAPE Loading Loading @@ -1051,7 +1054,8 @@ class StatusBarContentInsetsProviderTest : SysuiTestCase() { } @Test fun onMaxBoundsChanged_beforeStart_listenerNotNotified() { @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun onMaxBoundsChanged_beforeStart_flagEnabled_listenerNotNotified() { // Start out with an existing configuration with bounds configuration.windowConfiguration.setMaxBounds(0, 0, 100, 100) configurationController.onConfigurationChanged(configuration) Loading Loading @@ -1083,7 +1087,41 @@ class StatusBarContentInsetsProviderTest : SysuiTestCase() { } @Test fun onDensityOrFontScaleChanged_beforeStart_listenerNotNotified() { @DisableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun onMaxBoundsChanged_beforeStart_flagDisabled_listenerNotNotified() { // Start out with an existing configuration with bounds configuration.windowConfiguration.setMaxBounds(0, 0, 100, 100) configurationController.onConfigurationChanged(configuration) val provider = StatusBarContentInsetsProviderImpl( contextMock, configurationController, mock<DumpManager>(), mock<CommandRegistry>(), mock<SysUICutoutProvider>(), ) val listener = object : StatusBarContentInsetsChangedListener { var triggered = false override fun onStatusBarContentInsetsChanged() { triggered = true } } provider.addCallback(listener) // WHEN the config is updated with new bounds // but provider is not started configuration.windowConfiguration.setMaxBounds(0, 0, 456, 789) configurationController.onConfigurationChanged(configuration) // THEN the listener is notified assertThat(listener.triggered).isTrue() } @Test @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun onDensityOrFontScaleChanged_beforeStart_flagEnabled_listenerNotNotified() { configuration.densityDpi = 12 val provider = StatusBarContentInsetsProviderImpl( Loading Loading @@ -1111,6 +1149,36 @@ class StatusBarContentInsetsProviderTest : SysuiTestCase() { assertThat(listener.triggered).isFalse() } @Test @DisableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun onDensityOrFontScaleChanged_beforeStart_flagDisabled_listenerNotified() { configuration.densityDpi = 12 val provider = StatusBarContentInsetsProviderImpl( contextMock, configurationController, mock<DumpManager>(), mock<CommandRegistry>(), mock<SysUICutoutProvider>(), ) val listener = object : StatusBarContentInsetsChangedListener { var triggered = false override fun onStatusBarContentInsetsChanged() { triggered = true } } provider.addCallback(listener) // WHEN the config is updated, but the provider is not started configuration.densityDpi = 20 configurationController.onConfigurationChanged(configuration) // THEN the listener is notified assertThat(listener.triggered).isTrue() } @Test fun onDensityOrFontScaleChanged_afterStart_listenerNotified() { configuration.densityDpi = 12 Loading Loading @@ -1169,7 +1237,8 @@ class StatusBarContentInsetsProviderTest : SysuiTestCase() { } @Test fun onThemeChanged_beforeStart_listenerNotNotified() { @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun onThemeChanged_beforeStart_flagEnabled_listenerNotNotified() { val provider = StatusBarContentInsetsProviderImpl( contextMock, Loading @@ -1193,6 +1262,32 @@ class StatusBarContentInsetsProviderTest : SysuiTestCase() { assertThat(listener.triggered).isFalse() } @Test @DisableFlags(StatusBarConnectedDisplays.FLAG_NAME) fun onThemeChanged_beforeStart_flagDisabled_listenerNotified() { val provider = StatusBarContentInsetsProviderImpl( contextMock, configurationController, mock<DumpManager>(), mock<CommandRegistry>(), mock<SysUICutoutProvider>(), ) val listener = object : StatusBarContentInsetsChangedListener { var triggered = false override fun onStatusBarContentInsetsChanged() { triggered = true } } provider.addCallback(listener) configurationController.notifyThemeChanged() assertThat(listener.triggered).isTrue() } private fun assertRects( expected: Rect, actual: Rect, Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarContentInsetsProvider.kt +8 −0 Original line number Diff line number Diff line Loading @@ -174,6 +174,14 @@ constructor( private val dumpableName = TAG + nameSuffix private val commandName = StatusBarInsetsCommand.NAME + nameSuffix init { if (!StatusBarConnectedDisplays.isEnabled) { // Call start(), since it is not called when the flag is disabled, to keep the old // behavior as it was. start() } } override fun start() { configurationController.addCallback(this) dumpManager.registerDumpable(dumpableName, this) Loading