diff options
| author | 2017-11-10 02:10:39 +0000 | |
|---|---|---|
| committer | 2017-11-10 02:10:39 +0000 | |
| commit | bb1c884939829242ac244596db2febbb0f08d56e (patch) | |
| tree | bab3f38efe1da8920780c0932530774e2cc62eca | |
| parent | 29fd5bac01b3894f7354123545fd3427d1dc746f (diff) | |
| parent | ebf50a4903c39fdb00b0b1f8219031e5d2365ed6 (diff) | |
Merge "Add config flag to disable transition animation."
| -rw-r--r-- | core/res/res/values/config.xml | 3 | ||||
| -rw-r--r-- | core/res/res/values/symbols.xml | 1 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowManagerService.java | 12 |
3 files changed, 16 insertions, 0 deletions
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 7cc43a7b2715..1879ab719bb7 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -123,6 +123,9 @@ be sent during a change to the audio output device. --> <bool name="config_sendAudioBecomingNoisy">true</bool> + <!-- Flag to disable all transition animations --> + <bool name="config_disableTransitionAnimation">false</bool> + <!-- The duration (in milliseconds) of a short animation. --> <integer name="config_shortAnimTime">200</integer> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index d630839db81d..e476d893b900 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -252,6 +252,7 @@ <java-symbol type="bool" name="config_bluetooth_hfp_inband_ringing_support" /> <java-symbol type="bool" name="config_cellBroadcastAppLinks" /> <java-symbol type="bool" name="config_duplicate_port_omadm_wappush" /> + <java-symbol type="bool" name="config_disableTransitionAnimation" /> <java-symbol type="bool" name="config_enableAutoPowerModes" /> <java-symbol type="integer" name="config_autoPowerModeThresholdAngle" /> <java-symbol type="integer" name="config_autoPowerModeAnyMotionSensor" /> diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 35870b1a4904..06527675349a 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -569,6 +569,8 @@ public class WindowManagerService extends IWindowManager.Stub boolean mForceResizableTasks = false; boolean mSupportsPictureInPicture = false; + private boolean mDisableTransitionAnimation = false; + int getDragLayerLocked() { return mPolicy.getWindowLayerFromTypeLw(TYPE_DRAG) * TYPE_LAYER_MULTIPLIER + TYPE_LAYER_OFFSET; } @@ -966,6 +968,8 @@ public class WindowManagerService extends IWindowManager.Stub com.android.internal.R.bool.config_allowAnimationsInLowPowerMode); mMaxUiWidth = context.getResources().getInteger( com.android.internal.R.integer.config_maxUiWidth); + mDisableTransitionAnimation = context.getResources().getBoolean( + com.android.internal.R.bool.config_disableTransitionAnimation); mInputManager = inputManager; // Must be before createDisplayContentLocked. mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class); mDisplaySettings = new DisplaySettings(); @@ -2279,6 +2283,14 @@ public class WindowManagerService extends IWindowManager.Stub boolean applyAnimationLocked(AppWindowToken atoken, WindowManager.LayoutParams lp, int transit, boolean enter, boolean isVoiceInteraction) { + if (mDisableTransitionAnimation) { + if (DEBUG_APP_TRANSITIONS || DEBUG_ANIM) { + Slog.v(TAG_WM, + "applyAnimation: transition animation is disabled. atoken=" + atoken); + } + atoken.mAppAnimator.clearAnimation(); + return false; + } // Only apply an animation if the display isn't frozen. If it is // frozen, there is no reason to animate and it can cause strange // artifacts when we unfreeze the display if some different animation |