Merge "Skip close activity transition since no closing app can be visible" into sc-dev am: 590ccb4e73

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14842876

Change-Id: I48096648d4fb657be859137c8defcf37d8f23d3c
This commit is contained in:
Wei Sheng Shih
2021-06-30 03:33:06 +00:00
committed by Automerger Merge Worker
2 changed files with 25 additions and 1 deletions

View File

@@ -412,7 +412,13 @@ public class AppTransitionController {
return TRANSIT_OLD_TASK_CLOSE;
}
if (isActivityClosing) {
return TRANSIT_OLD_ACTIVITY_CLOSE;
for (int i = closingApps.size() - 1; i >= 0; i--) {
if (closingApps.valueAt(i).visibleIgnoringKeyguard) {
return TRANSIT_OLD_ACTIVITY_CLOSE;
}
}
// Skip close activity transition since no closing app can be visible
return WindowManager.TRANSIT_OLD_UNSET;
}
}
if (appTransition.containsTransitRequest(TRANSIT_RELAUNCH)

View File

@@ -77,6 +77,24 @@ public class AppTransitionControllerTest extends WindowTestsBase {
return r;
}
@Test
public void testSkipOccludedActivityCloseTransition() {
final ActivityRecord behind = createActivityRecord(mDisplayContent,
WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
final ActivityRecord topOpening = createActivityRecord(behind.getTask());
topOpening.setOccludesParent(true);
topOpening.setVisible(true);
mDisplayContent.prepareAppTransition(TRANSIT_OPEN);
mDisplayContent.prepareAppTransition(TRANSIT_CLOSE);
mDisplayContent.mClosingApps.add(behind);
assertEquals(WindowManager.TRANSIT_OLD_UNSET,
AppTransitionController.getTransitCompatType(mDisplayContent.mAppTransition,
mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
null, null, false));
}
@Test
@FlakyTest(bugId = 131005232)
public void testTranslucentOpen() {