diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java index b862ec15f3d98..83a6bc0ec99da 100644 --- a/core/java/android/service/wallpaper/WallpaperService.java +++ b/core/java/android/service/wallpaper/WallpaperService.java @@ -609,6 +609,18 @@ public abstract class WallpaperService extends Service { } } + /** @hide */ + public void setShowForAllUsers(boolean show) { + mWindowPrivateFlags = show + ? (mWindowPrivateFlags + | WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS) + : (mWindowPrivateFlags + & ~WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS); + if (mCreated) { + updateSurface(false, false, false); + } + } + /** {@hide} */ @UnsupportedAppUsage public void setFixedSizeAllowed(boolean allowed) { diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index dde0a199f4269..f2eff05a16f1c 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -375,6 +375,7 @@ diff --git a/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java b/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java index d1739aaccac28..8ff90f780c99d 100644 --- a/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java +++ b/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java @@ -126,6 +126,7 @@ public class ImageWallpaper extends WallpaperService { mRenderer = getRendererInstance(); setFixedSizeAllowed(true); updateSurfaceSize(); + setShowForAllUsers(true); mRenderer.setOnBitmapChanged(b -> { mLocalColorsToAdd.addAll(mColorAreas); diff --git a/packages/SystemUI/src/com/android/systemui/glwallpaper/ImageWallpaperRenderer.java b/packages/SystemUI/src/com/android/systemui/glwallpaper/ImageWallpaperRenderer.java index 729730cdf6f1b..7c0b93b7eebc3 100644 --- a/packages/SystemUI/src/com/android/systemui/glwallpaper/ImageWallpaperRenderer.java +++ b/packages/SystemUI/src/com/android/systemui/glwallpaper/ImageWallpaperRenderer.java @@ -25,6 +25,7 @@ import android.app.WallpaperManager; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Rect; +import android.os.UserHandle; import android.util.Log; import android.util.Size; @@ -142,7 +143,8 @@ public class ImageWallpaperRenderer implements GLWallpaperRenderer { mRefCount.incrementAndGet(); synchronized (mRefCount) { if (mBitmap == null) { - mBitmap = mWallpaperManager.getBitmap(false /* hardware */); + mBitmap = mWallpaperManager.getBitmapAsUser(UserHandle.USER_CURRENT, + false /* hardware */); mWcgContent = mWallpaperManager.wallpaperSupportsWcg( WallpaperManager.FLAG_SYSTEM); mWallpaperManager.forgetLoadedWallpaper();