Loading services/core/java/com/android/server/wm/BackNavigationController.java +23 −0 Original line number Diff line number Diff line Loading @@ -767,6 +767,10 @@ class BackNavigationController { if (!isMonitoringTransition() || targets.isEmpty()) { return; } if (mAnimationHandler.hasTargetDetached()) { mNavigationMonitor.cancelBackNavigating("targetDetached"); return; } for (int i = targets.size() - 1; i >= 0; --i) { final WindowContainer wc = targets.get(i).mContainer; if (wc.asActivityRecord() == null && wc.asTask() == null Loading Loading @@ -1141,6 +1145,21 @@ class BackNavigationController { || containTarget(openApps, false /* open */)); } /** * Check if any animation target is detached, possibly due to app crash. */ boolean hasTargetDetached() { if (!mComposed) { return false; } for (int i = mOpenAnimAdaptor.mAdaptors.length - 1; i >= 0; --i) { if (!mOpenAnimAdaptor.mAdaptors[i].mTarget.isAttached()) { return true; } } return !mCloseAdaptor.mTarget.isAttached(); } @Override public String toString() { return "AnimationTargets{" Loading Loading @@ -1678,6 +1697,10 @@ class BackNavigationController { } private static void restoreLaunchBehind(@NonNull ActivityRecord activity) { if (!activity.isAttached()) { // The activity was detached from hierarchy. return; } activity.mDisplayContent.continueUpdateOrientationForDiffOrienLaunchingApp(); // Restore the launch-behind state. Loading Loading
services/core/java/com/android/server/wm/BackNavigationController.java +23 −0 Original line number Diff line number Diff line Loading @@ -767,6 +767,10 @@ class BackNavigationController { if (!isMonitoringTransition() || targets.isEmpty()) { return; } if (mAnimationHandler.hasTargetDetached()) { mNavigationMonitor.cancelBackNavigating("targetDetached"); return; } for (int i = targets.size() - 1; i >= 0; --i) { final WindowContainer wc = targets.get(i).mContainer; if (wc.asActivityRecord() == null && wc.asTask() == null Loading Loading @@ -1141,6 +1145,21 @@ class BackNavigationController { || containTarget(openApps, false /* open */)); } /** * Check if any animation target is detached, possibly due to app crash. */ boolean hasTargetDetached() { if (!mComposed) { return false; } for (int i = mOpenAnimAdaptor.mAdaptors.length - 1; i >= 0; --i) { if (!mOpenAnimAdaptor.mAdaptors[i].mTarget.isAttached()) { return true; } } return !mCloseAdaptor.mTarget.isAttached(); } @Override public String toString() { return "AnimationTargets{" Loading Loading @@ -1678,6 +1697,10 @@ class BackNavigationController { } private static void restoreLaunchBehind(@NonNull ActivityRecord activity) { if (!activity.isAttached()) { // The activity was detached from hierarchy. return; } activity.mDisplayContent.continueUpdateOrientationForDiffOrienLaunchingApp(); // Restore the launch-behind state. Loading