Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 28905b86 authored by Pablo Gamito's avatar Pablo Gamito Committed by Automerger Merge Worker
Browse files

Merge "Stop relying on background color attribute to set task transition...

Merge "Stop relying on background color attribute to set task transition background" into sc-v2-dev am: ec0a575d am: ef72bbe2

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15920767

Change-Id: Ic46ffb93178e028a9d497b14136774f834012e77
parents dc0ffe41 ef72bbe2
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ 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;
@@ -270,15 +269,6 @@ 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);
        }
+24 −10
Original line number Diff line number Diff line
@@ -32,6 +32,10 @@ import static android.os.UserHandle.USER_NULL;
import static android.view.SurfaceControl.Transaction;
import static android.view.WindowManager.LayoutParams.INVALID_WINDOW_TYPE;
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_ANIM;
@@ -62,10 +66,13 @@ import static com.android.server.wm.WindowManagerService.logWithStack;
import static com.android.server.wm.WindowStateAnimator.ROOT_TASK_CLIP_AFTER_ANIM;

import android.annotation.CallSuper;
import android.annotation.ColorInt;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.ActivityThread;
import android.app.WindowConfiguration;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.graphics.Point;
@@ -91,6 +98,7 @@ import android.view.animation.Animation;
import android.window.IWindowContainerToken;
import android.window.WindowContainerToken;

import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.protolog.common.ProtoLog;
import com.android.internal.util.ToBooleanFunction;
@@ -2818,24 +2826,23 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
            }

            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);
            }

            Runnable clearColorBackground = () -> {
                if (shouldSetBackgroundColor) {
                    taskDisplayArea.clearBackgroundColor();
                }
            };
            final Runnable cleanUpCallback = isSettingBackgroundColor
                    ? taskDisplayArea::clearBackgroundColor : () -> {};

            startAnimation(getPendingTransaction(), adapter, !isVisible(),
                    ANIMATION_TYPE_APP_TRANSITION,
                    (type, anim) -> clearColorBackground.run(),
                    clearColorBackground);
                    (type, anim) -> cleanUpCallback.run(),
                    cleanUpCallback);

            if (adapter.getShowWallpaper()) {
                getDisplayContent().pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER;
@@ -2847,6 +2854,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() {
        return mWmService.mSurfaceAnimationRunner;
    }