Loading core/java/android/view/animation/Animation.java +0 −10 Original line number Original line Diff line number Diff line Loading @@ -19,7 +19,6 @@ package android.view.animation; import android.annotation.AnimRes; import android.annotation.AnimRes; import android.annotation.ColorInt; import android.annotation.ColorInt; import android.annotation.InterpolatorRes; import android.annotation.InterpolatorRes; import android.app.ActivityThread; import android.compat.annotation.UnsupportedAppUsage; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.Context; import android.content.res.TypedArray; import android.content.res.TypedArray; Loading Loading @@ -270,15 +269,6 @@ public abstract class Animation implements Cloneable { a.recycle(); 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) { if (resID > 0) { setInterpolator(context, resID); setInterpolator(context, resID); } } Loading services/core/java/com/android/server/wm/WindowContainer.java +24 −10 Original line number Original line Diff line number Diff line Loading @@ -32,6 +32,10 @@ import static android.os.UserHandle.USER_NULL; import static android.view.SurfaceControl.Transaction; import static android.view.SurfaceControl.Transaction; import static android.view.WindowManager.LayoutParams.INVALID_WINDOW_TYPE; import static android.view.WindowManager.LayoutParams.INVALID_WINDOW_TYPE; import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_OLD_TASK_CLOSE; import static android.view.WindowManager.TRANSIT_OLD_TASK_OPEN; import static android.view.WindowManager.TRANSIT_OLD_TASK_TO_BACK; import static android.view.WindowManager.TRANSIT_OLD_TASK_TO_FRONT; import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS; import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS; import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS_ANIM; import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS_ANIM; Loading Loading @@ -61,10 +65,13 @@ import static com.android.server.wm.WindowManagerService.logWithStack; import static com.android.server.wm.WindowStateAnimator.ROOT_TASK_CLIP_AFTER_ANIM; import static com.android.server.wm.WindowStateAnimator.ROOT_TASK_CLIP_AFTER_ANIM; import android.annotation.CallSuper; import android.annotation.CallSuper; import android.annotation.ColorInt; import android.annotation.IntDef; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.Nullable; import android.app.ActivityThread; import android.app.WindowConfiguration; import android.app.WindowConfiguration; import android.content.Context; import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.content.res.Configuration; import android.graphics.Point; import android.graphics.Point; Loading @@ -90,6 +97,7 @@ import android.view.animation.Animation; import android.window.IWindowContainerToken; import android.window.IWindowContainerToken; import android.window.WindowContainerToken; import android.window.WindowContainerToken; import com.android.internal.R; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.protolog.common.ProtoLog; import com.android.internal.protolog.common.ProtoLog; import com.android.internal.util.ToBooleanFunction; import com.android.internal.util.ToBooleanFunction; Loading Loading @@ -2814,24 +2822,23 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< } } TaskDisplayArea taskDisplayArea = getTaskDisplayArea(); TaskDisplayArea taskDisplayArea = getTaskDisplayArea(); int backgroundColor = adapter.getBackgroundColor(); boolean isSettingBackgroundColor = taskDisplayArea != null && isTransitionWithBackgroundColor(transit); boolean shouldSetBackgroundColor = taskDisplayArea != null && backgroundColor != 0; if (isSettingBackgroundColor) { Context uiContext = ActivityThread.currentActivityThread().getSystemUiContext(); @ColorInt int backgroundColor = uiContext.getColor(R.color.overview_background); if (shouldSetBackgroundColor) { taskDisplayArea.setBackgroundColor(backgroundColor); taskDisplayArea.setBackgroundColor(backgroundColor); } } Runnable clearColorBackground = () -> { final Runnable cleanUpCallback = isSettingBackgroundColor if (shouldSetBackgroundColor) { ? taskDisplayArea::clearBackgroundColor : () -> {}; taskDisplayArea.clearBackgroundColor(); } }; startAnimation(getPendingTransaction(), adapter, !isVisible(), startAnimation(getPendingTransaction(), adapter, !isVisible(), ANIMATION_TYPE_APP_TRANSITION, ANIMATION_TYPE_APP_TRANSITION, (type, anim) -> clearColorBackground.run(), (type, anim) -> cleanUpCallback.run(), clearColorBackground); cleanUpCallback); if (adapter.getShowWallpaper()) { if (adapter.getShowWallpaper()) { getDisplayContent().pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER; getDisplayContent().pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER; Loading @@ -2843,6 +2850,13 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< } } } } private boolean isTransitionWithBackgroundColor(@TransitionOldType int transit) { return transit == TRANSIT_OLD_TASK_OPEN || transit == TRANSIT_OLD_TASK_CLOSE || transit == TRANSIT_OLD_TASK_TO_FRONT || transit == TRANSIT_OLD_TASK_TO_BACK; } final SurfaceAnimationRunner getSurfaceAnimationRunner() { final SurfaceAnimationRunner getSurfaceAnimationRunner() { return mWmService.mSurfaceAnimationRunner; return mWmService.mSurfaceAnimationRunner; } } Loading Loading
core/java/android/view/animation/Animation.java +0 −10 Original line number Original line Diff line number Diff line Loading @@ -19,7 +19,6 @@ package android.view.animation; import android.annotation.AnimRes; import android.annotation.AnimRes; import android.annotation.ColorInt; import android.annotation.ColorInt; import android.annotation.InterpolatorRes; import android.annotation.InterpolatorRes; import android.app.ActivityThread; import android.compat.annotation.UnsupportedAppUsage; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.Context; import android.content.res.TypedArray; import android.content.res.TypedArray; Loading Loading @@ -270,15 +269,6 @@ public abstract class Animation implements Cloneable { a.recycle(); 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) { if (resID > 0) { setInterpolator(context, resID); setInterpolator(context, resID); } } Loading
services/core/java/com/android/server/wm/WindowContainer.java +24 −10 Original line number Original line Diff line number Diff line Loading @@ -32,6 +32,10 @@ import static android.os.UserHandle.USER_NULL; import static android.view.SurfaceControl.Transaction; import static android.view.SurfaceControl.Transaction; import static android.view.WindowManager.LayoutParams.INVALID_WINDOW_TYPE; import static android.view.WindowManager.LayoutParams.INVALID_WINDOW_TYPE; import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_OLD_TASK_CLOSE; import static android.view.WindowManager.TRANSIT_OLD_TASK_OPEN; import static android.view.WindowManager.TRANSIT_OLD_TASK_TO_BACK; import static android.view.WindowManager.TRANSIT_OLD_TASK_TO_FRONT; import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS; import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS; import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS_ANIM; import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS_ANIM; Loading Loading @@ -61,10 +65,13 @@ import static com.android.server.wm.WindowManagerService.logWithStack; import static com.android.server.wm.WindowStateAnimator.ROOT_TASK_CLIP_AFTER_ANIM; import static com.android.server.wm.WindowStateAnimator.ROOT_TASK_CLIP_AFTER_ANIM; import android.annotation.CallSuper; import android.annotation.CallSuper; import android.annotation.ColorInt; import android.annotation.IntDef; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.Nullable; import android.app.ActivityThread; import android.app.WindowConfiguration; import android.app.WindowConfiguration; import android.content.Context; import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.content.res.Configuration; import android.graphics.Point; import android.graphics.Point; Loading @@ -90,6 +97,7 @@ import android.view.animation.Animation; import android.window.IWindowContainerToken; import android.window.IWindowContainerToken; import android.window.WindowContainerToken; import android.window.WindowContainerToken; import com.android.internal.R; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.protolog.common.ProtoLog; import com.android.internal.protolog.common.ProtoLog; import com.android.internal.util.ToBooleanFunction; import com.android.internal.util.ToBooleanFunction; Loading Loading @@ -2814,24 +2822,23 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< } } TaskDisplayArea taskDisplayArea = getTaskDisplayArea(); TaskDisplayArea taskDisplayArea = getTaskDisplayArea(); int backgroundColor = adapter.getBackgroundColor(); boolean isSettingBackgroundColor = taskDisplayArea != null && isTransitionWithBackgroundColor(transit); boolean shouldSetBackgroundColor = taskDisplayArea != null && backgroundColor != 0; if (isSettingBackgroundColor) { Context uiContext = ActivityThread.currentActivityThread().getSystemUiContext(); @ColorInt int backgroundColor = uiContext.getColor(R.color.overview_background); if (shouldSetBackgroundColor) { taskDisplayArea.setBackgroundColor(backgroundColor); taskDisplayArea.setBackgroundColor(backgroundColor); } } Runnable clearColorBackground = () -> { final Runnable cleanUpCallback = isSettingBackgroundColor if (shouldSetBackgroundColor) { ? taskDisplayArea::clearBackgroundColor : () -> {}; taskDisplayArea.clearBackgroundColor(); } }; startAnimation(getPendingTransaction(), adapter, !isVisible(), startAnimation(getPendingTransaction(), adapter, !isVisible(), ANIMATION_TYPE_APP_TRANSITION, ANIMATION_TYPE_APP_TRANSITION, (type, anim) -> clearColorBackground.run(), (type, anim) -> cleanUpCallback.run(), clearColorBackground); cleanUpCallback); if (adapter.getShowWallpaper()) { if (adapter.getShowWallpaper()) { getDisplayContent().pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER; getDisplayContent().pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER; Loading @@ -2843,6 +2850,13 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< } } } } private boolean isTransitionWithBackgroundColor(@TransitionOldType int transit) { return transit == TRANSIT_OLD_TASK_OPEN || transit == TRANSIT_OLD_TASK_CLOSE || transit == TRANSIT_OLD_TASK_TO_FRONT || transit == TRANSIT_OLD_TASK_TO_BACK; } final SurfaceAnimationRunner getSurfaceAnimationRunner() { final SurfaceAnimationRunner getSurfaceAnimationRunner() { return mWmService.mSurfaceAnimationRunner; return mWmService.mSurfaceAnimationRunner; } } Loading