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

Commit da058e26 authored by Christopher Tate's avatar Christopher Tate
Browse files

Also monitor MOVED_TO events for wallpaper updates

Restore uses moveTo(), not open/write/close, so we need
to watch for that as well.  Now the wallpaper service sees
and regenerates the wallpaper image immediately upon restore.

Bug 17909454

Change-Id: I0db224c3d507bdc40399d49bb4bea01899f76ad1
parent 6dea8de7
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -116,7 +116,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub {

        public WallpaperObserver(WallpaperData wallpaper) {
            super(getWallpaperDir(wallpaper.userId).getAbsolutePath(),
                    CLOSE_WRITE | DELETE | DELETE_SELF);
                    CLOSE_WRITE | MOVED_TO | DELETE | DELETE_SELF);
            mWallpaperDir = getWallpaperDir(wallpaper.userId);
            mWallpaper = wallpaper;
            mWallpaperFile = new File(mWallpaperDir, WALLPAPER);
@@ -137,9 +137,11 @@ public class WallpaperManagerService extends IWallpaperManager.Stub {
                File changedFile = new File(mWallpaperDir, path);
                if (mWallpaperFile.equals(changedFile)) {
                    notifyCallbacksLocked(mWallpaper);
                    if (mWallpaper.wallpaperComponent == null || event != CLOSE_WRITE
                    final boolean written = (event == CLOSE_WRITE || event == MOVED_TO);
                    if (mWallpaper.wallpaperComponent == null
                            || event != CLOSE_WRITE // includes the MOVED_TO case
                            || mWallpaper.imageWallpaperPending) {
                        if (event == CLOSE_WRITE) {
                        if (written) {
                            mWallpaper.imageWallpaperPending = false;
                        }
                        bindWallpaperComponentLocked(mImageWallpaper, true,