adding staleDataThreshold as snooze time

This commit is contained in:
RoumenGeorgiev 2017-08-04 14:48:44 +03:00 committed by GitHub
parent 529d267b9d
commit a8b17a1f22

View file

@ -9,11 +9,16 @@ import info.nightscout.androidaps.plugins.NSClientInternal.data.NSAlarm;
import info.nightscout.androidaps.plugins.NSClientInternal.data.NSSettingsStatus; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSSettingsStatus;
import info.nightscout.utils.SP; import info.nightscout.utils.SP;
// Added by Rumen for debugging
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** /**
* Created by mike on 03.12.2016. * Created by mike on 03.12.2016.
*/ */
public class Notification { public class Notification {
private static Logger log = LoggerFactory.getLogger(Notification.class);
public static final int URGENT = 0; public static final int URGENT = 0;
public static final int NORMAL = 1; public static final int NORMAL = 1;
public static final int LOW = 2; public static final int LOW = 2;
@ -55,6 +60,7 @@ public class Notification {
} }
public Notification(int id, Date date, String text, int level, Date validTo) { public Notification(int id, Date date, String text, int level, Date validTo) {
log.debug("Initialized Notification.class 1");
this.id = id; this.id = id;
this.date = date; this.date = date;
this.text = text; this.text = text;
@ -63,6 +69,7 @@ public class Notification {
} }
public Notification(int id, String text, int level, int validMinutes) { public Notification(int id, String text, int level, int validMinutes) {
log.debug("Initialized Notification.class 2");
this.id = id; this.id = id;
this.date = new Date(); this.date = new Date();
this.text = text; this.text = text;
@ -71,6 +78,7 @@ public class Notification {
} }
public Notification(int id, String text, int level) { public Notification(int id, String text, int level) {
log.debug("Initialized Notification.class 3");
this.id = id; this.id = id;
this.date = new Date(); this.date = new Date();
this.text = text; this.text = text;
@ -93,7 +101,7 @@ public class Notification {
this.id = NSALARM; this.id = NSALARM;
this.level = NORMAL; this.level = NORMAL;
this.text = nsAlarm.getTile(); this.text = nsAlarm.getTile();
if (isAlarmForLow() && SP.getBoolean(R.string.key_nsalarm_low, false) || isAlarmForHigh() && SP.getBoolean(R.string.key_nsalarm_high, false)) if (isAlarmForLow() && SP.getBoolean(R.string.key_nsalarm_low, false) || isAlarmForHigh() && SP.getBoolean(R.string.key_nsalarm_high, false) || isAlarmForStaleData() && SP.getBoolean(R.string.key_nsalarm_staledata,false))
this.soundId = R.raw.alarm; this.soundId = R.raw.alarm;
break; break;
case 2: case 2:
@ -112,7 +120,9 @@ public class Notification {
if (level == ANNOUNCEMENT) if (level == ANNOUNCEMENT)
return true; return true;
if (level == NORMAL && isAlarmForLow() && SP.getBoolean(R.string.key_nsalarm_low, false) || isAlarmForHigh() && SP.getBoolean(R.string.key_nsalarm_high, false) || isAlarmForStaleData() && SP.getBoolean(R.string.key_nsalarm_staledata, false)) if (level == NORMAL && isAlarmForLow() && SP.getBoolean(R.string.key_nsalarm_low, false) || isAlarmForHigh() && SP.getBoolean(R.string.key_nsalarm_high, false) || isAlarmForStaleData() && SP.getBoolean(R.string.key_nsalarm_staledata, false))
{
return true; return true;
}
if (level == URGENT && isAlarmForLow() && SP.getBoolean(R.string.key_nsalarm_urgent_low, false) || isAlarmForHigh() && SP.getBoolean(R.string.key_nsalarm_urgent_high, false) || isAlarmForStaleData() && SP.getBoolean(R.string.key_nsalarm_urgent_staledata, false)) if (level == URGENT && isAlarmForLow() && SP.getBoolean(R.string.key_nsalarm_urgent_low, false) || isAlarmForHigh() && SP.getBoolean(R.string.key_nsalarm_urgent_high, false) || isAlarmForStaleData() && SP.getBoolean(R.string.key_nsalarm_urgent_staledata, false))
return true; return true;
return false; return false;
@ -142,16 +152,22 @@ public class Notification {
return false; return false;
} }
boolean isAlarmForStaleData(){ static boolean isAlarmForStaleData(){
if(SP.getLong("snoozedTo", 0L) != 0L){
if(System.currentTimeMillis() < SP.getLong("snoozedTo", 0L)) {
log.debug("Alarm is snoozed for next "+(SP.getLong("snoozedTo", 0L)-System.currentTimeMillis())/1000+" seconds");
return false;
}
}
BgReading bgReading = MainApp.getDbHelper().lastBg(); BgReading bgReading = MainApp.getDbHelper().lastBg();
if (bgReading == null) if (bgReading == null)
return false; return false;
long bgReadingAgo = System.currentTimeMillis() - bgReading.date; long bgReadingAgo = System.currentTimeMillis() - bgReading.date;
int bgReadingAgoMin = (int) (bgReadingAgo / (1000 * 60)); int bgReadingAgoMin = (int) (bgReadingAgo / (1000 * 60));
//Integer staleDataThreshold = NSSettingsStatus.getInstance().getIntegerOrNull("alarmTimeagoWarnMins"); // Added for testing
//if (staleDataThreshold == null) //bgReadingAgoMin = 20;
// return false; log.debug("bgReadingAgoMin value is:"+bgReadingAgoMin);
if(bgReadingAgoMin > SP.getInt(R.string.key_nsalarm_staledatavalue,16)){ if(bgReadingAgoMin > SP.getInt(R.string.key_nsalarm_staledatavalue,15) && SP.getBoolean(R.string.key_nsalarm_staledata, false)){
return true; return true;
} }
return false; return false;