diff options
author | 2018-04-20 22:32:59 +0000 | |
---|---|---|
committer | 2018-04-20 22:32:59 +0000 | |
commit | a93ab56ed802f320cbf1ac9452cae75acbef47c3 (patch) | |
tree | 541db406d10aca5f17fcdec845a0a663dd8c1e50 | |
parent | 46e58e1b4086aa0e3eb62f9cdae0eefaea08943f (diff) | |
parent | 0a1523de3ec3b5662e4dc8148bcaa1b443809caa (diff) |
Merge "Fix issue with translucent animations" into pi-dev
-rw-r--r-- | core/res/res/values/symbols.xml | 2 | ||||
-rw-r--r-- | services/core/java/com/android/server/wm/AppTransition.java | 31 | ||||
-rw-r--r-- | services/core/java/com/android/server/wm/WindowStateAnimator.java | 3 |
3 files changed, 19 insertions, 17 deletions
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 0de2cb0d13ae..590f98800874 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -1623,6 +1623,8 @@ <java-symbol type="anim" name="task_open_enter_cross_profile_apps" /> <java-symbol type="anim" name="activity_translucent_open_enter" /> <java-symbol type="anim" name="activity_translucent_close_exit" /> + <java-symbol type="anim" name="activity_open_enter" /> + <java-symbol type="anim" name="activity_close_exit" /> <java-symbol type="array" name="config_autoRotationTiltTolerance" /> <java-symbol type="array" name="config_keyboardTapVibePattern" /> diff --git a/services/core/java/com/android/server/wm/AppTransition.java b/services/core/java/com/android/server/wm/AppTransition.java index a24ac219bce1..0dc06b27a605 100644 --- a/services/core/java/com/android/server/wm/AppTransition.java +++ b/services/core/java/com/android/server/wm/AppTransition.java @@ -554,7 +554,7 @@ public class AppTransition implements Dump { return null; } - Animation loadAnimationAttr(LayoutParams lp, int animAttr) { + Animation loadAnimationAttr(LayoutParams lp, int animAttr, int transit) { int anim = 0; Context context = mContext; if (animAttr >= 0) { @@ -564,6 +564,7 @@ public class AppTransition implements Dump { anim = ent.array.getResourceId(animAttr, 0); } } + anim = updateToTranslucentAnimIfNeeded(anim, transit); if (anim != 0) { return AnimationUtils.loadAnimation(context, anim); } @@ -598,6 +599,16 @@ public class AppTransition implements Dump { return null; } + private int updateToTranslucentAnimIfNeeded(int anim, int transit) { + if (transit == TRANSIT_TRANSLUCENT_ACTIVITY_OPEN && anim == R.anim.activity_open_enter) { + return R.anim.activity_translucent_open_enter; + } + if (transit == TRANSIT_TRANSLUCENT_ACTIVITY_CLOSE && anim == R.anim.activity_close_exit) { + return R.anim.activity_translucent_close_exit; + } + return anim; + } + /** * Compute the pivot point for an animation that is scaling from a small * rect on screen to a larger rect. The pivot point varies depending on @@ -1664,29 +1675,17 @@ public class AppTransition implements Dump { "applyAnimation NEXT_TRANSIT_TYPE_OPEN_CROSS_PROFILE_APPS:" + " anim=" + a + " transit=" + appTransitionToString(transit) + " isEntrance=true" + " Callers=" + Debug.getCallers(3)); - } else if (transit == TRANSIT_TRANSLUCENT_ACTIVITY_OPEN && enter) { - a = loadAnimationRes("android", - com.android.internal.R.anim.activity_translucent_open_enter); - Slog.v(TAG, - "applyAnimation TRANSIT_TRANSLUCENT_ACTIVITY_OPEN:" - + " anim=" + a + " transit=" + appTransitionToString(transit) - + " isEntrance=true" + " Callers=" + Debug.getCallers(3)); - } else if (transit == TRANSIT_TRANSLUCENT_ACTIVITY_CLOSE && !enter) { - a = loadAnimationRes("android", - com.android.internal.R.anim.activity_translucent_close_exit); - Slog.v(TAG, - "applyAnimation TRANSIT_TRANSLUCENT_ACTIVITY_CLOSE:" - + " anim=" + a + " transit=" + appTransitionToString(transit) - + " isEntrance=false" + " Callers=" + Debug.getCallers(3)); } else { int animAttr = 0; switch (transit) { case TRANSIT_ACTIVITY_OPEN: + case TRANSIT_TRANSLUCENT_ACTIVITY_OPEN: animAttr = enter ? WindowAnimation_activityOpenEnterAnimation : WindowAnimation_activityOpenExitAnimation; break; case TRANSIT_ACTIVITY_CLOSE: + case TRANSIT_TRANSLUCENT_ACTIVITY_CLOSE: animAttr = enter ? WindowAnimation_activityCloseEnterAnimation : WindowAnimation_activityCloseExitAnimation; @@ -1737,7 +1736,7 @@ public class AppTransition implements Dump { ? WindowAnimation_launchTaskBehindSourceAnimation : WindowAnimation_launchTaskBehindTargetAnimation; } - a = animAttr != 0 ? loadAnimationAttr(lp, animAttr) : null; + a = animAttr != 0 ? loadAnimationAttr(lp, animAttr, transit) : null; if (DEBUG_APP_TRANSITIONS || DEBUG_ANIM) Slog.v(TAG, "applyAnimation:" + " anim=" + a diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java index 195274ae27aa..a3428f0bb50e 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -23,6 +23,7 @@ import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_IS_ROUNDED_CO import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING; import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD; import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER; +import static android.view.WindowManager.TRANSIT_NONE; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_ANIM; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER; import static com.android.server.wm.DragResizeMode.DRAG_RESIZE_MODE_FREEFORM; @@ -1360,7 +1361,7 @@ class WindowStateAnimator { break; } if (attr >= 0) { - a = mService.mAppTransition.loadAnimationAttr(mWin.mAttrs, attr); + a = mService.mAppTransition.loadAnimationAttr(mWin.mAttrs, attr, TRANSIT_NONE); } } if (DEBUG_ANIM) Slog.v(TAG, |