Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 246f1e93 authored by Aurélien Pomini's avatar Aurélien Pomini Committed by Android (Google) Code Review
Browse files

Merge "Reland "use new clearWallpaperLocked method everywhere"" into main

parents 098b0934 d997a7d9
Loading
Loading
Loading
Loading
+20 −11
Original line number Diff line number Diff line
@@ -2000,12 +2000,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub
            WallpaperData wallpaper, IRemoteCallback reply, ServiceInfo serviceInfo) {

        if (serviceInfo == null) {
            if (wallpaper.mWhich == (FLAG_LOCK | FLAG_SYSTEM)) {
                clearWallpaperLocked(FLAG_SYSTEM, wallpaper.userId, null);
                clearWallpaperLocked(FLAG_LOCK, wallpaper.userId, reply);
            } else {
            clearWallpaperLocked(wallpaper.mWhich, wallpaper.userId, reply);
            }
            return;
        }
        Slog.w(TAG, "Wallpaper isn't direct boot aware; using fallback until unlocked");
@@ -2037,7 +2032,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub
        WallpaperData data = null;
        synchronized (mLock) {
            if (mIsLockscreenLiveWallpaperEnabled) {
                clearWallpaperLocked(callingPackage, which, userId);
                clearWallpaperLocked(callingPackage, which, userId, null);
            } else {
                clearWallpaperLocked(which, userId, null);
            }
@@ -2057,7 +2052,8 @@ public class WallpaperManagerService extends IWallpaperManager.Stub
        }
    }

    private void clearWallpaperLocked(String callingPackage, int which, int userId) {
    private void clearWallpaperLocked(String callingPackage, int which, int userId,
            IRemoteCallback reply) {

        // Might need to bring it in the first time to establish our rewrite
        if (!mWallpaperMap.contains(userId)) {
@@ -2111,8 +2107,14 @@ public class WallpaperManagerService extends IWallpaperManager.Stub
        withCleanCallingIdentity(() -> clearWallpaperComponentLocked(wallpaper));
    }

    // TODO(b/266818039) remove this version of the method
    private void clearWallpaperLocked(int which, int userId, IRemoteCallback reply) {

        if (mIsLockscreenLiveWallpaperEnabled) {
            String callingPackage = mPackageManagerInternal.getNameForUid(getCallingUid());
            clearWallpaperLocked(callingPackage, which, userId, reply);
            return;
        }

        if (which != FLAG_SYSTEM && which != FLAG_LOCK) {
            throw new IllegalArgumentException("Must specify exactly one kind of wallpaper to clear");
        }
@@ -3284,15 +3286,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);
        }
@@ -3341,6 +3349,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub
                            Slog.d(TAG, "publish system wallpaper changed!");
                        }
                        liveSync.complete();
                        if (reply != null) reply.sendResult(null);
                    }
                };