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

Commit ba8b4d78 authored by Alex Chau's avatar Alex Chau Committed by Android (Google) Code Review
Browse files

Merge "Reland "Handle uiMode changes in QuickstepLauncher"" into main

parents ab8fa5e6 007abe80
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@
            android:stateNotNeeded="true"
            android:windowSoftInputMode="adjustPan"
            android:screenOrientation="unspecified"
            android:configChanges="keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenSize|screenLayout|smallestScreenSize"
            android:configChanges="keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
            android:resizeableActivity="true"
            android:resumeWhilePausing="true"
            android:taskAffinity=""
+6 −2
Original line number Diff line number Diff line
@@ -80,10 +80,14 @@ public abstract class BaseDraggingActivity extends BaseActivity
        updateTheme();
    }

    protected void updateTheme() {
    private void updateTheme() {
        if (mThemeRes != Themes.getActivityThemeRes(this)) {
            recreate();
            recreateToUpdateTheme();
        }
    }

    protected void recreateToUpdateTheme() {
        recreate();
    }

    @Override
+13 −1
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ import static com.android.launcher3.LauncherConstants.SavedInstanceKeys.RUNTIME_
import static com.android.launcher3.LauncherConstants.SavedInstanceKeys.RUNTIME_STATE_PENDING_ACTIVITY_RESULT;
import static com.android.launcher3.LauncherConstants.SavedInstanceKeys.RUNTIME_STATE_PENDING_REQUEST_ARGS;
import static com.android.launcher3.LauncherConstants.SavedInstanceKeys.RUNTIME_STATE_PENDING_REQUEST_CODE;
import static com.android.launcher3.LauncherConstants.SavedInstanceKeys.RUNTIME_STATE_RECREATE_TO_UPDATE_THEME;
import static com.android.launcher3.LauncherConstants.SavedInstanceKeys.RUNTIME_STATE_WIDGET_PANEL;
import static com.android.launcher3.LauncherConstants.TraceEvents.COLD_STARTUP_TRACE_COOKIE;
import static com.android.launcher3.LauncherConstants.TraceEvents.COLD_STARTUP_TRACE_METHOD_NAME;
@@ -422,6 +423,8 @@ public class Launcher extends StatefulActivity<LauncherState>
    private final SettingsCache.OnChangeListener mNaturalScrollingChangedListener =
            enabled -> mIsNaturalScrollingEnabled = enabled;

    private boolean mRecreateToUpdateTheme = false;

    public static Launcher getLauncher(Context context) {
        return fromContext(context);
    }
@@ -1352,7 +1355,8 @@ public class Launcher extends StatefulActivity<LauncherState>

        NonConfigInstance lastInstance = (NonConfigInstance) getLastNonConfigurationInstance();
        boolean forceRestore = lastInstance != null
                && (lastInstance.config.diff(mOldConfig) & CONFIG_UI_MODE) != 0;
                && ((lastInstance.config.diff(mOldConfig) & CONFIG_UI_MODE) != 0
                || savedState.getBoolean(RUNTIME_STATE_RECREATE_TO_UPDATE_THEME));
        if (forceRestore || !state.shouldDisableRestore()) {
            mStateManager.goToState(state, false /* animated */);
        }
@@ -1746,6 +1750,12 @@ public class Launcher extends StatefulActivity<LauncherState>
        }
    }

    @Override
    protected void recreateToUpdateTheme() {
        mRecreateToUpdateTheme = true;
        super.recreateToUpdateTheme();
    }

    @Override
    public void onRestoreInstanceState(Bundle state) {
        super.onRestoreInstanceState(state);
@@ -1791,6 +1801,8 @@ public class Launcher extends StatefulActivity<LauncherState>
            outState.putParcelable(RUNTIME_STATE_PENDING_ACTIVITY_RESULT, mPendingActivityResult);
        }

        outState.putBoolean(RUNTIME_STATE_RECREATE_TO_UPDATE_THEME, mRecreateToUpdateTheme);

        super.onSaveInstanceState(outState);
    }

+3 −0
Original line number Diff line number Diff line
@@ -67,5 +67,8 @@ public class LauncherConstants {
        static final String RUNTIME_STATE_WIDGET_PANEL = "launcher.widget_panel";
        // Type int[]
        static final String RUNTIME_STATE_CURRENT_SCREEN_IDS = "launcher.current_screen_ids";
        // Type: boolean
        static final String RUNTIME_STATE_RECREATE_TO_UPDATE_THEME =
                "launcher.recreate_to_update_theme";
    }
}