diff --git a/source/Globals.mc b/source/Globals.mc index ebd7e35..3c40a7d 100644 --- a/source/Globals.mc +++ b/source/Globals.mc @@ -32,4 +32,10 @@ class Globals { static const scApiResume = 200; // ms // Warn the user after fetching the menu if their watch is low on memory before the device crashes. static const scLowMem = 0.90; // percent as a fraction. + + // constants for PIN confirmation dialog + static const scPinMaxFailures = 5; // maximum number of failed pin confirmation attemps allwed in ... + static const scPinMaxFailureMinutes = 2; // ... this number of minutes before pin confirmation is locked for ... + static const scPinLockTimeMinutes = 10; // ... this number of minutes + } diff --git a/source/HomeAssistantPinConfirmation.mc b/source/HomeAssistantPinConfirmation.mc index 34cbfcc..830d365 100644 --- a/source/HomeAssistantPinConfirmation.mc +++ b/source/HomeAssistantPinConfirmation.mc @@ -242,11 +242,7 @@ class HomeAssistantPinConfirmationDelegate extends WatchUi.BehaviorDelegate { } class PinFailures { - - const MAX_FAILURES as Number = 5; // maximum number of failed pin confirmation attemps allwed in ... - const MAX_FAILURE_MINUTES as Number = 2; // ... this number of minutes before pin confirmation is locked for ... - const LOCK_TIME_MINUTES as Number = 10; // ... this number of minutes - + const STORAGE_KEY_FAILURES as String = "pin_failures"; const STORAGE_KEY_LOCKED as String = "pin_locked"; @@ -263,16 +259,16 @@ class PinFailures { function addFailure() { mFailures.add(Time.now().value()); // System.println("PinFailures addFailure() " + mFailures.size() + " PIN confirmation failures recorded"); - if (mFailures.size() >= MAX_FAILURES) { + if (mFailures.size() >= Globals.scPinMaxFailures) { // System.println("PinFailures addFailure() Too many failures detected"); - var oldestFailureOutdate = new Time.Moment(mFailures[0]).add(new Time.Duration(MAX_FAILURE_MINUTES * 60)); + var oldestFailureOutdate = new Time.Moment(mFailures[0]).add(new Time.Duration(Globals.scPinMaxFailureMinutes * 60)); // System.println("PinFailures addFailure() Oldest failure: " + oldestFailureOutdate.value() + " Now:" + Time.now().value()); if (new Time.Moment(Time.now().value()).greaterThan(oldestFailureOutdate)) { // System.println("PinFailures addFailure() Pruning oldest outdated failure"); mFailures = mFailures.slice(1, null); } else { mFailures = []; - mLockedUntil = Time.now().add(new Time.Duration(LOCK_TIME_MINUTES * Gregorian.SECONDS_PER_MINUTE)).value(); + mLockedUntil = Time.now().add(new Time.Duration(Globals.scPinLockTimeMinutes * Gregorian.SECONDS_PER_MINUTE)).value(); Application.Storage.setValue(STORAGE_KEY_LOCKED, mLockedUntil); // System.println("PinFailures addFailure() Locked until " + mLockedUntil); }