diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 1df91d95357d7..37247b0ee65ed 100755 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -2102,4 +2102,7 @@ false + + + false diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 14b3711476112..afa67b7b1636c 100755 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -282,6 +282,7 @@ + diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index aef906794a56c..e9df96bc6bf01 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -340,6 +340,7 @@ public class WindowManagerService extends IWindowManager.Stub final boolean mHasPermanentDpad; final long mDrawLockTimeoutMillis; + final boolean mAllowAnimationsInLowPowerMode; final boolean mAllowBootMessages; @@ -844,6 +845,8 @@ public class WindowManagerService extends IWindowManager.Stub com.android.internal.R.bool.config_defaultInTouchMode); mDrawLockTimeoutMillis = context.getResources().getInteger( com.android.internal.R.integer.config_drawLockTimeoutMillis); + mAllowAnimationsInLowPowerMode = context.getResources().getBoolean( + com.android.internal.R.bool.config_allowAnimationsInLowPowerMode); mInputManager = inputManager; // Must be before createDisplayContentLocked. mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class); mDisplaySettings = new DisplaySettings(); @@ -869,7 +872,7 @@ public class WindowManagerService extends IWindowManager.Stub @Override public void onLowPowerModeChanged(boolean enabled) { synchronized (mWindowMap) { - if (mAnimationsDisabled != enabled) { + if (mAnimationsDisabled != enabled && !mAllowAnimationsInLowPowerMode) { mAnimationsDisabled = enabled; dispatchNewAnimatorScaleLocked(null); }