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

Commit e7aadaaa authored by Bryan Mawhinney's avatar Bryan Mawhinney
Browse files

Workaround wallpaper restore race

If WallpaperManager is asked to read a wallpaper between when we
call mWm.clear and mWm.setStream, it is possible for us to end
up losing restored state such as cropHint and allowBackup

By not calling mWm.clear, we make this much less likely to happen.
It isn't necessary to call clear, as will explicitly overwrite
all the interesting state anyway.

Test: by repeated adb restore
Bug: 34760753
Change-Id: I2750695d5dd16077b47b5b8fca3a667b98cc4f6c
(cherry picked from commit 5c148532)
parent c342666a
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -217,9 +217,6 @@ public class WallpaperBackupAgent extends BackupAgent {
        final int sysWhich = FLAG_SYSTEM | (lockImageStage.exists() ? 0 : FLAG_LOCK);

        try {
            // First off, revert to the factory state
            mWm.clear(FLAG_SYSTEM | FLAG_LOCK);

            // It is valid for the imagery to be absent; it means that we were not permitted
            // to back up the original image on the source device, or there was no user-supplied
            // wallpaper image present.