conditional upload
This commit is contained in:
parent
d2e7cc9041
commit
c49da9a818
|
@ -554,6 +554,21 @@ public class Profile {
|
|||
return ret;
|
||||
}
|
||||
|
||||
public ProfileValue[] getSingleTargets() {
|
||||
if (targetLow_v == null)
|
||||
targetLow_v = convertToSparseArray(targetLow);
|
||||
if (targetHigh_v == null)
|
||||
targetHigh_v = convertToSparseArray(targetHigh);
|
||||
ProfileValue[] ret = new ProfileValue[targetLow_v.size()];
|
||||
|
||||
for (Integer index = 0; index < targetLow_v.size(); index++) {
|
||||
Integer tas = (int) targetLow_v.keyAt(index);
|
||||
double target = (targetLow_v.valueAt(index) + targetHigh_v.valueAt(index)) / 2;
|
||||
ret[index] = new ProfileValue(tas, target);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public String getTargetList() {
|
||||
if (targetLow_v == null)
|
||||
targetLow_v = convertToSparseArray(targetLow);
|
||||
|
|
|
@ -53,7 +53,9 @@ public interface PumpInterface {
|
|||
|
||||
// Status to be passed to NS
|
||||
JSONObject getJSONStatus(Profile profile, String profileName);
|
||||
String deviceID();
|
||||
String manufacter();
|
||||
String model();
|
||||
String serialNumber();
|
||||
|
||||
// Pump capabilities
|
||||
PumpDescription getPumpDescription();
|
||||
|
|
|
@ -221,6 +221,24 @@ object TidepoolUploader {
|
|||
}
|
||||
}
|
||||
|
||||
fun deleteAllData() {
|
||||
if (session!!.authReply!!.userid != null) {
|
||||
extendWakeLock(60000)
|
||||
val call = session!!.service?.deleteAllData(session!!.token!!, session!!.authReply!!.userid!!)
|
||||
call?.enqueue(TidepoolCallback(session!!, "Delete all data", {
|
||||
connectionStatus = TidepoolUploader.ConnectionStatus.DISCONNECTED
|
||||
RxBus.send(EventTidepoolStatus(("All data removed OK")))
|
||||
releaseWakeLock()
|
||||
}, {
|
||||
connectionStatus = TidepoolUploader.ConnectionStatus.DISCONNECTED
|
||||
RxBus.send(EventTidepoolStatus(("All data remove FAILED")))
|
||||
releaseWakeLock()
|
||||
}))
|
||||
} else {
|
||||
log.error("Got login response but cannot determine userId - cannot proceed")
|
||||
}
|
||||
}
|
||||
|
||||
fun getLastEnd(): Long {
|
||||
val result = SP.getLong(R.string.key_tidepool_last_end, 0)
|
||||
return Math.max(result, DateUtil.now() - T.months(2).msecs())
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package info.nightscout.androidaps.plugins.general.tidepool.comm
|
||||
|
||||
import info.nightscout.androidaps.MainApp
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.RxBus
|
||||
import info.nightscout.androidaps.logging.L
|
||||
import info.nightscout.androidaps.plugins.general.tidepool.elements.*
|
||||
|
@ -8,6 +9,7 @@ import info.nightscout.androidaps.plugins.general.tidepool.events.EventTidepoolS
|
|||
import info.nightscout.androidaps.plugins.general.tidepool.utils.GsonInstance
|
||||
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin
|
||||
import info.nightscout.androidaps.utils.DateUtil
|
||||
import info.nightscout.androidaps.utils.SP
|
||||
import info.nightscout.androidaps.utils.T
|
||||
import org.slf4j.LoggerFactory
|
||||
import java.util.*
|
||||
|
@ -47,11 +49,16 @@ object UploadChunk {
|
|||
|
||||
val records = LinkedList<BaseElement>()
|
||||
|
||||
records.addAll(getTreatments(start, end))
|
||||
records.addAll(getBloodTests(start, end))
|
||||
records.addAll(getBasals(start, end))
|
||||
records.addAll(getBgReadings(start, end))
|
||||
records.addAll(getProfiles(start, end))
|
||||
if (SP.getBoolean(R.string.key_tidepool_upload_bolus, true))
|
||||
records.addAll(getTreatments(start, end))
|
||||
if (SP.getBoolean(R.string.key_tidepool_upload_bg, true))
|
||||
records.addAll(getBloodTests(start, end))
|
||||
if (SP.getBoolean(R.string.key_tidepool_upload_tbr, true))
|
||||
records.addAll(getBasals(start, end))
|
||||
if (SP.getBoolean(R.string.key_tidepool_upload_cgm, true))
|
||||
records.addAll(getBgReadings(start, end))
|
||||
if (SP.getBoolean(R.string.key_tidepool_upload_profile, true))
|
||||
records.addAll(getProfiles(start, end))
|
||||
|
||||
return GsonInstance.defaultGsonInstance().toJson(records)
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package info.nightscout.androidaps.plugins.general.tidepool.elements
|
|||
import com.google.gson.annotations.Expose
|
||||
import info.nightscout.androidaps.data.Profile
|
||||
import info.nightscout.androidaps.db.ProfileSwitch
|
||||
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
|
@ -21,14 +22,16 @@ class ProfileElement(ps: ProfileSwitch)
|
|||
internal var carbRatios: IcProfile = IcProfile()
|
||||
@Expose
|
||||
internal var insulinSensitivities: IsfProfile = IsfProfile()
|
||||
@Expose
|
||||
internal var deviceId: String = (ConfigBuilderPlugin.getPlugin().activePump?.model() ?: "Unknown") + ":" + (ConfigBuilderPlugin.getPlugin().activePump?.model() ?: "Unknown")
|
||||
|
||||
init {
|
||||
type = "pumpSettings"
|
||||
val profile: Profile = ps.getProfileObject()!!
|
||||
for (br in profile.basalValues)
|
||||
basalSchedules.Normal.add(BasalRate(br.timeAsSeconds * 1000, br.value))
|
||||
for (target in profile.targets)
|
||||
bgTargets.Normal.add(Target(target.timeAsSeconds * 1000, Profile.toMgdl(target.low, profile.units), Profile.toMgdl(target.high, profile.units)))
|
||||
for (target in profile.singleTargets)
|
||||
bgTargets.Normal.add(Target(target.timeAsSeconds * 1000, Profile.toMgdl(target.value, profile.units)))
|
||||
for (ic in profile.ics)
|
||||
carbRatios.Normal.add(Ratio(ic.timeAsSeconds * 1000, ic.value))
|
||||
for (isf in profile.isfs)
|
||||
|
@ -63,9 +66,7 @@ class ProfileElement(ps: ProfileSwitch)
|
|||
@field:Expose
|
||||
internal var start: Int,
|
||||
@field:Expose
|
||||
internal var low: Double,
|
||||
@field:Expose
|
||||
internal var high: Double
|
||||
internal var target: Double
|
||||
)
|
||||
|
||||
inner class IcProfile internal constructor(
|
||||
|
|
|
@ -2,9 +2,9 @@ package info.nightscout.androidaps.plugins.general.tidepool.messages
|
|||
|
||||
import com.google.gson.annotations.Expose
|
||||
import info.nightscout.androidaps.BuildConfig
|
||||
import info.nightscout.androidaps.interfaces.PluginBase
|
||||
import info.nightscout.androidaps.MainApp
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin
|
||||
import info.nightscout.androidaps.plugins.source.SourceNSClientPlugin
|
||||
import info.nightscout.androidaps.utils.DateUtil
|
||||
import info.nightscout.androidaps.utils.T
|
||||
import java.util.*
|
||||
|
@ -12,7 +12,7 @@ import java.util.*
|
|||
class OpenDatasetRequestMessage : BaseMessage() {
|
||||
|
||||
@Expose
|
||||
var deviceId: String? = null
|
||||
var deviceId: String = (ConfigBuilderPlugin.getPlugin().activePump?.model() ?: "Unknown") + ":" + (ConfigBuilderPlugin.getPlugin().activePump?.model() ?: "Unknown")
|
||||
@Expose
|
||||
var time = DateUtil.toISOAsUTC(DateUtil.now())
|
||||
@Expose
|
||||
|
@ -25,11 +25,11 @@ class OpenDatasetRequestMessage : BaseMessage() {
|
|||
@Expose
|
||||
var computerTime = DateUtil.toISONoZone(DateUtil.now())
|
||||
@Expose
|
||||
var dataSetType = UPLOAD_TYPE // omit for "normal"
|
||||
var dataSetType = "continuous"
|
||||
@Expose
|
||||
var deviceManufacturers = arrayOf(((ConfigBuilderPlugin.getPlugin().activeBgSource ?: SourceNSClientPlugin.getPlugin()) as PluginBase).name)
|
||||
var deviceManufacturers = arrayOf("Dexcom", "Medtronic")
|
||||
@Expose
|
||||
var deviceModel = ((ConfigBuilderPlugin.getPlugin().activeBgSource ?: SourceNSClientPlugin.getPlugin()) as PluginBase).name
|
||||
var deviceModel = (ConfigBuilderPlugin.getPlugin().activePump?.model() ?: "Unknown")
|
||||
@Expose
|
||||
var deviceTags = arrayOf("bgm", "cgm", "insulin-pump")
|
||||
@Expose
|
||||
|
@ -53,8 +53,4 @@ class OpenDatasetRequestMessage : BaseMessage() {
|
|||
val name = "org.tidepool.deduplicator.dataset.delete.origin"
|
||||
}
|
||||
|
||||
companion object {
|
||||
internal val UPLOAD_TYPE = "continuous"
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1363,6 +1363,16 @@
|
|||
<string name="old_version">old version</string>
|
||||
<string name="very_old_version">very old version</string>
|
||||
<string name="new_version_warning">New version for at least %1$d days available! Fallback to LGS after 60 days, loop will be disabled after 90 days</string>
|
||||
<string name="tidepool_upload_cgm">Upload CGM data</string>
|
||||
<string name="key_tidepool_upload_cgm" translatable="false">tidepool_upload_cgm</string>
|
||||
<string name="key_tidepool_upload_bolus" translatable="false">tidepool_upload_bolus</string>
|
||||
<string name="tidepool_upload_bolus">Upload treatments (insulin, carbs)</string>
|
||||
<string name="key_tidepool_upload_tbr" translatable="false">tidepool_upload_tbr</string>
|
||||
<string name="tidepool_upload_tbr">Upload temporary basals</string>
|
||||
<string name="key_tidepool_upload_profile" translatable="false">tidepool_upload_profile</string>
|
||||
<string name="tidepool_upload_profile">Upload profile switches, temp targets</string>
|
||||
<string name="key_tidepool_upload_bg" translatable="false">tidepool_upload_bg</string>
|
||||
<string name="tidepool_upload_bg">Upload BG tests</string>
|
||||
|
||||
<plurals name="objective_days">
|
||||
<item quantity="one">%1$d day</item>
|
||||
|
|
|
@ -16,6 +16,26 @@
|
|||
<Preference
|
||||
android:key="@string/key_tidepool_test_login"
|
||||
android:title="@string/title_tidepool_test_login" />
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="true"
|
||||
android:key="@string/key_tidepool_upload_cgm"
|
||||
android:title="@string/tidepool_upload_cgm" />
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="true"
|
||||
android:key="@string/key_tidepool_upload_bolus"
|
||||
android:title="@string/tidepool_upload_bolus" />
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="true"
|
||||
android:key="@string/key_tidepool_upload_bg"
|
||||
android:title="@string/tidepool_upload_bg" />
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="true"
|
||||
android:key="@string/key_tidepool_upload_tbr"
|
||||
android:title="@string/tidepool_upload_tbr" />
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="true"
|
||||
android:key="@string/key_tidepool_upload_profile"
|
||||
android:title="@string/tidepool_upload_profile" />
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="true"
|
||||
android:enabled="false"
|
||||
|
|
Loading…
Reference in a new issue