diff options
| author | 2024-06-03 14:31:56 +0000 | |
|---|---|---|
| committer | 2024-06-03 14:31:56 +0000 | |
| commit | 5c58aae54d2e7c208e2ff4cff0dd649ddebdc27e (patch) | |
| tree | aeca93c1f9c63c296924571953c4adc31fd91269 | |
| parent | ae648c05cba85b9d6649c8bf4890b564c7a71677 (diff) | |
Updates the dim for USER_SYSTEM if mCurrentUserId = null
If setWallpaperDimAmount is called during boot before
WallpaperManagerService#switchUser is called, it will produce a NPE
since the mCurrentUserId is still USER_NULL. Instead, update the dim for
USER_SYSTEM in that scenario.
Flag: NONE, the logic only changes in a case that would produce a NPE
otherwise.
Test: presubmit
Bug: 344545351
Change-Id: I3c8de053837e80fa6dc90f26b61e1f0f3af0eecf
| -rw-r--r-- | services/core/java/com/android/server/wallpaper/WallpaperManagerService.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java index f8eb78914857..abc6bf698d66 100644 --- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java +++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java @@ -2729,8 +2729,11 @@ public class WallpaperManagerService extends IWallpaperManager.Stub try { List<WallpaperData> pendingColorExtraction = new ArrayList<>(); synchronized (mLock) { - WallpaperData wallpaper = mWallpaperMap.get(mCurrentUserId); - WallpaperData lockWallpaper = mLockWallpaperMap.get(mCurrentUserId); + // If called in boot before mCurrentUserId is set, sets the dim for USER_SYSTEM. + int userId = mCurrentUserId != UserHandle.USER_NULL + ? mCurrentUserId : UserHandle.USER_SYSTEM; + WallpaperData wallpaper = mWallpaperMap.get(userId); + WallpaperData lockWallpaper = mLockWallpaperMap.get(userId); if (dimAmount == 0.0f) { wallpaper.mUidToDimAmount.remove(uid); |