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

Commit 3570bb2f authored by Wei Sheng Shih's avatar Wei Sheng Shih Committed by Android (Google) Code Review
Browse files

Merge "Re-order preferred starting window type."

parents 4d1f4beb 7d970c6f
Loading
Loading
Loading
Loading
+20 −13
Original line number Diff line number Diff line
@@ -75,17 +75,13 @@ public class PhoneStartingWindowTypeAlgorithm implements StartingWindowTypeAlgor
        }

        if (!topIsHome) {
            if (!processRunning
                    || newTask
                    || (taskSwitch && (!activityCreated || !activityDrawn))) {
                return useEmptySplashScreen
                        ? STARTING_WINDOW_TYPE_EMPTY_SPLASH_SCREEN
                        : legacySplashScreen
                                ? STARTING_WINDOW_TYPE_LEGACY_SPLASH_SCREEN
                                : STARTING_WINDOW_TYPE_SPLASH_SCREEN;
            if (!processRunning || newTask || (taskSwitch && !activityCreated)) {
                return getSplashscreenType(useEmptySplashScreen, legacySplashScreen);
            }
        }
        if (taskSwitch && allowTaskSnapshot) {

        if (taskSwitch) {
            if (allowTaskSnapshot) {
                if (isSnapshotCompatible(windowInfo)) {
                    return STARTING_WINDOW_TYPE_SNAPSHOT;
                }
@@ -93,9 +89,20 @@ public class PhoneStartingWindowTypeAlgorithm implements StartingWindowTypeAlgor
                    return STARTING_WINDOW_TYPE_EMPTY_SPLASH_SCREEN;
                }
            }
            if (!activityDrawn && !topIsHome) {
                return getSplashscreenType(useEmptySplashScreen, legacySplashScreen);
            }
        }
        return STARTING_WINDOW_TYPE_NONE;
    }

    private static int getSplashscreenType(boolean emptySplashScreen, boolean legacySplashScreen) {
        return emptySplashScreen
                ? STARTING_WINDOW_TYPE_EMPTY_SPLASH_SCREEN
                : legacySplashScreen
                        ? STARTING_WINDOW_TYPE_LEGACY_SPLASH_SCREEN
                        : STARTING_WINDOW_TYPE_SPLASH_SCREEN;
    }

    /**
     * Returns {@code true} if the task snapshot is compatible with this activity (at least the
+18 −16
Original line number Diff line number Diff line
@@ -2131,21 +2131,26 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
    private int getStartingWindowType(boolean newTask, boolean taskSwitch, boolean processRunning,
            boolean allowTaskSnapshot, boolean activityCreated, boolean activityAllDrawn,
            TaskSnapshot snapshot) {
        if ((newTask || !processRunning || (taskSwitch && !activityCreated)
                || (taskSwitch && !activityAllDrawn)) && !isActivityTypeHome()) {
        final boolean isActivityHome = isActivityTypeHome();
        if ((newTask || !processRunning || (taskSwitch && !activityCreated))
                && !isActivityHome) {
            return STARTING_WINDOW_TYPE_SPLASH_SCREEN;
        } else if (taskSwitch && allowTaskSnapshot) {
        }
        if (taskSwitch) {
            if (allowTaskSnapshot) {
                if (isSnapshotCompatible(snapshot)) {
                    return STARTING_WINDOW_TYPE_SNAPSHOT;
                }
            if (!isActivityTypeHome()) {
                if (!isActivityHome) {
                    return STARTING_WINDOW_TYPE_SPLASH_SCREEN;
                }
            return STARTING_WINDOW_TYPE_NONE;
        } else {
            return STARTING_WINDOW_TYPE_NONE;
            }
            if (!activityAllDrawn && !isActivityHome) {
                return STARTING_WINDOW_TYPE_SPLASH_SCREEN;
            }
        }
        return STARTING_WINDOW_TYPE_NONE;
    }

    /**
     * Returns {@code true} if the task snapshot is compatible with this activity (at least the
@@ -6433,14 +6438,11 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
            return sourceRecord.mSplashScreenStyleEmpty;
        }

        // If this activity was launched from a system surface, never use an empty splash screen
        // Need to check sourceRecord before in case this activity is launched from service.
        if (launchedFromSystemSurface()) {
            return false;
        }

        // If this activity was launched from a system surface for first start, never use an empty
        // splash screen. Need to check sourceRecord before in case this activity is launched from
        // service.
        // Otherwise use empty.
        return true;
        return !startActivity || !launchedFromSystemSurface();
    }

    private int getSplashscreenTheme() {