Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7eaa5e3d authored by Anton Potapov's avatar Anton Potapov
Browse files

Use a separated Configuration instance to save the last state

Test: manual
Test: atest ControlsActivityTest
Fixes: 280500001
Change-Id: I8975b28a68c34cd27d4e53646d2b034a8edb97f9
parent 40e35dfa
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -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() {
+13 −0
Original line number Diff line number Diff line
@@ -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