From 51cde1e60c43167f649eb62bfaa15429f845dd20 Mon Sep 17 00:00:00 2001 From: Zhomart Mukhamejanov Date: Thu, 31 May 2018 12:19:41 -0700 Subject: updater_sample: validate state only once Test: on device Change-Id: I0a8a87d7b69f0efdcbd17facbf42cb94fb96fe51 Signed-off-by: Zhomart Mukhamejanov --- .../com/example/android/systemupdatersample/UpdateManager.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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)); -- cgit v1.2.3