summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhomart Mukhamejanov <zhomart@google.com>2018-06-01 21:08:09 +0200
committerandroid-build-merger <android-build-merger@google.com>2018-06-01 21:08:09 +0200
commita64639f10488c6ce8554eea1bc8773ef69700a5c (patch)
treec7afc30dd47d09ca8a7c17995e74dd512dcd71ae
parentMerge "Let gr_init proceed even if we failed to load a font file" am: 2d85a0f6f7 (diff)
parentMerge "updater_sample: validate state only once" (diff)
downloadandroid_bootable_recovery-a64639f10488c6ce8554eea1bc8773ef69700a5c.tar
android_bootable_recovery-a64639f10488c6ce8554eea1bc8773ef69700a5c.tar.gz
android_bootable_recovery-a64639f10488c6ce8554eea1bc8773ef69700a5c.tar.bz2
android_bootable_recovery-a64639f10488c6ce8554eea1bc8773ef69700a5c.tar.lz
android_bootable_recovery-a64639f10488c6ce8554eea1bc8773ef69700a5c.tar.xz
android_bootable_recovery-a64639f10488c6ce8554eea1bc8773ef69700a5c.tar.zst
android_bootable_recovery-a64639f10488c6ce8554eea1bc8773ef69700a5c.zip
-rw-r--r--updater_sample/src/com/example/android/systemupdatersample/UpdateManager.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/updater_sample/src/com/example/android/systemupdatersample/UpdateManager.java b/updater_sample/src/com/example/android/systemupdatersample/UpdateManager.java
index 145cc83b1..2fe04bdde 100644
--- a/updater_sample/src/com/example/android/systemupdatersample/UpdateManager.java
+++ b/updater_sample/src/com/example/android/systemupdatersample/UpdateManager.java
@@ -64,6 +64,9 @@ public class UpdateManager {
private AtomicBoolean mManualSwitchSlotRequired = new AtomicBoolean(true);
+ /** Validate state only once when app binds to UpdateEngine. */
+ private AtomicBoolean mStateValidityEnsured = new AtomicBoolean(false);
+
@GuardedBy("mLock")
private UpdateData mLastUpdateData = null;
@@ -90,6 +93,7 @@ public class UpdateManager {
* Binds to {@link UpdateEngine}.
*/
public void bind() {
+ mStateValidityEnsured.set(false);
this.mUpdateEngine.bind(mUpdateEngineCallback);
}
@@ -468,7 +472,10 @@ public class UpdateManager {
mUpdateEngineStatus.set(status);
mProgress.set(progress);
- ensureCorrectUpdaterState();
+ if (!mStateValidityEnsured.getAndSet(true)) {
+ // We ensure correct state once only when sample app is bound to UpdateEngine.
+ ensureCorrectUpdaterState();
+ }
getOnProgressUpdateCallback().ifPresent(callback -> callback.accept(progress));