From 4e151e3e739dcf4e52aa984705c3977855acbbd8 Mon Sep 17 00:00:00 2001 From: Volker Richert <v.richert@addmore.de> Date: Thu, 30 Mar 2017 15:58:07 +0200 Subject: [PATCH] create a copy of lastPumpStatus --- .../nightscout/android/medtronic/MainActivity.java | 9 ++++----- .../service/MedtronicCnlIntentService.java | 1 - .../info/nightscout/android/utils/DataStore.java | 13 ++++++++++--- 3 files changed, 14 insertions(+), 9 deletions(-) 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 4a7e111..7634801 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 b7881f6..bf08008 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 34ff4de..bb58b87 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() { -- GitLab