summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2019-01-03 23:32:01 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-01-03 23:32:01 +0000
commit05c48793f4dc8ccd7828e4d88578e87b0f64abec (patch)
tree3f23d269fa83531de87687f4aa070fd6775ae83a
parent709797647dc043f9242e15b37882213d489ff4e8 (diff)
parent58b47f10307b9df67b5a9b54127a21a944c7795b (diff)
Merge "Replace snapshot starting windows w/ splashscreen"
-rw-r--r--services/core/java/com/android/server/wm/AppWindowToken.java5
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerService.java8
2 files changed, 13 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java
index d8b2b5200f0c..a5341ca11784 100644
--- a/services/core/java/com/android/server/wm/AppWindowToken.java
+++ b/services/core/java/com/android/server/wm/AppWindowToken.java
@@ -1949,6 +1949,11 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
} else if (newTask || !processRunning || (taskSwitch && !activityCreated)) {
return STARTING_WINDOW_TYPE_SPLASH_SCREEN;
} else if (taskSwitch && allowTaskSnapshot) {
+ if (mWmService.mLowRamTaskSnapshots) {
+ // For low RAM devices, we use the splash screen starting window instead of the
+ // task snapshot starting window.
+ return STARTING_WINDOW_TYPE_SPLASH_SCREEN;
+ }
return snapshot == null ? STARTING_WINDOW_TYPE_NONE
: snapshotOrientationSameAsTask(snapshot) || fromRecents
? STARTING_WINDOW_TYPE_SNAPSHOT : STARTING_WINDOW_TYPE_SPLASH_SCREEN;
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index b6a4a51c41f2..f5f55e2ebf73 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -433,6 +433,12 @@ public class WindowManagerService extends IWindowManager.Stub
final long mDrawLockTimeoutMillis;
final boolean mAllowAnimationsInLowPowerMode;
+ /**
+ * Use very low resolution task snapshots. Replaces task snapshot starting windows with
+ * splashscreen starting windows. Used on low RAM devices to save memory.
+ */
+ final boolean mLowRamTaskSnapshots;
+
final boolean mAllowBootMessages;
final boolean mLimitedAlphaCompositing;
@@ -949,6 +955,8 @@ public class WindowManagerService extends IWindowManager.Stub
com.android.internal.R.bool.config_disableTransitionAnimation);
mPerDisplayFocusEnabled = context.getResources().getBoolean(
com.android.internal.R.bool.config_perDisplayFocusEnabled);
+ mLowRamTaskSnapshots = context.getResources().getBoolean(
+ com.android.internal.R.bool.config_lowRamTaskSnapshotsAndRecents);
mInputManager = inputManager; // Must be before createDisplayContentLocked.
mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class);
mDisplayWindowSettings = new DisplayWindowSettings(this);