Merge "Re-order preferred starting window type."
This commit is contained in:
committed by
Android (Google) Code Review
commit
3570bb2fe5
@@ -75,27 +75,34 @@ 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 (isSnapshotCompatible(windowInfo)) {
|
||||
return STARTING_WINDOW_TYPE_SNAPSHOT;
|
||||
|
||||
if (taskSwitch) {
|
||||
if (allowTaskSnapshot) {
|
||||
if (isSnapshotCompatible(windowInfo)) {
|
||||
return STARTING_WINDOW_TYPE_SNAPSHOT;
|
||||
}
|
||||
if (!topIsHome) {
|
||||
return STARTING_WINDOW_TYPE_EMPTY_SPLASH_SCREEN;
|
||||
}
|
||||
}
|
||||
if (!topIsHome) {
|
||||
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
|
||||
|
||||
@@ -2131,20 +2131,25 @@ 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 (isSnapshotCompatible(snapshot)) {
|
||||
return STARTING_WINDOW_TYPE_SNAPSHOT;
|
||||
}
|
||||
if (taskSwitch) {
|
||||
if (allowTaskSnapshot) {
|
||||
if (isSnapshotCompatible(snapshot)) {
|
||||
return STARTING_WINDOW_TYPE_SNAPSHOT;
|
||||
}
|
||||
if (!isActivityHome) {
|
||||
return STARTING_WINDOW_TYPE_SPLASH_SCREEN;
|
||||
}
|
||||
}
|
||||
if (!isActivityTypeHome()) {
|
||||
if (!activityAllDrawn && !isActivityHome) {
|
||||
return STARTING_WINDOW_TYPE_SPLASH_SCREEN;
|
||||
}
|
||||
return STARTING_WINDOW_TYPE_NONE;
|
||||
} else {
|
||||
return STARTING_WINDOW_TYPE_NONE;
|
||||
}
|
||||
return STARTING_WINDOW_TYPE_NONE;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user