Skip to content

Commit f8d05b4

Browse files
Craig MautnerAndroid (Google) Code Review
authored andcommitted
Merge "Update wallpaper visibility at time of hide/show." into jb-dev
2 parents 4b4a947 + 507a2ee commit f8d05b4

File tree

3 files changed

+24
-20
lines changed

3 files changed

+24
-20
lines changed

services/java/com/android/server/wm/WindowAnimator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ void hideWallpapersLocked(final WindowState w) {
9393
final WindowStateAnimator winAnimator = wallpaper.mWinAnimator;
9494
if (!winAnimator.mLastHidden) {
9595
winAnimator.hide();
96+
mService.dispatchWallpaperVisibility(wallpaper, false);
9697
mPendingLayoutChanges |= WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
9798
}
9899
}

services/java/com/android/server/wm/WindowManagerService.java

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1870,16 +1870,7 @@ else if (foundI > oldI) {
18701870

18711871
// First, make sure the client has the current visibility
18721872
// state.
1873-
if (wallpaper.mWallpaperVisible != visible) {
1874-
wallpaper.mWallpaperVisible = visible;
1875-
try {
1876-
if (DEBUG_VISIBILITY || DEBUG_WALLPAPER) Slog.v(TAG,
1877-
"Setting visibility of wallpaper " + wallpaper
1878-
+ ": " + visible);
1879-
wallpaper.mClient.dispatchAppVisibility(visible);
1880-
} catch (RemoteException e) {
1881-
}
1882-
}
1873+
dispatchWallpaperVisibility(wallpaper, visible);
18831874

18841875
wallpaper.mWinAnimator.mAnimLayer = wallpaper.mLayer + mWallpaperAnimLayerAdjustment;
18851876
if (DEBUG_LAYERS || DEBUG_WALLPAPER) Slog.v(TAG, "adjustWallpaper win "
@@ -2089,6 +2080,24 @@ void updateWallpaperOffsetLocked(WindowState changingTarget, boolean sync) {
20892080
}
20902081
}
20912082

2083+
/**
2084+
* Check wallpaper for visiblity change and notify window if so.
2085+
* @param wallpaper The wallpaper to test and notify.
2086+
* @param visible Current visibility.
2087+
*/
2088+
void dispatchWallpaperVisibility(final WindowState wallpaper, final boolean visible) {
2089+
if (wallpaper.mWallpaperVisible != visible) {
2090+
wallpaper.mWallpaperVisible = visible;
2091+
try {
2092+
if (DEBUG_VISIBILITY || DEBUG_WALLPAPER) Slog.v(TAG,
2093+
"Updating visibility of wallpaper " + wallpaper
2094+
+ ": " + visible + " Callers=" + Debug.getCallers(2));
2095+
wallpaper.mClient.dispatchAppVisibility(visible);
2096+
} catch (RemoteException e) {
2097+
}
2098+
}
2099+
}
2100+
20922101
void updateWallpaperVisibilityLocked() {
20932102
final boolean visible = isWallpaperVisible(mWallpaperTarget);
20942103
final int dw = mAppDisplayWidth;
@@ -2113,16 +2122,7 @@ void updateWallpaperVisibilityLocked() {
21132122
updateWallpaperOffsetLocked(wallpaper, dw, dh, false);
21142123
}
21152124

2116-
if (wallpaper.mWallpaperVisible != visible) {
2117-
wallpaper.mWallpaperVisible = visible;
2118-
try {
2119-
if (DEBUG_VISIBILITY || DEBUG_WALLPAPER) Slog.v(TAG,
2120-
"Updating visibility of wallpaper " + wallpaper
2121-
+ ": " + visible);
2122-
wallpaper.mClient.dispatchAppVisibility(visible);
2123-
} catch (RemoteException e) {
2124-
}
2125-
}
2125+
dispatchWallpaperVisibility(wallpaper, visible);
21262126
}
21272127
}
21282128
}

services/java/com/android/server/wm/WindowStateAnimator.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1122,6 +1122,9 @@ public void prepareSurfaceLocked(final boolean recoveringMemory) {
11221122
+ " during relayout");
11231123
if (showSurfaceRobustlyLocked()) {
11241124
mLastHidden = false;
1125+
if (w.mIsWallpaper) {
1126+
mService.dispatchWallpaperVisibility(w, true);
1127+
}
11251128
} else {
11261129
w.mOrientationChanging = false;
11271130
}

0 commit comments

Comments
 (0)