diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java index 9b2cdd72a338c..a790dfd8b7681 100644 --- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java +++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java @@ -1993,7 +1993,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub WallpaperData data = null; synchronized (mLock) { if (mIsLockscreenLiveWallpaperEnabled) { - clearWallpaperLocked(callingPackage, false, which, userId); + clearWallpaperLocked(callingPackage, false, which, userId, null); } else { clearWallpaperLocked(false, which, userId, null); } @@ -2014,7 +2014,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub } private void clearWallpaperLocked(String callingPackage, boolean defaultFailed, - int which, int userId) { + int which, int userId, IRemoteCallback reply) { // Might need to bring it in the first time to establish our rewrite if (!mWallpaperMap.contains(userId)) { @@ -2068,9 +2068,15 @@ public class WallpaperManagerService extends IWallpaperManager.Stub withCleanCallingIdentity(() -> clearWallpaperComponentLocked(wallpaper)); } - // TODO(b/266818039) remove this version of the method private void clearWallpaperLocked(boolean defaultFailed, int which, int userId, IRemoteCallback reply) { + + if (mIsLockscreenLiveWallpaperEnabled) { + String callingPackage = mPackageManagerInternal.getNameForUid(getCallingUid()); + clearWallpaperLocked(callingPackage, defaultFailed, which, userId, reply); + return; + } + if (which != FLAG_SYSTEM && which != FLAG_LOCK) { throw new IllegalArgumentException("Must specify exactly one kind of wallpaper to clear"); } @@ -3234,15 +3240,21 @@ public class WallpaperManagerService extends IWallpaperManager.Stub boolean setWallpaperComponent(ComponentName name, String callingPackage, @SetWallpaperFlags int which, int userId) { if (mIsLockscreenLiveWallpaperEnabled) { - return setWallpaperComponentInternal(name, callingPackage, which, userId); + return setWallpaperComponentInternal(name, callingPackage, which, userId, null); } else { setWallpaperComponentInternalLegacy(name, callingPackage, which, userId); return true; } } + private boolean setWallpaperComponent(ComponentName name, @SetWallpaperFlags int which, + int userId) { + String callingPackage = mPackageManagerInternal.getNameForUid(getCallingUid()); + return setWallpaperComponentInternal(name, callingPackage, which, userId, null); + } + private boolean setWallpaperComponentInternal(ComponentName name, String callingPackage, - @SetWallpaperFlags int which, int userIdIn) { + @SetWallpaperFlags int which, int userIdIn, IRemoteCallback reply) { if (DEBUG) { Slog.v(TAG, "Setting new live wallpaper: which=" + which + ", component: " + name); } @@ -3291,6 +3303,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub Slog.d(TAG, "publish system wallpaper changed!"); } liveSync.complete(); + if (reply != null) reply.sendResult(null); } };