diff options
| author | 2023-07-25 10:34:33 +0000 | |
|---|---|---|
| committer | 2023-07-25 10:34:33 +0000 | |
| commit | e3d66c385790ebf16916dbc0edc9f5829b1ad4b4 (patch) | |
| tree | 91275ca55093871afe50bd9732d395f5e8eaad92 | |
| parent | 4b8e8ea3a592f7f66a38e8f7fa885958700187db (diff) | |
| parent | 96e2ff400264f2d9716b4caea0eb072b07921249 (diff) | |
Merge "Release lock before color extraction on dim changes" into udc-qpr-dev
| -rw-r--r-- | services/core/java/com/android/server/wallpaper/WallpaperManagerService.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java index ee7dc5007d97..309a9c0e0372 100644 --- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java +++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java @@ -2895,6 +2895,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub checkPermission(android.Manifest.permission.SET_WALLPAPER_DIM_AMOUNT); final long ident = Binder.clearCallingIdentity(); try { + List<WallpaperData> pendingColorExtraction = new ArrayList<>(); synchronized (mLock) { WallpaperData wallpaper = mWallpaperMap.get(mCurrentUserId); WallpaperData lockWallpaper = mLockWallpaperMap.get(mCurrentUserId); @@ -2930,7 +2931,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub // Need to extract colors again to re-calculate dark hints after // applying dimming. wp.mIsColorExtractedFromDim = true; - notifyWallpaperColorsChanged(wp, wp.mWhich); + pendingColorExtraction.add(wp); changed = true; } } @@ -2962,6 +2963,9 @@ public class WallpaperManagerService extends IWallpaperManager.Stub } } } + for (WallpaperData wp: pendingColorExtraction) { + notifyWallpaperColorsChanged(wp, wp.mWhich); + } } finally { Binder.restoreCallingIdentity(ident); } |