Merge "Use a separated Configuration instance to save the last state" into udc-dev am: 6a1a88246a

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23101545

Change-Id: I0db9394a959976c2b9e993530a9db479b38e0799
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Anton Potapov
2023-05-10 13:20:22 +00:00
committed by Automerger Merge Worker
2 changed files with 17 additions and 3 deletions

View File

@@ -57,14 +57,15 @@ open class ControlsActivity @Inject constructor(
private val keyguardStateController: KeyguardStateController
) : ComponentActivity() {
private val lastConfiguration = Configuration()
private lateinit var parent: ViewGroup
private lateinit var broadcastReceiver: BroadcastReceiver
private var mExitToDream: Boolean = false
private lateinit var lastConfiguration: Configuration
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
lastConfiguration = resources.configuration
lastConfiguration.setTo(resources.configuration)
if (featureFlags.isEnabled(Flags.USE_APP_PANELS)) {
window.addPrivateFlags(WindowManager.LayoutParams.PRIVATE_FLAG_TRUSTED_OVERLAY)
}
@@ -105,7 +106,7 @@ open class ControlsActivity @Inject constructor(
if (lastConfiguration.diff(newConfig) and interestingFlags != 0 ) {
uiController.onSizeChange()
}
lastConfiguration = newConfig
lastConfiguration.setTo(newConfig)
}
override fun onStart() {

View File

@@ -34,6 +34,7 @@ import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.Mockito.times
import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations
@@ -108,6 +109,18 @@ class ControlsActivityTest : SysuiTestCase() {
verify(uiController).onSizeChange()
}
@Test
fun testConfigurationChangeSupportsInPlaceChange() {
val config = Configuration(activityRule.activity.resources.configuration)
config.orientation = switchOrientation(config.orientation)
activityRule.runOnUiThread { activityRule.activity.onConfigurationChanged(config) }
config.orientation = switchOrientation(config.orientation)
activityRule.runOnUiThread { activityRule.activity.onConfigurationChanged(config) }
verify(uiController, times(2)).onSizeChange()
}
private fun switchOrientation(orientation: Int): Int {
return if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
Configuration.ORIENTATION_PORTRAIT