Merge "Use a separated Configuration instance to save the last state" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
6a1a88246a
@@ -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() {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user