Merge "Update wallpaper target if the current target is gone" into tm-qpr-dev am: 50aee330de
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19125378 Change-Id: I4484e1a0e117815c9c2ed68984fb02302b567a7f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -2089,7 +2089,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
if (win.mAttrs.type == TYPE_WALLPAPER) {
|
||||
dc.mWallpaperController.clearLastWallpaperTimeoutTime();
|
||||
dc.pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER;
|
||||
} else if (win.hasWallpaper()) {
|
||||
} else if (dc.mWallpaperController.isWallpaperTarget(win)) {
|
||||
dc.pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER;
|
||||
}
|
||||
|
||||
|
||||
@@ -246,6 +246,22 @@ public class WallpaperControllerTests extends WindowTestsBase {
|
||||
assertEquals(otherWindowInitialZoom, wallpaperWindow.mWallpaperZoomOut, .01f);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateWallpaperTarget() {
|
||||
final DisplayContent dc = mDisplayContent;
|
||||
final WindowState homeWin = createWallpaperTargetWindow(dc);
|
||||
final WindowState appWin = createWindow(null, TYPE_BASE_APPLICATION, "app");
|
||||
final RecentsAnimationController recentsController = mock(RecentsAnimationController.class);
|
||||
doReturn(true).when(recentsController).isWallpaperVisible(eq(appWin));
|
||||
mWm.setRecentsAnimationController(recentsController);
|
||||
|
||||
dc.mWallpaperController.adjustWallpaperWindows();
|
||||
assertEquals(appWin, dc.mWallpaperController.getWallpaperTarget());
|
||||
// The wallpaper target is gone, so it should adjust to the next target.
|
||||
appWin.removeImmediately();
|
||||
assertEquals(homeWin, dc.mWallpaperController.getWallpaperTarget());
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that the windowing mode of the wallpaper window must always be fullscreen.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user