Loading core/java/android/view/animation/Animation.java +14 −7 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.view.animation; import android.annotation.AnimRes; import android.annotation.ColorInt; import android.annotation.InterpolatorRes; import android.app.ActivityThread; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.res.TypedArray; Loading Loading @@ -258,8 +259,6 @@ public abstract class Animation implements Cloneable { setZAdjustment(a.getInt(com.android.internal.R.styleable.Animation_zAdjustment, ZORDER_NORMAL)); setBackgroundColor(a.getInt(com.android.internal.R.styleable.Animation_background, 0)); setDetachWallpaper( a.getBoolean(com.android.internal.R.styleable.Animation_detachWallpaper, false)); setShowWallpaper( Loading @@ -271,6 +270,15 @@ public abstract class Animation implements Cloneable { a.recycle(); Context uiContext = ActivityThread.currentActivityThread().getSystemUiContext(); TypedArray uiStyledAttrs = uiContext .obtainStyledAttributes(attrs, com.android.internal.R.styleable.Animation); setBackgroundColor( uiStyledAttrs.getColor(com.android.internal.R.styleable.Animation_background, 0)); uiStyledAttrs.recycle(); if (resID > 0) { setInterpolator(context, resID); } Loading Loading @@ -632,16 +640,15 @@ public abstract class Animation implements Cloneable { } /** * Set background behind animation. * Set background behind an animation. * * @param bg The background color. If 0, no background. Currently must * be black, with any desired alpha level. * @param bg The background color. If 0, no background. * * @deprecated None of window animations are running with background color. */ @Deprecated public void setBackgroundColor(@ColorInt int bg) { // The background color is not needed any more, do nothing. mBackgroundColor = bg; } /** Loading Loading @@ -803,7 +810,7 @@ public abstract class Animation implements Cloneable { @Deprecated @ColorInt public int getBackgroundColor() { return 0; return mBackgroundColor; } /** Loading core/res/res/values/attrs.xml +3 −4 Original line number Diff line number Diff line Loading @@ -6822,9 +6822,8 @@ content for the duration of the animation. --> <enum name="bottom" value="-1" /> </attr> <!-- Special background behind animation. Only for use with window animations. Can only be a color, and only black. If 0, the default, there is no background. --> <!-- Special background behind animation. Only for use with task animations. If 0, the default, there is no background. --> <attr name="background" /> <!-- Special option for window animations: if this window is on top of a wallpaper, don't animate the wallpaper with it. --> Loading services/core/java/com/android/server/wm/AnimationAdapter.java +11 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.server.wm; import android.annotation.ColorInt; import android.util.proto.ProtoOutputStream; import android.view.SurfaceControl; import android.view.SurfaceControl.Transaction; Loading Loading @@ -106,4 +107,14 @@ interface AnimationAdapter { default boolean shouldDeferAnimationFinish(Runnable endDeferFinishCallback) { return false; } /** * Gets the background color to show behind an animation. * * @return The background color to show behind an animation (0 for no background color). */ @ColorInt default int getBackgroundColor() { return 0; } } services/core/java/com/android/server/wm/LocalAnimationAdapter.java +11 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.server.wm; import static com.android.server.wm.AnimationAdapterProto.LOCAL; import static com.android.server.wm.LocalAnimationAdapterProto.ANIMATION_SPEC; import android.annotation.ColorInt; import android.os.SystemClock; import android.util.proto.ProtoOutputStream; import android.view.SurfaceControl; Loading Loading @@ -71,6 +72,12 @@ class LocalAnimationAdapter implements AnimationAdapter { return mSpec.calculateStatusBarTransitionStartTime(); } @Override @ColorInt public int getBackgroundColor() { return mSpec.getBackgroundColor(); } @Override public void dump(PrintWriter pw, String prefix) { mSpec.dump(pw, prefix); Loading Loading @@ -149,5 +156,9 @@ class LocalAnimationAdapter implements AnimationAdapter { } void dumpDebugInner(ProtoOutputStream proto); default int getBackgroundColor() { return 0; } } } services/core/java/com/android/server/wm/WindowAnimationSpec.java +7 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static com.android.server.wm.AnimationSpecProto.WINDOW; import static com.android.server.wm.WindowAnimationSpecProto.ANIMATION; import static com.android.server.wm.WindowStateAnimator.ROOT_TASK_CLIP_NONE; import android.annotation.ColorInt; import android.graphics.Point; import android.graphics.Rect; import android.os.SystemClock; Loading Loading @@ -84,6 +85,12 @@ public class WindowAnimationSpec implements AnimationSpec { return mAnimation.computeDurationHint(); } @Override @ColorInt public int getBackgroundColor() { return mAnimation.getBackgroundColor(); } @Override public void apply(Transaction t, SurfaceControl leash, long currentPlayTime) { final TmpValues tmp = mThreadLocalTmps.get(); Loading Loading
core/java/android/view/animation/Animation.java +14 −7 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.view.animation; import android.annotation.AnimRes; import android.annotation.ColorInt; import android.annotation.InterpolatorRes; import android.app.ActivityThread; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.res.TypedArray; Loading Loading @@ -258,8 +259,6 @@ public abstract class Animation implements Cloneable { setZAdjustment(a.getInt(com.android.internal.R.styleable.Animation_zAdjustment, ZORDER_NORMAL)); setBackgroundColor(a.getInt(com.android.internal.R.styleable.Animation_background, 0)); setDetachWallpaper( a.getBoolean(com.android.internal.R.styleable.Animation_detachWallpaper, false)); setShowWallpaper( Loading @@ -271,6 +270,15 @@ public abstract class Animation implements Cloneable { a.recycle(); Context uiContext = ActivityThread.currentActivityThread().getSystemUiContext(); TypedArray uiStyledAttrs = uiContext .obtainStyledAttributes(attrs, com.android.internal.R.styleable.Animation); setBackgroundColor( uiStyledAttrs.getColor(com.android.internal.R.styleable.Animation_background, 0)); uiStyledAttrs.recycle(); if (resID > 0) { setInterpolator(context, resID); } Loading Loading @@ -632,16 +640,15 @@ public abstract class Animation implements Cloneable { } /** * Set background behind animation. * Set background behind an animation. * * @param bg The background color. If 0, no background. Currently must * be black, with any desired alpha level. * @param bg The background color. If 0, no background. * * @deprecated None of window animations are running with background color. */ @Deprecated public void setBackgroundColor(@ColorInt int bg) { // The background color is not needed any more, do nothing. mBackgroundColor = bg; } /** Loading Loading @@ -803,7 +810,7 @@ public abstract class Animation implements Cloneable { @Deprecated @ColorInt public int getBackgroundColor() { return 0; return mBackgroundColor; } /** Loading
core/res/res/values/attrs.xml +3 −4 Original line number Diff line number Diff line Loading @@ -6822,9 +6822,8 @@ content for the duration of the animation. --> <enum name="bottom" value="-1" /> </attr> <!-- Special background behind animation. Only for use with window animations. Can only be a color, and only black. If 0, the default, there is no background. --> <!-- Special background behind animation. Only for use with task animations. If 0, the default, there is no background. --> <attr name="background" /> <!-- Special option for window animations: if this window is on top of a wallpaper, don't animate the wallpaper with it. --> Loading
services/core/java/com/android/server/wm/AnimationAdapter.java +11 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.server.wm; import android.annotation.ColorInt; import android.util.proto.ProtoOutputStream; import android.view.SurfaceControl; import android.view.SurfaceControl.Transaction; Loading Loading @@ -106,4 +107,14 @@ interface AnimationAdapter { default boolean shouldDeferAnimationFinish(Runnable endDeferFinishCallback) { return false; } /** * Gets the background color to show behind an animation. * * @return The background color to show behind an animation (0 for no background color). */ @ColorInt default int getBackgroundColor() { return 0; } }
services/core/java/com/android/server/wm/LocalAnimationAdapter.java +11 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.server.wm; import static com.android.server.wm.AnimationAdapterProto.LOCAL; import static com.android.server.wm.LocalAnimationAdapterProto.ANIMATION_SPEC; import android.annotation.ColorInt; import android.os.SystemClock; import android.util.proto.ProtoOutputStream; import android.view.SurfaceControl; Loading Loading @@ -71,6 +72,12 @@ class LocalAnimationAdapter implements AnimationAdapter { return mSpec.calculateStatusBarTransitionStartTime(); } @Override @ColorInt public int getBackgroundColor() { return mSpec.getBackgroundColor(); } @Override public void dump(PrintWriter pw, String prefix) { mSpec.dump(pw, prefix); Loading Loading @@ -149,5 +156,9 @@ class LocalAnimationAdapter implements AnimationAdapter { } void dumpDebugInner(ProtoOutputStream proto); default int getBackgroundColor() { return 0; } } }
services/core/java/com/android/server/wm/WindowAnimationSpec.java +7 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static com.android.server.wm.AnimationSpecProto.WINDOW; import static com.android.server.wm.WindowAnimationSpecProto.ANIMATION; import static com.android.server.wm.WindowStateAnimator.ROOT_TASK_CLIP_NONE; import android.annotation.ColorInt; import android.graphics.Point; import android.graphics.Rect; import android.os.SystemClock; Loading Loading @@ -84,6 +85,12 @@ public class WindowAnimationSpec implements AnimationSpec { return mAnimation.computeDurationHint(); } @Override @ColorInt public int getBackgroundColor() { return mAnimation.getBackgroundColor(); } @Override public void apply(Transaction t, SurfaceControl leash, long currentPlayTime) { final TmpValues tmp = mThreadLocalTmps.get(); Loading