Apply splash screen and transfer starting window to all activities

This fixes a CTS failure and lack of splash screen for some activities.

When removing the global lock in AppWindowToken in change 1ee84ea,
transferStartingWindow and creating splash screen was accidentally
wrapped by if(theme != 0) by mistake. The error will prevent simple app
from showing splash screen.

This patch fixes the error and the function is now aligned with the old
AppWindowContainerController#addStartingWindow.

Test: atest ActivityMetricsLoggerTests
Test: Test app in b/120968158 will show the splash screen with correct
      log information.
Bug: 120968158
Bug: 120779200

Change-Id: I34bf01874eecc3c0402d83d922445cd48ca1b39a
This commit is contained in:
Yunfan Chen
2018-12-18 16:46:32 -08:00
parent a03f107c30
commit 8a8c0ed087

View File

@@ -1837,23 +1837,23 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
return false;
}
}
if (transferStartingWindow(transferFrom)) {
return true;
}
// There is no existing starting window, and we don't want to create a splash screen, so
// that's it!
if (type != STARTING_WINDOW_TYPE_SPLASH_SCREEN) {
return false;
}
if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Creating SplashScreenStartingData");
startingData = new SplashScreenStartingData(mWmService, pkg,
theme, compatInfo, nonLocalizedLabel, labelRes, icon, logo, windowFlags,
getMergedOverrideConfiguration());
scheduleAddStartingWindow();
}
if (transferStartingWindow(transferFrom)) {
return true;
}
// There is no existing starting window, and we don't want to create a splash screen, so
// that's it!
if (type != STARTING_WINDOW_TYPE_SPLASH_SCREEN) {
return false;
}
if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Creating SplashScreenStartingData");
startingData = new SplashScreenStartingData(mWmService, pkg,
theme, compatInfo, nonLocalizedLabel, labelRes, icon, logo, windowFlags,
getMergedOverrideConfiguration());
scheduleAddStartingWindow();
return true;
}