Merge "Use intra wallaper transition animation for move to front/back transition." into sc-dev am: 398b9a8173
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15302105 Change-Id: I75df22252591c0c5c8b906b52cd0244598f6cdd2
This commit is contained in:
@@ -362,8 +362,10 @@ public class AppTransitionController {
|
|||||||
ProtoLog.v(WM_DEBUG_APP_TRANSITIONS, "Wallpaper animation!");
|
ProtoLog.v(WM_DEBUG_APP_TRANSITIONS, "Wallpaper animation!");
|
||||||
switch (firstTransit) {
|
switch (firstTransit) {
|
||||||
case TRANSIT_OPEN:
|
case TRANSIT_OPEN:
|
||||||
|
case TRANSIT_TO_FRONT:
|
||||||
return TRANSIT_OLD_WALLPAPER_INTRA_OPEN;
|
return TRANSIT_OLD_WALLPAPER_INTRA_OPEN;
|
||||||
case TRANSIT_CLOSE:
|
case TRANSIT_CLOSE:
|
||||||
|
case TRANSIT_TO_BACK:
|
||||||
return TRANSIT_OLD_WALLPAPER_INTRA_CLOSE;
|
return TRANSIT_OLD_WALLPAPER_INTRA_CLOSE;
|
||||||
}
|
}
|
||||||
} else if (oldWallpaper != null && !openingApps.isEmpty()
|
} else if (oldWallpaper != null && !openingApps.isEmpty()
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ package com.android.server.wm;
|
|||||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
|
import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
|
||||||
import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
|
import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
|
||||||
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
|
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
|
||||||
|
import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
|
||||||
import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
|
import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
|
||||||
import static android.view.WindowManager.TRANSIT_CHANGE;
|
import static android.view.WindowManager.TRANSIT_CHANGE;
|
||||||
import static android.view.WindowManager.TRANSIT_CLOSE;
|
import static android.view.WindowManager.TRANSIT_CLOSE;
|
||||||
@@ -27,6 +28,7 @@ import static android.view.WindowManager.TRANSIT_OLD_KEYGUARD_UNOCCLUDE;
|
|||||||
import static android.view.WindowManager.TRANSIT_OLD_TASK_CHANGE_WINDOWING_MODE;
|
import static android.view.WindowManager.TRANSIT_OLD_TASK_CHANGE_WINDOWING_MODE;
|
||||||
import static android.view.WindowManager.TRANSIT_OLD_TASK_OPEN;
|
import static android.view.WindowManager.TRANSIT_OLD_TASK_OPEN;
|
||||||
import static android.view.WindowManager.TRANSIT_OPEN;
|
import static android.view.WindowManager.TRANSIT_OPEN;
|
||||||
|
import static android.view.WindowManager.TRANSIT_TO_FRONT;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
@@ -167,6 +169,69 @@ public class AppTransitionControllerTest extends WindowTestsBase {
|
|||||||
assertFalse(mAppTransitionController.isTransitWithinTask(TRANSIT_OLD_TASK_OPEN, task));
|
assertFalse(mAppTransitionController.isTransitWithinTask(TRANSIT_OLD_TASK_OPEN, task));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIntraWallpaper_open() {
|
||||||
|
final ActivityRecord opening = createActivityRecord(mDisplayContent,
|
||||||
|
WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
|
||||||
|
opening.setVisible(false);
|
||||||
|
final WindowManager.LayoutParams attrOpening = new WindowManager.LayoutParams(
|
||||||
|
TYPE_BASE_APPLICATION);
|
||||||
|
attrOpening.setTitle("WallpaperOpening");
|
||||||
|
attrOpening.flags |= FLAG_SHOW_WALLPAPER;
|
||||||
|
final TestWindowState appWindowOpening = createWindowState(attrOpening, opening);
|
||||||
|
opening.addWindow(appWindowOpening);
|
||||||
|
|
||||||
|
final ActivityRecord closing = createActivityRecord(mDisplayContent,
|
||||||
|
WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
|
||||||
|
final WindowManager.LayoutParams attrClosing = new WindowManager.LayoutParams(
|
||||||
|
TYPE_BASE_APPLICATION);
|
||||||
|
attrOpening.setTitle("WallpaperClosing");
|
||||||
|
attrClosing.flags |= FLAG_SHOW_WALLPAPER;
|
||||||
|
final TestWindowState appWindowClosing = createWindowState(attrClosing, closing);
|
||||||
|
closing.addWindow(appWindowClosing);
|
||||||
|
|
||||||
|
mDisplayContent.prepareAppTransition(TRANSIT_OPEN);
|
||||||
|
mDisplayContent.mOpeningApps.add(opening);
|
||||||
|
mDisplayContent.mClosingApps.add(closing);
|
||||||
|
|
||||||
|
assertEquals(WindowManager.TRANSIT_OLD_WALLPAPER_INTRA_OPEN,
|
||||||
|
AppTransitionController.getTransitCompatType(mDisplayContent.mAppTransition,
|
||||||
|
mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
|
||||||
|
appWindowClosing, null, false));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIntraWallpaper_toFront() {
|
||||||
|
final ActivityRecord opening = createActivityRecord(mDisplayContent,
|
||||||
|
WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
|
||||||
|
opening.setVisible(false);
|
||||||
|
final WindowManager.LayoutParams attrOpening = new WindowManager.LayoutParams(
|
||||||
|
TYPE_BASE_APPLICATION);
|
||||||
|
attrOpening.setTitle("WallpaperOpening");
|
||||||
|
attrOpening.flags |= FLAG_SHOW_WALLPAPER;
|
||||||
|
final TestWindowState appWindowOpening = createWindowState(attrOpening, opening);
|
||||||
|
opening.addWindow(appWindowOpening);
|
||||||
|
|
||||||
|
final ActivityRecord closing = createActivityRecord(mDisplayContent,
|
||||||
|
WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
|
||||||
|
final WindowManager.LayoutParams attrClosing = new WindowManager.LayoutParams(
|
||||||
|
TYPE_BASE_APPLICATION);
|
||||||
|
attrOpening.setTitle("WallpaperClosing");
|
||||||
|
attrClosing.flags |= FLAG_SHOW_WALLPAPER;
|
||||||
|
final TestWindowState appWindowClosing = createWindowState(attrClosing, closing);
|
||||||
|
closing.addWindow(appWindowClosing);
|
||||||
|
|
||||||
|
mDisplayContent.prepareAppTransition(TRANSIT_TO_FRONT);
|
||||||
|
mDisplayContent.mOpeningApps.add(opening);
|
||||||
|
mDisplayContent.mClosingApps.add(closing);
|
||||||
|
|
||||||
|
assertEquals(WindowManager.TRANSIT_OLD_WALLPAPER_INTRA_OPEN,
|
||||||
|
AppTransitionController.getTransitCompatType(mDisplayContent.mAppTransition,
|
||||||
|
mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
|
||||||
|
appWindowClosing, null, false));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetAnimationTargets_visibilityAlreadyUpdated() {
|
public void testGetAnimationTargets_visibilityAlreadyUpdated() {
|
||||||
// [DisplayContent] -+- [Task1] - [ActivityRecord1] (opening, visible)
|
// [DisplayContent] -+- [Task1] - [ActivityRecord1] (opening, visible)
|
||||||
|
|||||||
Reference in New Issue
Block a user