diff --git a/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java b/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java index 4a7e1110aad092b11c1c44bacec2596712abe957..7634801cb6e7fb36ae9b45d9a5c01e6a76271aae 100644 --- a/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java +++ b/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java @@ -745,19 +745,18 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc // Get the most recently written CGM record for the active pump. PumpStatusEvent pumpStatusData = null; - PumpInfo pump = getActivePump(); + // ignoring activePump atm + //PumpInfo pump = getActivePump(); - if (pump != null && pump.isValid() && pump.getPumpHistory().size() > 0) { - pumpStatusData = pump.getPumpHistory().last(); + if (dataStore.getLastPumpStatus().getEventDate().getTime() > 0) { + pumpStatusData = dataStore.getLastPumpStatus(); } - // FIXME - grab the last item from the activePump's getPumpHistory updateChart(mRealm.where(PumpStatusEvent.class) .greaterThan("eventDate", new Date(System.currentTimeMillis() - 1000*60*60*24)) .findAllSorted("eventDate", Sort.ASCENDING)); if (pumpStatusData != null) { - String sgvString; if (configurationStore.isMmolxl()) { float fBgValue = (float) pumpStatusData.getSgv(); diff --git a/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java b/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java index b7881f6c2d24c284ef14f116d98f83d15b61b85f..bf08008fe59b2fcc4864688476b55dbeceb25e28 100644 --- a/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java +++ b/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java @@ -111,7 +111,6 @@ public class MedtronicCnlIntentService extends IntentService { short pumpBatteryLevel = dataStore.getLastPumpStatus().getBatteryPercentage(); - if (timeLastGoodSGV != 0) { timePollExpected = timeLastGoodSGV + POLL_PERIOD_MS + POLL_GRACE_PERIOD_MS + (POLL_PERIOD_MS * ((timePollStarted - 1000L - (timeLastGoodSGV + POLL_GRACE_PERIOD_MS)) / POLL_PERIOD_MS)); } diff --git a/app/src/main/java/info/nightscout/android/utils/DataStore.java b/app/src/main/java/info/nightscout/android/utils/DataStore.java index 34ff4deec0737d25133e442a9f1bc6948ebf0ba6..bb58b87a249173691fc81b378783c5b2b2c281bf 100644 --- a/app/src/main/java/info/nightscout/android/utils/DataStore.java +++ b/app/src/main/java/info/nightscout/android/utils/DataStore.java @@ -1,9 +1,12 @@ package info.nightscout.android.utils; +import com.bugfender.sdk.a.a.k.a; + import java.util.Date; import info.nightscout.android.model.medtronicNg.PumpStatusEvent; +import io.realm.Realm; /** * Created by volker on 30.03.2017. @@ -11,13 +14,16 @@ import info.nightscout.android.model.medtronicNg.PumpStatusEvent; public class DataStore { private static DataStore instance; + private final Realm mRealm; private PumpStatusEvent lastPumpStatus; private int uplooaderBatteryLevel = 0; private int unavailableSGVCount = 0; private long activePumpMac = 0; - private DataStore() {} + private DataStore() { + mRealm = Realm.getDefaultInstance(); + } public static DataStore getInstance() { if (DataStore.instance == null) { @@ -27,7 +33,8 @@ public class DataStore { PumpStatusEvent dummyStatus = new PumpStatusEvent(); dummyStatus.setEventDate(new Date(0)); - instance.setLastPumpStatus(dummyStatus); + // bypass setter to avoid dealing with a real Realm object + instance.lastPumpStatus = dummyStatus; } return instance; @@ -38,7 +45,7 @@ public class DataStore { } public void setLastPumpStatus(PumpStatusEvent lastPumpStatus) { - this.lastPumpStatus = lastPumpStatus; + this.lastPumpStatus = mRealm.copyFromRealm(lastPumpStatus);; } public int getUplooaderBatteryLevel() {