package com.eveningoutpost.dexdrip.Models; import android.provider.BaseColumns; import com.activeandroid.Model; import com.activeandroid.annotation.Column; import com.activeandroid.annotation.Table; import com.activeandroid.query.Select; import java.util.List; /** * Created by stephenblack on 12/9/14. */ @Table(name = "CalibrationRequest", id = BaseColumns._ID) public class CalibrationRequest extends Model { private static final int max = 250; private static final int min = 70; @Column(name = "requestIfAbove") public double requestIfAbove; @Column(name = "requestIfBelow") public double requestIfBelow; public static void createRange(double low, double high) { CalibrationRequest calibrationRequest = new CalibrationRequest(); calibrationRequest.requestIfAbove = low; calibrationRequest.requestIfBelow = high; calibrationRequest.save(); } public static void createOffset(double center, double distance) { CalibrationRequest calibrationRequest = new CalibrationRequest(); calibrationRequest.requestIfAbove = center + distance; calibrationRequest.requestIfBelow = max; calibrationRequest.save(); calibrationRequest.requestIfAbove = min; calibrationRequest.requestIfBelow = center - distance; calibrationRequest.save(); } public static void clearAll(){ List<CalibrationRequest> calibrationRequests = new Select() .from(CalibrationRequest.class) .execute(); if (calibrationRequests.size() >=1) { for (CalibrationRequest calibrationRequest : calibrationRequests) { calibrationRequest.delete(); } } } public static boolean shouldRequestCalibration(BgReading bgReading){ CalibrationRequest calibrationRequest = new Select() .from(CalibrationRequest.class) .where("requestIfAbove < ?", bgReading.calculated_value) .where("requestIfBelow > ?", bgReading.calculated_value) .executeSingle(); if (calibrationRequest != null && Math.abs(bgReading.calculated_value_slope * 60000) < 1.8) { return true; } else { return false; } } }