Use a separated Configuration instance to save the last state
Test: manual Test: atest ControlsActivityTest Fixes: 280500001 Change-Id: I8975b28a68c34cd27d4e53646d2b034a8edb97f9
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user