diff options
| author | 2023-06-13 18:50:18 +0000 | |
|---|---|---|
| committer | 2023-06-13 18:50:18 +0000 | |
| commit | 75337fa06d44cb817755fb5fd979c5959bd04b3c (patch) | |
| tree | e341b032e0631b9e4883b8d8a8a63e6ebe2f108a | |
| parent | b2757069c81cb39bd66e1361830de8c34b8a8134 (diff) | |
| parent | 021e9f1a711a476a8b898df14d99454fad7b2f15 (diff) | |
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>
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/unfold/UnfoldTransitionHandler.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/unfold/UnfoldTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/unfold/UnfoldTransitionHandler.java index c504f57216f3..e1d58a4c29e1 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/unfold/UnfoldTransitionHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/unfold/UnfoldTransitionHandler.java @@ -20,6 +20,7 @@ import static android.view.WindowManager.TRANSIT_CHANGE; import static com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_TRANSITIONS; +import android.app.ActivityManager; import android.os.IBinder; import android.view.SurfaceControl; import android.window.TransitionInfo; @@ -178,6 +179,18 @@ public class UnfoldTransitionHandler implements TransitionHandler, UnfoldListene @NonNull SurfaceControl.Transaction t, @NonNull IBinder mergeTarget, @NonNull TransitionFinishCallback finishCallback) { 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 t.apply(); finishCallback.onTransitionFinished(null, null); |