ChargingControl: Retry setting deadline if it fails
Do not save the target time unless setting deadline succeeds,
effectively allowing it to be retried later.
Change-Id: I572b935b088170d56623a33c5efd2292b1a67126
diff --git a/src/org/omnirom/omnilib/internal/health/ChargingControlController.java b/src/org/omnirom/omnilib/internal/health/ChargingControlController.java
index 1e92542..6f246db 100644
--- a/src/org/omnirom/omnilib/internal/health/ChargingControlController.java
+++ b/src/org/omnirom/omnilib/internal/health/ChargingControlController.java
@@ -577,22 +577,24 @@
}
long deadline = 0;
+ final long targetTime;
final ChargeTime t = getChargeTime();
if (!mConfigEnabled || t == null || mIsControlCancelledOnce) {
deadline = -1;
+ targetTime = 0;
} else {
if (t.getTargetTime() == mSavedTargetTime) {
return;
}
- mSavedTargetTime = t.getTargetTime();
- final long targetTime = t.getTargetTime();
+ targetTime = t.getTargetTime();
final long currentTime = System.currentTimeMillis();
deadline = (targetTime - currentTime) / 1000;
}
try {
mChargingControl.setChargingDeadline(deadline);
+ mSavedTargetTime = targetTime;
} catch (IllegalStateException | RemoteException | UnsupportedOperationException e) {
Log.e(TAG, "Failed to set charge deadline");
}