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

Commit 5c148532 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
parent 6c149326
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.