[RESTRICT AUTOMERGE]Animate back gesture with focusd window activity
Correct the animation target, top most activity can be finishing so
shouldn't be choose as animation target.
Bug: 245467978
Test: Start two activities in a task.
Finish top activity, before the exit animation done, drive another
back gesture.
Verify the target should not point to the top activity.
Change-Id: I4d9d61bd566cafbeef90916cdf40a6fc9c8e13d7
This commit is contained in:
@@ -310,7 +310,7 @@ class BackNavigationController {
|
|||||||
mBackNaviAnimationController = new BackNaviAnimationController(
|
mBackNaviAnimationController = new BackNaviAnimationController(
|
||||||
backAnimationAdaptor.getRunner(), this,
|
backAnimationAdaptor.getRunner(), this,
|
||||||
currentActivity.getDisplayId());
|
currentActivity.getDisplayId());
|
||||||
prepareBackToHomeTransition(currentTask, prevTask);
|
prepareBackToHomeTransition(currentActivity, prevTask);
|
||||||
infoBuilder.setPrepareAnimation(true);
|
infoBuilder.setPrepareAnimation(true);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -489,8 +489,8 @@ class BackNavigationController {
|
|||||||
mWindowManagerService = wm;
|
mWindowManagerService = wm;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void prepareBackToHomeTransition(Task currentTask, Task homeTask) {
|
private void prepareBackToHomeTransition(ActivityRecord currentActivity, Task homeTask) {
|
||||||
final DisplayContent dc = currentTask.getDisplayContent();
|
final DisplayContent dc = currentActivity.getDisplayContent();
|
||||||
final ActivityRecord homeActivity = homeTask.getTopNonFinishingActivity();
|
final ActivityRecord homeActivity = homeTask.getTopNonFinishingActivity();
|
||||||
if (!homeActivity.mVisibleRequested) {
|
if (!homeActivity.mVisibleRequested) {
|
||||||
homeActivity.setVisibility(true);
|
homeActivity.setVisibility(true);
|
||||||
@@ -499,7 +499,7 @@ class BackNavigationController {
|
|||||||
dc.ensureActivitiesVisible(
|
dc.ensureActivitiesVisible(
|
||||||
null /* starting */, 0 /* configChanges */,
|
null /* starting */, 0 /* configChanges */,
|
||||||
false /* preserveWindows */, true);
|
false /* preserveWindows */, true);
|
||||||
mBackNaviAnimationController.initialize(homeActivity, currentTask.getTopMostActivity());
|
mBackNaviAnimationController.initialize(homeActivity, currentActivity);
|
||||||
}
|
}
|
||||||
|
|
||||||
void finishAnimation() {
|
void finishAnimation() {
|
||||||
|
|||||||
Reference in New Issue
Block a user