下面列出了com.google.gson.internal.bind.DateTypeAdapter#com.eveningoutpost.dexdrip.Models.Calibration 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public BgGraphBuilder(Context context, long start, long end, int numValues){
end_time = end;
start_time = start;
bgReadings = BgReading.latestForGraph( numValues, start, end);
calibrations = Calibration.latestForGraph( numValues, start, end);
this.context = context;
this.prefs = PreferenceManager.getDefaultSharedPreferences(context);
this.highMark = Double.parseDouble(prefs.getString("highValue", "170"));
this.lowMark = Double.parseDouble(prefs.getString("lowValue", "70"));
this.doMgdl = (prefs.getString("units", "mgdl").equals("mgdl"));
defaultMinY = unitized(40);
defaultMaxY = unitized(250);
pointSize = isXLargeTablet(context) ? 5 : 3;
axisTextSize = isXLargeTablet(context) ? 20 : Axis.DEFAULT_TEXT_SIZE_SP;
previewAxisTextSize = isXLargeTablet(context) ? 12 : 5;
hoursPreviewStep = isXLargeTablet(context) ? 2 : 1;
}
public BgGraphBuilder(Context context, long start, long end, int numValues){
end_time = end;
start_time = start;
bgReadings = BgReading.latestForGraph( numValues, start, end);
calibrations = Calibration.latestForGraph( numValues, start, end);
this.context = context;
this.prefs = PreferenceManager.getDefaultSharedPreferences(context);
this.highMark = Double.parseDouble(prefs.getString("highValue", "170"));
this.lowMark = Double.parseDouble(prefs.getString("lowValue", "70"));
this.doMgdl = (prefs.getString("units", "mgdl").equals("mgdl"));
defaultMinY = unitized(40);
defaultMaxY = unitized(250);
pointSize = isXLargeTablet(context) ? 5 : 3;
axisTextSize = isXLargeTablet(context) ? 20 : Axis.DEFAULT_TEXT_SIZE_SP;
previewAxisTextSize = isXLargeTablet(context) ? 12 : 5;
hoursPreviewStep = isXLargeTablet(context) ? 2 : 1;
}
private void addBgReadingValues() {
final boolean show_filtered = prefs.getBoolean("show_filtered_curve", false);
for (BgReading bgReading : bgReadings) {
if (bgReading.raw_calculated != 0 && prefs.getBoolean("interpret_raw", false)) {
rawInterpretedValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(bgReading.raw_calculated),(float) unitized(bgReading.filtered_calculated_value)));
} else if (bgReading.calculated_value >= 400) {
highValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(400),(float) unitized(bgReading.filtered_calculated_value)));
} else if (unitized(bgReading.calculated_value) >= highMark) {
highValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(bgReading.calculated_value), (float) unitized(bgReading.filtered_calculated_value)));
} else if (unitized(bgReading.calculated_value) >= lowMark) {
inRangeValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(bgReading.calculated_value), (float) unitized(bgReading.filtered_calculated_value)));
} else if (bgReading.calculated_value >= 40) {
lowValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(bgReading.calculated_value),(float) unitized(bgReading.filtered_calculated_value)));
} else if (bgReading.calculated_value > 13) {
lowValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(40), (float) unitized(bgReading.filtered_calculated_value)));
}
if ((show_filtered) && (bgReading.filtered_calculated_value > 0) && (bgReading.filtered_calculated_value != bgReading.calculated_value)) {
filteredValues.add(new PointValueExtended((float) ((bgReading.timestamp - timeshift) / FUZZER), (float) unitized(bgReading.filtered_calculated_value)));
}
}
for (Calibration calibration : calibrations) {
calibrationValues.add(new PointValueExtended((float) (calibration.timestamp / FUZZER), (float) unitized(calibration.bg)));
}
}
@Override
public CalibrationData getCalibrationData(long until) {
// TODO cache must understand until
CalibrationData cd = loadDataFromCache(TAG);
if (cd == null) {
UserError.Log.d(TAG, "Regenerating Calibration data cache");
final List<Calibration> calibrationl = Calibration.latestValid(1, until);
if ((calibrationl != null) && (calibrationl.size() > 0)) {
final Calibration calibration = calibrationl.get(0); // first and only
if (calibration != null) {
// produce the CalibrationData result
cd = new CalibrationData(calibration.slope, calibration.intercept);
// saveDataToCache(TAG, cd);
}
}
}
return cd; // null if invalid
}
@Override
public CalibrationData getCalibrationData(long until) {
// TODO cache must understand until
CalibrationData cd = loadDataFromCache(TAG);
if (cd == null) {
UserError.Log.d(TAG, "Regenerating Calibration data cache");
final List<Calibration> calibrationl = Calibration.latestValid(1, until);
if ((calibrationl != null) && (calibrationl.size() > 0)) {
final Calibration calibration = calibrationl.get(0); // first and only
if (calibration != null) {
// produce the CalibrationData result
cd = new CalibrationData(calibration.slope, calibration.intercept);
// saveDataToCache(TAG, cd);
}
}
}
return cd; // null if invalid
}
public boolean uploadRest(List<BgReading> glucoseDataSets, List<BloodTest> meterRecords, List<Calibration> calRecords) {
boolean apiStatus = false;
if (enableRESTUpload) {
long start = System.currentTimeMillis();
Log.i(TAG, String.format("Starting upload of %s record using a REST API", glucoseDataSets.size()));
apiStatus = doRESTUpload(prefs, glucoseDataSets, meterRecords, calRecords);
Log.i(TAG, String.format("Finished upload of %s record using a REST API in %s ms result: %b", glucoseDataSets.size(), System.currentTimeMillis() - start, apiStatus));
if (prefs.getBoolean("cloud_storage_api_download_enable", false)) {
start = System.currentTimeMillis();
final boolean substatus = doRESTtreatmentDownload(prefs);
if (substatus) {
Home.staticRefreshBGCharts();
}
Log.i(TAG, String.format("Finished download using a REST API in %s ms result: %b", System.currentTimeMillis() - start, substatus));
}
}
return apiStatus;
}
private void populateV1APIMeterReadingEntry(JSONArray array, Calibration record) throws Exception {
if (record == null) {
Log.e(TAG, "Received null calibration record in populateV1ApiMeterReadingEntry !");
return;
}
JSONObject json = new JSONObject();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.US);
format.setTimeZone(TimeZone.getDefault());
json.put("device", "xDrip-" + prefs.getString("dex_collection_method", "BluetoothWixel"));
json.put("type", "mbg");
json.put("date", record.timestamp);
json.put("dateString", format.format(record.timestamp));
json.put("mbg", record.bg);
json.put("sysTime", format.format(record.timestamp));
array.put(json);
}
private Point createCalibrationPoint(Calibration record) {
Point.Builder builder = Point.measurement("calibration")
.time(record.timestamp, TimeUnit.MILLISECONDS)
.tag("device", "xDrip-" + prefs.getString("dex_collection_method", "BluetoothWixel"))
.tag("type", "cal");
if (record.check_in) {
builder.addField("slope", record.first_slope)
.addField("intercept", record.first_intercept)
.addField("scale", record.first_scale);
} else {
builder.addField("slope", (1000 / record.slope))
.addField("intercept", ((record.intercept * -1000) / record.slope))
.addField("scale", 1);
}
return builder.build();
}
public BgGraphBuilder(Context context, long start, long end, int numValues){
end_time = end;
start_time = start;
bgReadings = BgReading.latestForGraph( numValues, start, end);
calibrations = Calibration.latestForGraph( numValues, start, end);
this.context = context;
this.prefs = PreferenceManager.getDefaultSharedPreferences(context);
this.highMark = Double.parseDouble(prefs.getString("highValue", "170"));
this.lowMark = Double.parseDouble(prefs.getString("lowValue", "70"));
this.doMgdl = (prefs.getString("units", "mgdl").equals("mgdl"));
defaultMinY = unitized(40);
defaultMaxY = unitized(250);
pointSize = isXLargeTablet(context) ? 5 : 3;
axisTextSize = isXLargeTablet(context) ? 20 : Axis.DEFAULT_TEXT_SIZE_SP;
previewAxisTextSize = isXLargeTablet(context) ? 12 : 5;
hoursPreviewStep = isXLargeTablet(context) ? 2 : 1;
}
private void addBgReadingValues() {
final boolean show_filtered = prefs.getBoolean("show_filtered_curve", false);
for (BgReading bgReading : bgReadings) {
if (bgReading.raw_calculated != 0 && prefs.getBoolean("interpret_raw", false)) {
rawInterpretedValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(bgReading.raw_calculated),(float) unitized(bgReading.filtered_calculated_value)));
} else if (bgReading.calculated_value >= 400) {
highValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(400),(float) unitized(bgReading.filtered_calculated_value)));
} else if (unitized(bgReading.calculated_value) >= highMark) {
highValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(bgReading.calculated_value), (float) unitized(bgReading.filtered_calculated_value)));
} else if (unitized(bgReading.calculated_value) >= lowMark) {
inRangeValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(bgReading.calculated_value), (float) unitized(bgReading.filtered_calculated_value)));
} else if (bgReading.calculated_value >= 40) {
lowValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(bgReading.calculated_value),(float) unitized(bgReading.filtered_calculated_value)));
} else if (bgReading.calculated_value > 13) {
lowValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(40), (float) unitized(bgReading.filtered_calculated_value)));
}
if ((show_filtered) && (bgReading.filtered_calculated_value > 0) && (bgReading.filtered_calculated_value != bgReading.calculated_value)) {
filteredValues.add(new PointValueExtended((float) ((bgReading.timestamp - timeshift) / FUZZER), (float) unitized(bgReading.filtered_calculated_value)));
}
}
for (Calibration calibration : calibrations) {
calibrationValues.add(new PointValueExtended((float) (calibration.timestamp / FUZZER), (float) unitized(calibration.bg)));
}
}
private void populateV1APICalibrationEntry(JSONArray array, Calibration record) throws Exception {
//do not upload undefined slopes
if(record.slope == 0d) return;
JSONObject json = new JSONObject();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.US);
format.setTimeZone(TimeZone.getDefault());
json.put("device", "xDrip-" + prefs.getString("dex_collection_method", "BluetoothWixel"));
json.put("type", "cal");
json.put("date", record.timestamp);
json.put("dateString", format.format(record.timestamp));
json.put("slope", getNightscoutSlope(record));
json.put("intercept", getNightscoutIntercept(record));
json.put("scale", getNightscoutScale(record));
json.put("sysTime", format.format(record.timestamp));
array.put(json);
}
private static String sensorAndCalibrationsToJson(Sensor sensor, int limit) {
SensorCalibrations[] sensorCalibrations = new SensorCalibrations[1];
sensorCalibrations[0] = new SensorCalibrations();
sensorCalibrations[0].sensor = sensor;
sensorCalibrations[0].calibrations = Calibration.getCalibrationsForSensor(sensor, limit);
if (d) Log.d(TAG, "calibrations size " + sensorCalibrations[0].calibrations.size());
Gson gson = new GsonBuilder()
.excludeFieldsWithoutExposeAnnotation()
.registerTypeAdapter(Date.class, new DateTypeAdapter())
.serializeSpecialFloatingPointValues()
.create();
String output = gson.toJson(sensorCalibrations);
if (d) Log.d(TAG, "sensorAndCalibrationsToJson created the string " + output);
return output;
}
public boolean uploadRest(List<BgReading> glucoseDataSets, List<BloodTest> meterRecords, List<Calibration> calRecords) {
boolean apiStatus = false;
if (enableRESTUpload) {
long start = System.currentTimeMillis();
Log.i(TAG, String.format("Starting upload of %s record using a REST API", glucoseDataSets.size()));
apiStatus = doRESTUpload(prefs, glucoseDataSets, meterRecords, calRecords);
Log.i(TAG, String.format("Finished upload of %s record using a REST API in %s ms result: %b", glucoseDataSets.size(), System.currentTimeMillis() - start, apiStatus));
if (prefs.getBoolean("cloud_storage_api_download_enable", false)) {
start = System.currentTimeMillis();
final boolean substatus = doRESTtreatmentDownload(prefs);
if (substatus) {
Home.staticRefreshBGCharts();
}
Log.i(TAG, String.format("Finished download using a REST API in %s ms result: %b", System.currentTimeMillis() - start, substatus));
}
}
return apiStatus;
}
private Point createCalibrationPoint(Calibration record) {
Point.Builder builder = Point.measurement("calibration")
.time(record.timestamp, TimeUnit.MILLISECONDS)
.tag("device", "xDrip-" + prefs.getString("dex_collection_method", "BluetoothWixel"))
.tag("type", "cal");
if (record.check_in) {
builder.addField("slope", record.first_slope)
.addField("intercept", record.first_intercept)
.addField("scale", record.first_scale);
} else {
builder.addField("slope", (1000 / record.slope))
.addField("intercept", ((record.intercept * -1000) / record.slope))
.addField("scale", 1);
}
return builder.build();
}
public static DataMap getCalibrations(long startTime) {
Calibration last = Calibration.last();
if (last != null) {
Log.d(TAG, "getCalibrations last.timestamp:" + JoH.dateTimeText(last.timestamp));
}
List<Calibration> graph = Calibration.latestForGraph(60, startTime, Long.MAX_VALUE);
//calibrations = Calibration.latestForGraph(numValues, start - (3 * Constants.DAY_IN_MS), end);
if (!graph.isEmpty()) {
Log.d(TAG, "getCalibrations graph size=" + graph.size());
final ArrayList<DataMap> dataMaps = new ArrayList<>(graph.size());
DataMap entries = null;
//if (last.slope_confidence != 0) entries = dataMapForWatchface(last);
for (Calibration data : graph) {
if (data.slope_confidence != 0) {
if (entries == null) {
entries = dataMapForWatchface(data);
dataMaps.add(dataMapForWatchface(data));
}
else
dataMaps.add(dataMapForWatchface(data));
}
}
if (entries != null) {
entries.putDataMapArrayList("entries", dataMaps);
Log.d(TAG, "getCalibrations entries=" + entries);
}
return entries;
}
else return null;
}
public static void addToQueue(Calibration calibration, Context context) {
CalibrationSendQueue calibrationSendQueue = new CalibrationSendQueue();
calibrationSendQueue.calibration = calibration;
calibrationSendQueue.success = false;
calibrationSendQueue.mongo_success = false;
calibrationSendQueue.save();
}
public void bindView(View view, Context context, Calibration calibration) {
final CalibrationDataCursorAdapterViewHolder tag = (CalibrationDataCursorAdapterViewHolder) view.getTag();
tag.raw_data_id.setText(Double.toString(calibration.bg));
tag.raw_data_value.setText(Double.toString(calibration.estimate_raw_at_time_of_calibration));
tag.raw_data_slope.setText(Double.toString(calibration.slope));
tag.raw_data_timestamp.setText(Double.toString(calibration.intercept));
}
private void getData() {
final long startTime = new Date().getTime() - (60000 * 60 * 24 * 3);//3 days
final List<Calibration> latest = Calibration.latestForGraph(60, startTime);
CalibrationDataCursorAdapter adapter = new CalibrationDataCursorAdapter(this, latest);
this.setListAdapter(adapter);
String msg = "";
int size = 0;
if (latest != null) size = latest.size();
if (size == 0) {
msg = getResources().getString(R.string.notify_table_size, "Calibration", size);
JoH.static_toast(xdrip.getAppContext(), msg, Toast.LENGTH_SHORT);
}
}
public static double getNightscoutScale(Calibration cal) {
if(cal.check_in) {
return cal.first_scale;
} else {
return 1;
}
}
public boolean upload(BgReading glucoseDataSet, Calibration meterRecord, Calibration calRecord) {
List<BgReading> glucoseDataSets = new ArrayList<BgReading>();
glucoseDataSets.add(glucoseDataSet);
List<Calibration> meterRecords = new ArrayList<Calibration>();
meterRecords.add(meterRecord);
List<Calibration> calRecords = new ArrayList<Calibration>();
calRecords.add(calRecord);
return upload(glucoseDataSets, meterRecords, calRecords);
}
static void upsertSensorCalibratonsFromJson(String json) {
Log.i(TAG, "upsertSensorCalibratonsFromJson called");
SensorCalibrations[] sensorCalibrations = getSensorCalibrations(json);
for (SensorCalibrations SensorCalibration : sensorCalibrations) {
Sensor.upsertFromMaster(SensorCalibration.sensor);
for (Calibration calibration : SensorCalibration.calibrations) {
Log.d(TAG, "upsertSensorCalibratonsFromJson updating calibration " + calibration.uuid);
Calibration.upsertFromMaster(calibration);
}
}
}
public static UploaderQueue newEntryForWatch(String action, Model obj) {
UserError.Log.d(TAG, "new entry called for watch");
final UploaderQueue result = new UploaderQueue();
result.bitfield_wanted = DEFAULT_UPLOAD_CIRCUITS
| (Pref.getBooleanDefaultFalse("wear_sync") ? WATCH_WEARAPI : 0);
if (result.bitfield_wanted == 0) return null; // no queue required
result.timestamp = JoH.tsl();
result.reference_id = obj.getId();
// TODO this probably could be neater
if (result.reference_uuid == null)
result.reference_uuid = obj instanceof BgReading ? ((BgReading) obj).uuid : null;
if (result.reference_uuid == null)
result.reference_uuid = obj instanceof Treatments ? ((Treatments) obj).uuid : null;
if (result.reference_uuid == null)
result.reference_uuid = obj instanceof Calibration ? ((Calibration) obj).uuid : null;
if (result.reference_uuid == null)
result.reference_uuid = obj instanceof BloodTest ? ((BloodTest) obj).uuid : null;
if (result.reference_uuid == null) {
Log.d(TAG, "reference_uuid was null so refusing to create new entry");
return null;
}
if (result.reference_id < 0) {
UserError.Log.wtf(TAG, "Watch ERROR ref id was: " + result.reference_id + " for uuid: " + result.reference_uuid + " refusing to create");
return null;
}
result.action = action;
result.bitfield_complete = 0;
result.type = obj.getClass().getSimpleName();
result.saveit();
if (d) UserError.Log.d(TAG, result.toS());
last_new_entry = JoH.tsl();
return result;
}
public static boolean undoNextItem() {
if (undoListHasItems()) {
synchronized (queue_lock) {
final int location = undo_queue.size() - 1;
Undo_item item = undo_queue.get(location);
if (item.Treatment_uuid != null) {
try {
item.saved_data = Treatments.byuuid(item.Treatment_uuid).toJSON();
item.expires = JoH.ts() + EXPIRY_TIME;
redo_queue.add(item);
undo_queue.remove(location);
Treatments.delete_by_uuid(item.Treatment_uuid,true);
} catch (NullPointerException e) {
UserError.Log.wtf(TAG, "Null pointer exception in undoNext()");
undo_queue.remove(location);
}
return true;
} else if (item.Calibration_uuid != null) {
// TODO try catch
Calibration calibration = Calibration.byuuid(item.Calibration_uuid);
if(calibration != null) {
item.saved_data = calibration.toS();
item.expires = JoH.ts() + EXPIRY_TIME;
redo_queue.add(item);
undo_queue.remove(location);
Calibration.clear_byuuid(item.Calibration_uuid, true); // from interactive
return true;
}
}
}
return false;
} else {
return false;
}
}
public static void addToQueue(Calibration calibration, Context context) {
// TODO support for various insert/update/delete functions
// CalibrationSendQueue calibrationSendQueue = new CalibrationSendQueue();
// calibrationSendQueue.calibration = calibration;
// calibrationSendQueue.success = false;
// calibrationSendQueue.mongo_success = false;
// calibrationSendQueue.save();
UploaderQueue.newEntry("create", calibration);
Log.i(TAG, "calling SensorSendQueue.SendToFollower");
SensorSendQueue.SendToFollower(Sensor.getByUuid(calibration.sensor_uuid));
}
public boolean uploadMongo(List<BgReading> glucoseDataSets, List<Calibration> meterRecords, List<Calibration> calRecords, List<TransmitterData> transmittersData, List<LibreBlock> libreBlock) {
boolean mongoStatus = false;
if (enableMongoUpload) {
double start = new Date().getTime();
mongoStatus = doMongoUpload(prefs, glucoseDataSets, meterRecords, calRecords, transmittersData, libreBlock);
Log.i(TAG, String.format("Finished upload of %s record using a Mongo in %s ms result: %b",
glucoseDataSets.size() + meterRecords.size() + calRecords.size() + transmittersData.size() + libreBlock.size(), System.currentTimeMillis() - start, mongoStatus));
}
return mongoStatus;
}
private void populateV1APICalibrationEntry(JSONArray array, Calibration record) throws Exception {
if (record == null) {
Log.e(TAG, "Received null calibration record in populateV1ApiCalibrationEntry !");
return;
}
//do not upload undefined slopes
if(record.slope == 0d) return;
JSONObject json = new JSONObject();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.US);
format.setTimeZone(TimeZone.getDefault());
json.put("device", "xDrip-" + prefs.getString("dex_collection_method", "BluetoothWixel"));
json.put("type", "cal");
json.put("date", record.timestamp);
json.put("dateString", format.format(record.timestamp));
if(record.check_in) {
json.put("slope", (record.first_slope));
json.put("intercept", ((record.first_intercept)));
json.put("scale", record.first_scale);
} else {
json.put("slope", (1000/record.slope));
json.put("intercept", ((record.intercept * -1000) / (record.slope)));
json.put("scale", 1);
}
json.put("sysTime", format.format(record.timestamp));
array.put(json);
}
private void calibrationRequest() {
UserNotification userNotification = UserNotification.lastCalibrationAlert();
if ((userNotification == null) || (userNotification.timestamp <= ((new Date().getTime()) - (60000 * calibration_snooze)))) {
if (userNotification != null) {
userNotification.delete();
}
final long calibration_hours = Calibration.msSinceLastCalibration() / (1000 * 60 * 60);
UserNotification.create(calibration_hours + " hours since last Calibration (@" + JoH.hourMinuteString() + ")", "calibration_alert", new Date().getTime());
String title = "Calibration Needed";
String content = calibration_hours + " hours since last calibration";
Intent intent = new Intent(mContext, AddCalibration.class);
calibrationNotificationCreate(title, content, intent, calibrationNotificationId);
}
}
CalibrationDataCursorAdapter(Context context, List<Calibration> calibrations) {
this.context = context;
if(calibrations == null)
calibrations = new ArrayList<>();
this.calibrations = calibrations;
}
private void futureDataCheck() {
futureDataDeleteButton.setVisibility(View.GONE);
final List<BgReading> futureReadings = BgReading.futureReadings();
final List<Calibration> futureCalibrations = Calibration.futureCalibrations();
if((futureReadings != null && futureReadings.size() > 0) || (futureCalibrations != null && futureCalibrations.size() > 0)) {
notes.append("\n- Your device has future data on it, Please double check the time and timezone on this phone.");
futureDataDeleteButton.setVisibility(View.VISIBLE);
}
futureDataDeleteButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(futureReadings != null && futureReadings.size() > 0) {
for (BgReading bgReading : futureReadings) {
bgReading.calculated_value = 0;
bgReading.raw_data = 0;
bgReading.timestamp = 0;
bgReading.save();
}
}
if(futureCalibrations != null && futureCalibrations.size() > 0) {
for (Calibration calibration : futureCalibrations) {
calibration.slope_confidence = 0;
calibration.sensor_confidence = 0;
calibration.timestamp = 0;
calibration.save();
}
}
}
});
}
private void futureDataCheck() {
futureDataDeleteButton.setVisibility(View.GONE);
final List<BgReading> futureReadings = BgReading.futureReadings();
final List<Calibration> futureCalibrations = Calibration.futureCalibrations();
if((futureReadings != null && futureReadings.size() > 0) || (futureCalibrations != null && futureCalibrations.size() > 0)) {
notes.append("\n- Your device has future data on it, Please double check the time and timezone on this phone.");
futureDataDeleteButton.setVisibility(View.VISIBLE);
}
futureDataDeleteButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(futureReadings != null && futureReadings.size() > 0) {
for (BgReading bgReading : futureReadings) {
bgReading.calculated_value = 0;
bgReading.raw_data = 0;
bgReading.timestamp = 0;
bgReading.save();
}
}
if(futureCalibrations != null && futureCalibrations.size() > 0) {
for (Calibration calibration : futureCalibrations) {
calibration.slope_confidence = 0;
calibration.sensor_confidence = 0;
calibration.timestamp = 0;
calibration.save();
}
}
}
});
}