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

Commit 4d2fd6ee authored by Fabian Kozynski's avatar Fabian Kozynski
Browse files

Add screenSize and smallestScreenSize to manifest

We need to be aware of these as an orientation change could cause change
in these (so we were not restarting for orientation but got restarted by
other changes).

UiControllerImpl already was set up in a previous CL to properly
re-inflate what's necessary if the screen size/orientation changes.

Test: atest ControlsActivityTest
Test: atest ControlsUiControllerImplTest
Test: manual: open a detailed view in panel and rotate device
Fixes: 270583496
Change-Id: I4c0caee6dfe76e5434f1545f750418816baf0189
parent c59bcce7
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -878,7 +878,7 @@
                  android:showForAllUsers="true"
                  android:finishOnTaskLaunch="true"
                  android:launchMode="singleInstance"
                  android:configChanges="screenLayout|keyboard|keyboardHidden|orientation"
                  android:configChanges="screenSize|smallestScreenSize|screenLayout|keyboard|keyboardHidden|orientation"
                  android:visibleToInstantApps="true">
        </activity>

+7 −3
Original line number Diff line number Diff line
@@ -47,7 +47,8 @@ import javax.inject.Inject
 * destroyed on SCREEN_OFF events, due to issues with occluded activities over lockscreen as well as
 * user expectations for the activity to not continue running.
 */
class ControlsActivity @Inject constructor(
// Open for testing
open class ControlsActivity @Inject constructor(
    private val uiController: ControlsUiController,
    private val broadcastDispatcher: BroadcastDispatcher,
    private val dreamManager: IDreamManager,
@@ -98,8 +99,11 @@ class ControlsActivity @Inject constructor(

    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)
        if (lastConfiguration.diff(newConfig) and ActivityInfo.CONFIG_ORIENTATION != 0 ) {
            uiController.onOrientationChange()
        val interestingFlags = ActivityInfo.CONFIG_ORIENTATION or
                ActivityInfo.CONFIG_SCREEN_SIZE or
                ActivityInfo.CONFIG_SMALLEST_SCREEN_SIZE
        if (lastConfiguration.diff(newConfig) and interestingFlags != 0 ) {
            uiController.onSizeChange()
        }
        lastConfiguration = newConfig
    }
+1 −1
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ interface ControlsUiController {
     */
    fun getPreferredSelectedItem(structures: List<StructureInfo>): SelectedItem

    fun onOrientationChange()
    fun onSizeChange()
}

sealed class SelectedItem {
+1 −1
Original line number Diff line number Diff line
@@ -809,7 +809,7 @@ class ControlsUiControllerImpl @Inject constructor (
        }
    }

    override fun onOrientationChange() {
    override fun onSizeChange() {
        selectionItem?.let {
            when (selectedItem) {
                is SelectedItem.StructureItem -> createListView(it)
+5 −0
Original line number Diff line number Diff line
@@ -108,6 +108,11 @@
            android:excludeFromRecents="true"
            />

        <activity android:name="com.android.systemui.controls.ui.TestableControlsActivity"
            android:exported="false"
            android:excludeFromRecents="true"
            />

        <activity android:name="com.android.systemui.screenshot.ScrollViewActivity"
                  android:exported="false" />

Loading