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

Commit 980c089d authored by Sunny Goyal's avatar Sunny Goyal
Browse files

[DO NOT MERGE] Keeping Launcher in overview UI if activity is restarting

due to UI mode changes

Test: Verified Launcher behavior locally
Bug: 148988542
Change-Id: Id83e5e0892666af1420e8f8c711b83f1ea355188
(cherry picked from commit 6c0c61ac)
parent ec5e0954
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.launcher3;

import static android.content.pm.ActivityInfo.CONFIG_ORIENTATION;
import static android.content.pm.ActivityInfo.CONFIG_SCREEN_SIZE;
import static android.content.pm.ActivityInfo.CONFIG_UI_MODE;
import static android.view.accessibility.AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED;

import static com.android.launcher3.AbstractFloatingView.TYPE_ALL;
@@ -1103,7 +1104,11 @@ public class Launcher extends StatefulActivity<LauncherState> implements Launche
        int stateOrdinal = savedState.getInt(RUNTIME_STATE, NORMAL.ordinal);
        LauncherState[] stateValues = LauncherState.values();
        LauncherState state = stateValues[stateOrdinal];
        if (!state.shouldDisableRestore()) {

        NonConfigInstance lastInstance = (NonConfigInstance) getLastNonConfigurationInstance();
        boolean forceRestore = lastInstance != null
                && (lastInstance.config.diff(mOldConfig) & CONFIG_UI_MODE) != 0;
        if (forceRestore || !state.shouldDisableRestore()) {
            mStateManager.goToState(state, false /* animated */);
        }

@@ -1343,6 +1348,13 @@ public class Launcher extends StatefulActivity<LauncherState> implements Launche
        closeContextMenu();
    }

    @Override
    public Object onRetainNonConfigurationInstance() {
        NonConfigInstance instance = new NonConfigInstance();
        instance.config = new Configuration(mOldConfig);
        return instance;
    }

    public AllAppsTransitionController getAllAppsController() {
        return mAllAppsController;
    }
@@ -2745,4 +2757,8 @@ public class Launcher extends StatefulActivity<LauncherState> implements Launche

        void onLauncherResume();
    }

    private static class NonConfigInstance {
        public Configuration config;
    }
}
+3 −1
Original line number Diff line number Diff line
@@ -121,7 +121,9 @@ public abstract class StatefulActivity<STATE_TYPE extends BaseState<STATE_TYPE>>
        final int origDragLayerChildCount = dragLayer.getChildCount();
        super.onStop();

        if (!isChangingConfigurations()) {
            getStateManager().moveToRestState();
        }

        // Workaround for b/78520668, explicitly trim memory once UI is hidden
        onTrimMemory(TRIM_MEMORY_UI_HIDDEN);