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

This commit is contained in:
Anton Potapov
2023-05-10 12:39:50 +00:00
committed by Android (Google) Code Review
2 changed files with 17 additions and 3 deletions

View File

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

View File

@@ -34,6 +34,7 @@ import org.junit.Rule
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith import org.junit.runner.RunWith
import org.mockito.Mock import org.mockito.Mock
import org.mockito.Mockito.times
import org.mockito.Mockito.verify import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations import org.mockito.MockitoAnnotations
@@ -108,6 +109,18 @@ class ControlsActivityTest : SysuiTestCase() {
verify(uiController).onSizeChange() 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 { private fun switchOrientation(orientation: Int): Int {
return if (orientation == Configuration.ORIENTATION_LANDSCAPE) { return if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
Configuration.ORIENTATION_PORTRAIT Configuration.ORIENTATION_PORTRAIT