summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jorim Jaggi <jjaggi@google.com> 2018-04-20 22:32:59 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2018-04-20 22:32:59 +0000
commita93ab56ed802f320cbf1ac9452cae75acbef47c3 (patch)
tree541db406d10aca5f17fcdec845a0a663dd8c1e50
parent46e58e1b4086aa0e3eb62f9cdae0eefaea08943f (diff)
parent0a1523de3ec3b5662e4dc8148bcaa1b443809caa (diff)
Merge "Fix issue with translucent animations" into pi-dev
-rw-r--r--core/res/res/values/symbols.xml2
-rw-r--r--services/core/java/com/android/server/wm/AppTransition.java31
-rw-r--r--services/core/java/com/android/server/wm/WindowStateAnimator.java3
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,