From f37b954ae604e8b6024f44cf0e9c278abad129c1 Mon Sep 17 00:00:00 2001 From: Andy Rozman Date: Sat, 15 May 2021 20:24:23 +0100 Subject: [PATCH] - fixed events from history - added some additional logging for TBR handling - changed PumpSyncStorage to use xstream instead json --- core/build.gradle | 4 ++++ .../plugins/pump/common/sync/PumpSyncStorage.kt | 15 ++++++--------- .../pump/medtronic/data/MedtronicHistoryData.kt | 6 +++++- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/core/build.gradle b/core/build.gradle index 9b2d54be1e..94176e85dc 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -18,5 +18,9 @@ android { dependencies { implementation project(':database') + + implementation ('com.thoughtworks.xstream:xstream:1.4.7') { + exclude group: 'xmlpull', module: 'xmlpull' + } } diff --git a/core/src/main/java/info/nightscout/androidaps/plugins/pump/common/sync/PumpSyncStorage.kt b/core/src/main/java/info/nightscout/androidaps/plugins/pump/common/sync/PumpSyncStorage.kt index f89103cb35..99903e73cb 100644 --- a/core/src/main/java/info/nightscout/androidaps/plugins/pump/common/sync/PumpSyncStorage.kt +++ b/core/src/main/java/info/nightscout/androidaps/plugins/pump/common/sync/PumpSyncStorage.kt @@ -3,6 +3,7 @@ package info.nightscout.androidaps.plugins.pump.common.sync import com.google.gson.Gson import com.google.gson.GsonBuilder import com.google.gson.reflect.TypeToken +import com.thoughtworks.xstream.XStream import info.nightscout.androidaps.data.DetailedBolusInfo import info.nightscout.androidaps.interfaces.PumpSync import info.nightscout.androidaps.logging.AAPSLogger @@ -23,12 +24,13 @@ class PumpSyncStorage @Inject constructor( val aapsLogger: AAPSLogger ) { - val pumpSyncStorageKey: String = "pump_sync_storage" + val pumpSyncStorageKey: String = "pump_sync_storage_xstream" var pumpSyncStorage: MutableMap> = mutableMapOf() var TBR: String = "TBR" var BOLUS: String = "BOLUS" var storageInitialized: Boolean = false var gson: Gson = GsonBuilder().create() + var xstream: XStream = XStream() init { @@ -43,15 +45,10 @@ class PumpSyncStorage @Inject constructor( var loaded = false if (sp.contains(pumpSyncStorageKey)) { - val jsonData: String = sp.getString("pump_sync_storage", ""); + val jsonData: String = sp.getString(pumpSyncStorageKey, ""); if (!jsonData.isBlank()) { - - val pumpSyncStorageType: Type = object : TypeToken>>() {}.getType() - - val baseMap: MutableMap> = gson.fromJson(jsonData, pumpSyncStorageType) //as MutableMap> - - pumpSyncStorage = baseMap + pumpSyncStorage = xstream.fromXML(jsonData, MutableMap::class.java) as MutableMap> aapsLogger.debug(String.format("Loading Pump Sync Storage: boluses=%d, tbrs=%d.", pumpSyncStorage[BOLUS]!!.size, pumpSyncStorage[TBR]!!.size)) loaded = true @@ -67,7 +64,7 @@ class PumpSyncStorage @Inject constructor( fun saveStorage() { if (!isStorageEmpty()) { - sp.putString(pumpSyncStorageKey, gson.toJson(pumpSyncStorage)) + sp.putString(pumpSyncStorageKey, xstream.toXML(pumpSyncStorage)) aapsLogger.debug(String.format("Saving Pump Sync Storage: boluses=%d, tbrs=%d.", pumpSyncStorage[BOLUS]!!.size, pumpSyncStorage[TBR]!!.size)) } } diff --git a/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/MedtronicHistoryData.kt b/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/MedtronicHistoryData.kt index 770b6b1b70..0affa3fe03 100644 --- a/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/MedtronicHistoryData.kt +++ b/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/MedtronicHistoryData.kt @@ -458,7 +458,7 @@ class MedtronicHistoryData @Inject constructor( medtronicPumpStatus.pumpType, medtronicPumpStatus.serialNumber!!) - aapsLogger.debug(LTag.PUMP, String.format(Locale.ENGLISH, "insertTherapyEventIfNewWithTimestamp [date=%d, eventType=%d, pumpId=%d, pumpSerial=%s] - Result: %b", + aapsLogger.debug(LTag.PUMP, String.format(Locale.ROOT, "insertTherapyEventIfNewWithTimestamp [date=%d, eventType=%s, pumpId=%d, pumpSerial=%s] - Result: %b", historyRecord.atechDateTime!!, eventType, historyRecord.pumpId, medtronicPumpStatus.serialNumber!!, result)) @@ -646,8 +646,12 @@ class MedtronicHistoryData @Inject constructor( val entryWithTempId = findDbEntry(tempBasalProcessDTO.itemOne, tbrRecords) + aapsLogger.debug(LTag.PUMP, "DD: entryWithTempId: " + (if (entryWithTempId==null) "null" else entryWithTempId.toString())) + val tbrEntry = tempBasalProcessDTO.itemOne!!.getDecodedDataEntry("Object") as TempBasalPair + aapsLogger.debug(LTag.PUMP, String.format("DD: tbrEntry=%s, tempBasalProcessDTO=%s", gson.toJson(tbrEntry), gson.toJson(tempBasalProcessDTO))) + if (entryWithTempId!=null) { aapsLogger.debug(LTag.PUMP, String.format("DD: tempIdEntry=%s, tbrEntry=%s, tempBasalProcessDTO=%s, pumpType=%s, serial=%s",