Files
DexcomBluetoothUploader/lib/nightscout/com/eveningoutpost/dexdrip/G5Model/DexSessionKeeper.java
2020-07-18 21:44:27 -04:00

53 lines
1.5 KiB
Java

package com.eveningoutpost.dexdrip.G5Model;
import com.eveningoutpost.dexdrip.Models.JoH;
import com.eveningoutpost.dexdrip.UtilityModels.Constants;
import com.eveningoutpost.dexdrip.UtilityModels.PersistentStore;
// jamorham
// track active session time
public class DexSessionKeeper {
private static final String PREF_SESSION_START = "OB1-SESSION-START";
private static final long WARMUP_PERIOD = Constants.HOUR_IN_MS * 2;
public static void clearStart() {
PersistentStore.setLong(PREF_SESSION_START, 0);
}
public static void setStart(long when) {
// TODO sanity check
PersistentStore.setLong(PREF_SESSION_START, when);
}
public static long getStart() {
// value 0 == not started
return PersistentStore.getLong(PREF_SESSION_START);
}
public static boolean isStarted() {
return getStart() != 0;
}
public static String prettyTime() {
if (isStarted()) {
final long elapsed = JoH.msSince(getStart());
if (elapsed < WARMUP_PERIOD) {
return JoH.niceTimeScalar((double) WARMUP_PERIOD - elapsed, 1);
} else {
return JoH.niceTimeScalar((double) elapsed, 1);
}
} else {
return "";
}
}
// check for mismatch between sensor state currency and transmitter time
public static boolean warmUpTimeValid() {
return (isStarted() && (JoH.msSince(getStart()) <= WARMUP_PERIOD));
}
}