53 lines
1.5 KiB
Java
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));
|
|
}
|
|
|
|
}
|