diff options
4 files changed, 15 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index acb9900bafe9..7a302110b13b 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -7628,6 +7628,11 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } @Override + boolean canCreateRemoteAnimationTarget() { + return true; + } + + @Override void getAnimationFrames(Rect outFrame, Rect outInsets, Rect outStableInsets, Rect outSurfaceInsets) { final WindowState win = findMainWindow(); diff --git a/services/core/java/com/android/server/wm/AppTransitionController.java b/services/core/java/com/android/server/wm/AppTransitionController.java index 0912b2e8b52f..6a47c9e217f8 100644 --- a/services/core/java/com/android/server/wm/AppTransitionController.java +++ b/services/core/java/com/android/server/wm/AppTransitionController.java @@ -446,7 +446,7 @@ public class AppTransitionController { siblings.add(current); boolean canPromote = true; - if (parent == null) { + if (parent == null || !parent.canCreateRemoteAnimationTarget()) { canPromote = false; } else { // In case a descendant of the parent belongs to the other group, we cannot promote diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index faa6bac8e623..88d4fb31b16b 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -3121,6 +3121,11 @@ class Task extends WindowContainer<WindowContainer> { return activity != null ? activity.createRemoteAnimationTarget(record) : null; } + @Override + boolean canCreateRemoteAnimationTarget() { + return true; + } + WindowState getTopVisibleAppMainWindow() { final ActivityRecord activity = getTopVisibleActivity(); return activity != null ? activity.findMainWindow() : null; diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java index b12c6980ccce..10d34b57bacb 100644 --- a/services/core/java/com/android/server/wm/WindowContainer.java +++ b/services/core/java/com/android/server/wm/WindowContainer.java @@ -2196,6 +2196,10 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< return null; } + boolean canCreateRemoteAnimationTarget() { + return false; + } + boolean okToDisplay() { final DisplayContent dc = getDisplayContent(); return dc != null && dc.okToDisplay(); |