diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityStarter.java | 7 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/TaskFragment.java | 8 |
2 files changed, 15 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java index 092848ac94f6..435caa7adc08 100644 --- a/services/core/java/com/android/server/wm/ActivityStarter.java +++ b/services/core/java/com/android/server/wm/ActivityStarter.java @@ -55,7 +55,9 @@ import static android.content.pm.ActivityInfo.launchModeToString; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static android.os.Process.INVALID_UID; import static android.view.Display.DEFAULT_DISPLAY; +import static android.view.WindowManager.TRANSIT_NONE; import static android.view.WindowManager.TRANSIT_OPEN; +import static android.view.WindowManager.TRANSIT_TO_FRONT; import static android.window.WindowContainerTransaction.HierarchyOp.HIERARCHY_OP_TYPE_START_ACTIVITY_IN_TASK_FRAGMENT; import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONFIGURATION; @@ -2398,6 +2400,11 @@ class ActivityStarter { if (actuallyMoved) { // Only record if the activity actually moved. mMovedToTopActivity = act; + if (mNoAnimation) { + act.mDisplayContent.prepareAppTransition(TRANSIT_NONE); + } else { + act.mDisplayContent.prepareAppTransition(TRANSIT_TO_FRONT); + } } act.updateOptionsLocked(mOptions); deliverNewIntent(act, intentGrants); diff --git a/services/core/java/com/android/server/wm/TaskFragment.java b/services/core/java/com/android/server/wm/TaskFragment.java index 08b5d7ca82b5..cb254982a780 100644 --- a/services/core/java/com/android/server/wm/TaskFragment.java +++ b/services/core/java/com/android/server/wm/TaskFragment.java @@ -2605,6 +2605,14 @@ class TaskFragment extends WindowContainer<WindowContainer> { return false; } + @Override + boolean canCustomizeAppTransition() { + // This is only called when the app transition is going to be played by system server. In + // this case, we should allow custom app transition for fullscreen embedded TaskFragment + // just like Activity. + return isEmbedded() && matchParentBounds(); + } + /** Clear {@link #mLastPausedActivity} for all {@link TaskFragment} children */ void clearLastPausedActivity() { forAllTaskFragments(taskFragment -> taskFragment.mLastPausedActivity = null); |