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

Commit fbdd06ad authored by Mady Mellor's avatar Mady Mellor Committed by Automerger Merge Worker
Browse files

Merge "Don't merge task view transitions in UnfoldTransitionHandler" into udc-dev am: 021e9f1a

parents f316e042 021e9f1a
Loading
Loading
Loading
Loading
+13 −0
Original line number Original line Diff line number Diff line
@@ -20,6 +20,7 @@ import static android.view.WindowManager.TRANSIT_CHANGE;


import static com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_TRANSITIONS;
import static com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_TRANSITIONS;


import android.app.ActivityManager;
import android.os.IBinder;
import android.os.IBinder;
import android.view.SurfaceControl;
import android.view.SurfaceControl;
import android.window.TransitionInfo;
import android.window.TransitionInfo;
@@ -178,6 +179,18 @@ public class UnfoldTransitionHandler implements TransitionHandler, UnfoldListene
            @NonNull SurfaceControl.Transaction t, @NonNull IBinder mergeTarget,
            @NonNull SurfaceControl.Transaction t, @NonNull IBinder mergeTarget,
            @NonNull TransitionFinishCallback finishCallback) {
            @NonNull TransitionFinishCallback finishCallback) {
        if (info.getType() == TRANSIT_CHANGE) {
        if (info.getType() == TRANSIT_CHANGE) {
            // TODO (b/286928742) unfold transition handler should be part of mixed handler to
            //  handle merges better.
            for (int i = 0; i < info.getChanges().size(); ++i) {
                final TransitionInfo.Change change = info.getChanges().get(i);
                final ActivityManager.RunningTaskInfo taskInfo = change.getTaskInfo();
                if (taskInfo != null
                        && taskInfo.configuration.windowConfiguration.isAlwaysOnTop()) {
                    // Tasks that are always on top (e.g. bubbles), will handle their own transition
                    // as they are on top of everything else. So skip merging transitions here.
                    return;
                }
            }
            // Apply changes happening during the unfold animation immediately
            // Apply changes happening during the unfold animation immediately
            t.apply();
            t.apply();
            finishCallback.onTransitionFinished(null, null);
            finishCallback.onTransitionFinished(null, null);