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

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

Change-Id: I94229a47847645c6daa4bbe9fc1619ddc8c18568
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Mady Mellor
2023-06-13 18:50:18 +00:00
committed by Automerger Merge Worker

View File

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