make all getDao private

This commit is contained in:
Milos Kozak 2017-05-22 12:52:19 +02:00
parent 6004a17594
commit 85e6375026
20 changed files with 380 additions and 332 deletions

View file

@ -28,7 +28,6 @@ import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.db.BgReading;
import info.nightscout.androidaps.db.DanaRHistoryRecord; import info.nightscout.androidaps.db.DanaRHistoryRecord;
import info.nightscout.androidaps.db.TempTarget;
import info.nightscout.androidaps.db.Treatment; import info.nightscout.androidaps.db.Treatment;
import info.nightscout.androidaps.events.EventNewBG; import info.nightscout.androidaps.events.EventNewBG;
import info.nightscout.androidaps.events.EventNewBasalProfile; import info.nightscout.androidaps.events.EventNewBasalProfile;
@ -50,7 +49,6 @@ import info.nightscout.androidaps.plugins.SourceGlimp.SourceGlimpPlugin;
import info.nightscout.androidaps.plugins.SourceMM640g.SourceMM640gPlugin; import info.nightscout.androidaps.plugins.SourceMM640g.SourceMM640gPlugin;
import info.nightscout.androidaps.plugins.SourceNSClient.SourceNSClientPlugin; import info.nightscout.androidaps.plugins.SourceNSClient.SourceNSClientPlugin;
import info.nightscout.androidaps.plugins.SourceXdrip.SourceXdripPlugin; import info.nightscout.androidaps.plugins.SourceXdrip.SourceXdripPlugin;
import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange;
import info.nightscout.androidaps.receivers.DataReceiver; import info.nightscout.androidaps.receivers.DataReceiver;
import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile;
import info.nightscout.androidaps.plugins.NSClientInternal.data.NSSgv; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSSgv;
@ -192,12 +190,7 @@ public class DataService extends IntentService {
if (Config.logIncommingBG) if (Config.logIncommingBG)
log.debug("XDRIPREC BG " + bgReading.toString()); log.debug("XDRIPREC BG " + bgReading.toString());
try { MainApp.getDbHelper().createIfNotExists(bgReading);
MainApp.getDbHelper().getDaoBgReadings().createIfNotExists(bgReading);
} catch (SQLException e) {
e.printStackTrace();
}
MainApp.bus().post(new EventNewBG());
} }
private void handleNewDataFromGlimp(Intent intent) { private void handleNewDataFromGlimp(Intent intent) {
@ -215,12 +208,7 @@ public class DataService extends IntentService {
log.debug(bundle.toString()); log.debug(bundle.toString());
log.debug("GLIMP BG " + bgReading.toString()); log.debug("GLIMP BG " + bgReading.toString());
try { MainApp.getDbHelper().createIfNotExists(bgReading);
MainApp.getDbHelper().getDaoBgReadings().createIfNotExists(bgReading);
} catch (SQLException e) {
e.printStackTrace();
}
MainApp.bus().post(new EventNewBG());
} }
private void handleNewDataFromMM640g(Intent intent) { private void handleNewDataFromMM640g(Intent intent) {
@ -257,11 +245,7 @@ public class DataService extends IntentService {
if (Config.logIncommingBG) if (Config.logIncommingBG)
log.debug("MM640g BG " + bgReading.toString()); log.debug("MM640g BG " + bgReading.toString());
try { MainApp.getDbHelper().createIfNotExists(bgReading);
MainApp.getDbHelper().getDaoBgReadings().createIfNotExists(bgReading);
} catch (SQLException e) {
e.printStackTrace();
}
break; break;
default: default:
log.debug("Unknown entries type: " + type); log.debug("Unknown entries type: " + type);
@ -272,7 +256,6 @@ public class DataService extends IntentService {
} }
} }
} }
MainApp.bus().post(new EventNewBG());
} }
private void handleNewDataFromNSClient(Intent intent) { private void handleNewDataFromNSClient(Intent intent) {
@ -423,7 +406,7 @@ public class DataService extends IntentService {
String trstring = bundles.getString("treatment"); String trstring = bundles.getString("treatment");
JSONObject trJson = new JSONObject(trstring); JSONObject trJson = new JSONObject(trstring);
String _id = trJson.getString("_id"); String _id = trJson.getString("_id");
MainApp.getDbHelper().delete(_id); MainApp.getDbHelper().deleteTreatmentById(_id);
handleRemoveTempTargetRecord(trJson); handleRemoveTempTargetRecord(trJson);
} }
@ -433,7 +416,7 @@ public class DataService extends IntentService {
for (int i = 0; i < jsonArray.length(); i++) { for (int i = 0; i < jsonArray.length(); i++) {
JSONObject trJson = jsonArray.getJSONObject(i); JSONObject trJson = jsonArray.getJSONObject(i);
String _id = trJson.getString("_id"); String _id = trJson.getString("_id");
MainApp.getDbHelper().delete(_id); MainApp.getDbHelper().deleteTreatmentById(_id);
handleRemoveTempTargetRecord(trJson); handleRemoveTempTargetRecord(trJson);
} }
} }
@ -454,7 +437,7 @@ public class DataService extends IntentService {
log.debug("Ignoring old BG: " + bgReading.toString()); log.debug("Ignoring old BG: " + bgReading.toString());
return; return;
} }
MainApp.getDbHelper().getDaoBgReadings().createIfNotExists(bgReading); MainApp.getDbHelper().createIfNotExists(bgReading);
if (Config.logIncommingData) if (Config.logIncommingData)
log.debug("ADD: Stored new BG: " + bgReading.toString()); log.debug("ADD: Stored new BG: " + bgReading.toString());
} }
@ -470,7 +453,7 @@ public class DataService extends IntentService {
if (Config.logIncommingData) if (Config.logIncommingData)
log.debug("Ignoring old BG: " + bgReading.toString()); log.debug("Ignoring old BG: " + bgReading.toString());
} else { } else {
MainApp.getDbHelper().getDaoBgReadings().createIfNotExists(bgReading); MainApp.getDbHelper().createIfNotExists(bgReading);
if (Config.logIncommingData) if (Config.logIncommingData)
log.debug("ADD: Stored new BG: " + bgReading.toString()); log.debug("ADD: Stored new BG: " + bgReading.toString());
} }
@ -479,7 +462,6 @@ public class DataService extends IntentService {
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
MainApp.bus().post(new EventNewBG());
} }
if (intent.getAction().equals(Intents.ACTION_NEW_MBG)) { if (intent.getAction().equals(Intents.ACTION_NEW_MBG)) {
@ -571,7 +553,7 @@ public class DataService extends IntentService {
if (stored != null) { if (stored != null) {
if (Config.logIncommingData) if (Config.logIncommingData)
log.debug("CHANGE: Removing old: " + trstring); log.debug("CHANGE: Removing old: " + trstring);
MainApp.getDbHelper().delete(_id); MainApp.getDbHelper().deleteTreatmentById(_id);
} }
if (Config.logIncommingData) if (Config.logIncommingData)
@ -605,27 +587,9 @@ public class DataService extends IntentService {
log.debug("CHANGE: Stored treatment: " + treatment.log()); log.debug("CHANGE: Stored treatment: " + treatment.log());
} }
public void handleDanaRHistoryRecords(JSONObject trJson) throws JSONException, SQLException { public void handleDanaRHistoryRecords(JSONObject trJson) {
if (trJson.has(DanaRNSHistorySync.DANARSIGNATURE)) { if (trJson.has(DanaRNSHistorySync.DANARSIGNATURE)) {
Dao<DanaRHistoryRecord, String> daoHistoryRecords = MainApp.getDbHelper().getDaoDanaRHistory(); MainApp.getDbHelper().updateDanaRHistoryRecordId(trJson);
QueryBuilder<DanaRHistoryRecord, String> queryBuilder = daoHistoryRecords.queryBuilder();
Where where = queryBuilder.where();
where.ge("bytes", trJson.get(DanaRNSHistorySync.DANARSIGNATURE));
PreparedQuery<DanaRHistoryRecord> preparedQuery = queryBuilder.prepare();
List<DanaRHistoryRecord> list = daoHistoryRecords.query(preparedQuery);
if (list.size() == 0) {
// Record does not exists. Ignore
} else if (list.size() == 1) {
DanaRHistoryRecord record = list.get(0);
if (record._id == null || !record._id.equals(trJson.getString("_id"))) {
if (Config.logIncommingData)
log.debug("Updating _id in DanaR history database: " + trJson.getString("_id"));
record._id = trJson.getString("_id");
daoHistoryRecords.update(record);
} else {
// already set
}
}
} }
} }
@ -648,62 +612,16 @@ public class DataService extends IntentService {
if (trJson.has("eventType") && trJson.getString("eventType").equals("Temporary Target")) { if (trJson.has("eventType") && trJson.getString("eventType").equals("Temporary Target")) {
if (Config.logIncommingData) if (Config.logIncommingData)
log.debug("Processing TempTarget record: " + trJson.toString()); log.debug("Processing TempTarget record: " + trJson.toString());
Dao<TempTarget, Long> daoTempTargets = MainApp.getDbHelper().getDaoTempTargets(); MainApp.getDbHelper().createFromJsonIfNotExists(trJson);
QueryBuilder<TempTarget, Long> queryBuilder = daoTempTargets.queryBuilder();
Where where = queryBuilder.where();
where.eq("_id", trJson.getString("_id")).or().eq("date", trJson.getLong("mills"));
PreparedQuery<TempTarget> preparedQuery = queryBuilder.prepare();
List<TempTarget> list = daoTempTargets.query(preparedQuery);
NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
if (profile == null) return; // no profile data, better ignore than do something wrong
String units = profile.getUnits();
if (list.size() == 0) {
// Record does not exists. add
TempTarget newRecord = new TempTarget();
newRecord.date = trJson.getLong("mills");
newRecord.durationInMinutes = trJson.getInt("duration");
newRecord.low = NSProfile.toMgdl(trJson.getDouble("targetBottom"), units);
newRecord.high = NSProfile.toMgdl(trJson.getDouble("targetTop"), units);
newRecord.reason = trJson.getString("reason");
newRecord._id = trJson.getString("_id");
daoTempTargets.createIfNotExists(newRecord);
if (Config.logIncommingData)
log.debug("Adding TempTarget record to database: " + newRecord.log());
MainApp.bus().post(new EventTempTargetRangeChange());
} else if (list.size() == 1) {
if (Config.logIncommingData)
log.debug("Updating TempTarget record in database: " + trJson.getString("_id"));
TempTarget record = list.get(0);
record.date = trJson.getLong("mills");
record.durationInMinutes = trJson.getInt("duration");
record.low = NSProfile.toMgdl(trJson.getDouble("targetBottom"), units);
record.high = NSProfile.toMgdl(trJson.getDouble("targetTop"), units);
record.reason = trJson.getString("reason");
record._id = trJson.getString("_id");
daoTempTargets.update(record);
MainApp.bus().post(new EventTempTargetRangeChange());
}
} }
} }
public void handleRemoveTempTargetRecord(JSONObject trJson) throws JSONException, SQLException { public void handleRemoveTempTargetRecord(JSONObject trJson) {
if (trJson.has("_id")) { if (trJson.has("_id")) {
Dao<TempTarget, Long> daoTempTargets = MainApp.getDbHelper().getDaoTempTargets(); try {
QueryBuilder<TempTarget, Long> queryBuilder = daoTempTargets.queryBuilder(); MainApp.getDbHelper().deleteTempTargetById(trJson.getString("_id"));
Where where = queryBuilder.where(); } catch (JSONException e) {
where.eq("_id", trJson.getString("_id")); e.printStackTrace();
PreparedQuery<TempTarget> preparedQuery = queryBuilder.prepare();
List<TempTarget> list = daoTempTargets.query(preparedQuery);
if (list.size() == 1) {
TempTarget record = list.get(0);
if (Config.logIncommingData)
log.debug("Removing TempTarget record from database: " + record.log());
daoTempTargets.delete(record);
MainApp.bus().post(new EventTempTargetRangeChange());
} else {
if (Config.logIncommingData)
log.debug("TempTarget not found database: " + trJson.toString());
} }
} }
} }

View file

@ -66,8 +66,6 @@ public class GlucoseStatus {
@Nullable @Nullable
public static GlucoseStatus getGlucoseStatusData() { public static GlucoseStatus getGlucoseStatusData() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(MainApp.instance());
// load 45min // load 45min
long fromtime = (long) (new Date().getTime() - 60 * 1000L * 45); long fromtime = (long) (new Date().getTime() - 60 * 1000L * 45);
List<BgReading> data = MainApp.getDbHelper().getBgreadingsDataFromTime(fromtime, false); List<BgReading> data = MainApp.getDbHelper().getBgreadingsDataFromTime(fromtime, false);
@ -143,48 +141,6 @@ public class GlucoseStatus {
return status.round(); return status.round();
} }
/*
* Return last BgReading from database or null if db is empty
*/
@Nullable
public static BgReading lastBg() {
List<BgReading> bgList = null;
try {
Dao<BgReading, Long> daoBgReadings = MainApp.getDbHelper().getDaoBgReadings();
QueryBuilder<BgReading, Long> queryBuilder = daoBgReadings.queryBuilder();
queryBuilder.orderBy("date", false);
queryBuilder.limit(1L);
queryBuilder.where().gt("value", 38);
PreparedQuery<BgReading> preparedQuery = queryBuilder.prepare();
bgList = daoBgReadings.query(preparedQuery);
} catch (SQLException e) {
log.debug(e.getMessage(), e);
}
if (bgList != null && bgList.size() > 0)
return bgList.get(0);
else
return null;
}
/*
* Return bg reading if not old ( <9 min )
* or null if older
*/
@Nullable
public static BgReading actualBg() {
BgReading lastBg = lastBg();
if (lastBg == null)
return null;
if (lastBg.date > new Date().getTime() - 9 * 60 * 1000)
return lastBg;
return null;
}
public static double average(ArrayList<Double> array) { public static double average(ArrayList<Double> array) {
double sum = 0d; double sum = 0d;

View file

@ -6,6 +6,7 @@ import android.database.sqlite.SQLiteDatabase;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper; import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
import com.j256.ormlite.dao.CloseableIterator;
import com.j256.ormlite.dao.Dao; import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.stmt.PreparedQuery; import com.j256.ormlite.stmt.PreparedQuery;
import com.j256.ormlite.stmt.QueryBuilder; import com.j256.ormlite.stmt.QueryBuilder;
@ -13,6 +14,8 @@ import com.j256.ormlite.stmt.Where;
import com.j256.ormlite.support.ConnectionSource; import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils; import com.j256.ormlite.table.TableUtils;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -28,8 +31,12 @@ import java.util.concurrent.TimeUnit;
import info.nightscout.androidaps.Config; import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.events.EventNewBG;
import info.nightscout.androidaps.events.EventTreatmentChange; import info.nightscout.androidaps.events.EventTreatmentChange;
import info.nightscout.androidaps.plugins.IobCobCalculator.events.EventNewHistoryData; import info.nightscout.androidaps.plugins.IobCobCalculator.events.EventNewHistoryData;
import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile;
import info.nightscout.androidaps.plugins.PumpDanaR.History.DanaRNSHistorySync;
import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange;
public class DatabaseHelper extends OrmLiteSqliteOpenHelper { public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
private static Logger log = LoggerFactory.getLogger(DatabaseHelper.class); private static Logger log = LoggerFactory.getLogger(DatabaseHelper.class);
@ -56,7 +63,6 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
onCreate(getWritableDatabase(), getConnectionSource()); onCreate(getWritableDatabase(), getConnectionSource());
} }
@Override @Override
public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) { public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) {
try { try {
@ -67,6 +73,8 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
TableUtils.createTableIfNotExists(connectionSource, BgReading.class); TableUtils.createTableIfNotExists(connectionSource, BgReading.class);
TableUtils.createTableIfNotExists(connectionSource, DanaRHistoryRecord.class); TableUtils.createTableIfNotExists(connectionSource, DanaRHistoryRecord.class);
TableUtils.createTableIfNotExists(connectionSource, DbRequest.class); TableUtils.createTableIfNotExists(connectionSource, DbRequest.class);
TableUtils.createTableIfNotExists(connectionSource, TemporaryBasal.class);
TableUtils.createTableIfNotExists(connectionSource, ExtendedBolus.class);
} catch (SQLException e) { } catch (SQLException e) {
log.error("Can't create database", e); log.error("Can't create database", e);
throw new RuntimeException(e); throw new RuntimeException(e);
@ -83,6 +91,8 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
TableUtils.dropTable(connectionSource, BgReading.class, true); TableUtils.dropTable(connectionSource, BgReading.class, true);
TableUtils.dropTable(connectionSource, DanaRHistoryRecord.class, true); TableUtils.dropTable(connectionSource, DanaRHistoryRecord.class, true);
TableUtils.dropTable(connectionSource, DbRequest.class, true); TableUtils.dropTable(connectionSource, DbRequest.class, true);
TableUtils.dropTable(connectionSource, TemporaryBasal.class, true);
TableUtils.dropTable(connectionSource, ExtendedBolus.class, true);
onCreate(database, connectionSource); onCreate(database, connectionSource);
} catch (SQLException e) { } catch (SQLException e) {
log.error("Can't drop databases", e); log.error("Can't drop databases", e);
@ -119,8 +129,22 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
log.debug("Before History size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_DANARHISTORY)); log.debug("Before History size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_DANARHISTORY));
getWritableDatabase().delete(DATABASE_DANARHISTORY, "recordDate" + " < '" + (new Date().getTime() - Constants.daysToKeepHistoryInDatabase * 24 * 60 * 60 * 1000L) + "'", null); getWritableDatabase().delete(DATABASE_DANARHISTORY, "recordDate" + " < '" + (new Date().getTime() - Constants.daysToKeepHistoryInDatabase * 24 * 60 * 60 * 1000L) + "'", null);
log.debug("After History size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_DANARHISTORY)); log.debug("After History size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_DANARHISTORY));
log.debug("Before TemporaryBasals size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_TEMPORARYBASALS));
getWritableDatabase().delete(DATABASE_TEMPORARYBASALS, "recordDate" + " < '" + (new Date().getTime() - Constants.daysToKeepHistoryInDatabase * 24 * 60 * 60 * 1000L) + "'", null);
log.debug("After TemporaryBasals size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_TEMPORARYBASALS));
log.debug("Before ExtendedBoluses size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_EXTENDEDBOLUSES));
getWritableDatabase().delete(DATABASE_EXTENDEDBOLUSES, "recordDate" + " < '" + (new Date().getTime() - Constants.daysToKeepHistoryInDatabase * 24 * 60 * 60 * 1000L) + "'", null);
log.debug("After ExtendedBoluses size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_EXTENDEDBOLUSES));
} }
public long size(String database) {
return DatabaseUtils.queryNumEntries(getReadableDatabase(), database);
}
// --------------------- DB resets ---------------------
public void resetDatabases() { public void resetDatabases() {
try { try {
TableUtils.dropTable(connectionSource, TempExBasal.class, true); TableUtils.dropTable(connectionSource, TempExBasal.class, true);
@ -128,12 +152,18 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
TableUtils.dropTable(connectionSource, Treatment.class, true); TableUtils.dropTable(connectionSource, Treatment.class, true);
TableUtils.dropTable(connectionSource, BgReading.class, true); TableUtils.dropTable(connectionSource, BgReading.class, true);
TableUtils.dropTable(connectionSource, DanaRHistoryRecord.class, true); TableUtils.dropTable(connectionSource, DanaRHistoryRecord.class, true);
TableUtils.dropTable(connectionSource, DbRequest.class, true);
TableUtils.dropTable(connectionSource, TemporaryBasal.class, true);
TableUtils.dropTable(connectionSource, ExtendedBolus.class, true);
//DbRequests can be cleared from NSClient fragment //DbRequests can be cleared from NSClient fragment
TableUtils.createTableIfNotExists(connectionSource, TempExBasal.class); TableUtils.createTableIfNotExists(connectionSource, TempExBasal.class);
TableUtils.createTableIfNotExists(connectionSource, TempTarget.class); TableUtils.createTableIfNotExists(connectionSource, TempTarget.class);
TableUtils.createTableIfNotExists(connectionSource, Treatment.class); TableUtils.createTableIfNotExists(connectionSource, Treatment.class);
TableUtils.createTableIfNotExists(connectionSource, BgReading.class); TableUtils.createTableIfNotExists(connectionSource, BgReading.class);
TableUtils.createTableIfNotExists(connectionSource, DanaRHistoryRecord.class); TableUtils.createTableIfNotExists(connectionSource, DanaRHistoryRecord.class);
TableUtils.createTableIfNotExists(connectionSource, DbRequest.class);
TableUtils.createTableIfNotExists(connectionSource, TemporaryBasal.class);
TableUtils.createTableIfNotExists(connectionSource, ExtendedBolus.class);
latestTreatmentChange = 0L; latestTreatmentChange = 0L;
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
@ -159,11 +189,31 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
} }
} }
public Dao<TempExBasal, Long> getDaoTempBasals() throws SQLException { public void resetTemporaryBasals() {
try {
TableUtils.dropTable(connectionSource, TemporaryBasal.class, true);
TableUtils.createTableIfNotExists(connectionSource, TemporaryBasal.class);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void resetExtededBoluses() {
try {
TableUtils.dropTable(connectionSource, ExtendedBolus.class, true);
TableUtils.createTableIfNotExists(connectionSource, ExtendedBolus.class);
} catch (SQLException e) {
e.printStackTrace();
}
}
// ------------------ getDao -------------------------------------------
private Dao<TempExBasal, Long> getDaoTempBasals() throws SQLException {
return getDao(TempExBasal.class); return getDao(TempExBasal.class);
} }
public Dao<TempTarget, Long> getDaoTempTargets() throws SQLException { private Dao<TempTarget, Long> getDaoTempTargets() throws SQLException {
return getDao(TempTarget.class); return getDao(TempTarget.class);
} }
@ -171,22 +221,80 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return getDao(Treatment.class); return getDao(Treatment.class);
} }
public Dao<BgReading, Long> getDaoBgReadings() throws SQLException { private Dao<BgReading, Long> getDaoBgReadings() throws SQLException {
return getDao(BgReading.class); return getDao(BgReading.class);
} }
public Dao<DanaRHistoryRecord, String> getDaoDanaRHistory() throws SQLException { private Dao<DanaRHistoryRecord, String> getDaoDanaRHistory() throws SQLException {
return getDao(DanaRHistoryRecord.class); return getDao(DanaRHistoryRecord.class);
} }
public Dao<DbRequest, String> getDaoDbRequest() throws SQLException { private Dao<DbRequest, String> getDaoDbRequest() throws SQLException {
return getDao(DbRequest.class); return getDao(DbRequest.class);
} }
public long size(String database) { private Dao<TemporaryBasal, String> getDaoTemporaryBasal() throws SQLException {
return DatabaseUtils.queryNumEntries(getReadableDatabase(), database); return getDao(TemporaryBasal.class);
} }
private Dao<ExtendedBolus, String> getDaoExtendedBolus() throws SQLException {
return getDao(ExtendedBolus.class);
}
// ------------------- BgReading handling -----------------------
public void createIfNotExists(BgReading bgReading) {
try {
getDaoBgReadings().createIfNotExists(bgReading);
} catch (SQLException e) {
e.printStackTrace();
}
MainApp.bus().post(new EventNewBG());
}
/*
* Return last BgReading from database or null if db is empty
*/
@Nullable
public static BgReading lastBg() {
List<BgReading> bgList = null;
try {
Dao<BgReading, Long> daoBgReadings = MainApp.getDbHelper().getDaoBgReadings();
QueryBuilder<BgReading, Long> queryBuilder = daoBgReadings.queryBuilder();
queryBuilder.orderBy("date", false);
queryBuilder.limit(1L);
queryBuilder.where().gt("value", 38);
PreparedQuery<BgReading> preparedQuery = queryBuilder.prepare();
bgList = daoBgReadings.query(preparedQuery);
} catch (SQLException e) {
log.debug(e.getMessage(), e);
}
if (bgList != null && bgList.size() > 0)
return bgList.get(0);
else
return null;
}
/*
* Return bg reading if not old ( <9 min )
* or null if older
*/
@Nullable
public static BgReading actualBg() {
BgReading lastBg = lastBg();
if (lastBg == null)
return null;
if (lastBg.date > new Date().getTime() - 9 * 60 * 1000)
return lastBg;
return null;
}
public List<BgReading> getBgreadingsDataFromTime(long mills, boolean ascending) { public List<BgReading> getBgreadingsDataFromTime(long mills, boolean ascending) {
try { try {
Dao<BgReading, Long> daoBgreadings = getDaoBgReadings(); Dao<BgReading, Long> daoBgreadings = getDaoBgReadings();
@ -204,7 +312,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return new ArrayList<BgReading>(); return new ArrayList<BgReading>();
} }
// DbRequests handling // ------------- DbRequests handling -------------------
public void create(DbRequest dbr) { public void create(DbRequest dbr) {
try { try {
@ -260,7 +368,16 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
} }
} }
// TREATMENT HANDLING public CloseableIterator getDbRequestInterator() {
try {
return getDaoDbRequest().closeableIterator();
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
// -------------------- TREATMENT HANDLING -------------------
public boolean affectingIobCob(Treatment t) { public boolean affectingIobCob(Treatment t) {
Treatment existing = findTreatmentByTimeIndex(t.date); Treatment existing = findTreatmentByTimeIndex(t.date);
@ -319,7 +436,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
scheduleTreatmentChange(); scheduleTreatmentChange();
} }
public int delete(String _id) { public int deleteTreatmentById(String _id) {
Treatment stored = findTreatmentById(_id); Treatment stored = findTreatmentById(_id);
int removed = 0; int removed = 0;
if (stored != null) { if (stored != null) {
@ -423,6 +540,8 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return new ArrayList<Treatment>(); return new ArrayList<Treatment>();
} }
// ------------ TempExBasal handling ---------------
public int update(TempExBasal tempBasal) { public int update(TempExBasal tempBasal) {
int updated = 0; int updated = 0;
try { try {
@ -455,6 +574,25 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
scheduleTreatmentChange(); scheduleTreatmentChange();
} }
public List<TempExBasal> getTempbasalsDataFromTime(long mills, boolean ascending, boolean isExtended) {
try {
Dao<TempExBasal, Long> daoTempbasals = getDaoTempBasals();
List<TempExBasal> tempbasals;
QueryBuilder<TempExBasal, Long> queryBuilder = daoTempbasals.queryBuilder();
queryBuilder.orderBy("timeIndex", ascending);
Where where = queryBuilder.where();
where.ge("timeIndex", mills).and().eq("isExtended", isExtended);
PreparedQuery<TempExBasal> preparedQuery = queryBuilder.prepare();
tempbasals = daoTempbasals.query(preparedQuery);
return tempbasals;
} catch (SQLException e) {
e.printStackTrace();
}
return new ArrayList<TempExBasal>();
}
// ---------------- TempTargets handling ---------------
public List<TempTarget> getTemptargetsDataFromTime(long mills, boolean ascending) { public List<TempTarget> getTemptargetsDataFromTime(long mills, boolean ascending) {
try { try {
Dao<TempTarget, Long> daoTempTargets = getDaoTempTargets(); Dao<TempTarget, Long> daoTempTargets = getDaoTempTargets();
@ -472,22 +610,141 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return new ArrayList<TempTarget>(); return new ArrayList<TempTarget>();
} }
public void createIfNotExists(TempTarget tempTarget) {
public List<TempExBasal> getTempbasalsDataFromTime(long mills, boolean ascending, boolean isExtended) {
try { try {
Dao<TempExBasal, Long> daoTempbasals = getDaoTempBasals(); getDaoTempTargets().createIfNotExists(tempTarget);
List<TempExBasal> tempbasals; MainApp.bus().post(new EventTempTargetRangeChange());
QueryBuilder<TempExBasal, Long> queryBuilder = daoTempbasals.queryBuilder();
queryBuilder.orderBy("date", ascending);
Where where = queryBuilder.where();
where.ge("date", mills).and().eq("isExtended", isExtended);
PreparedQuery<TempExBasal> preparedQuery = queryBuilder.prepare();
tempbasals = daoTempbasals.query(preparedQuery);
return tempbasals;
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
} }
return new ArrayList<TempExBasal>();
} }
public void delete(TempTarget tempTarget) {
try {
getDaoTempTargets().delete(tempTarget);
MainApp.bus().post(new EventTempTargetRangeChange());
} catch (SQLException e) {
e.printStackTrace();
}
}
public void createFromJsonIfNotExists(JSONObject trJson) {
try {
QueryBuilder<TempTarget, Long> queryBuilder = null;
queryBuilder = getDaoTempTargets().queryBuilder();
Where where = queryBuilder.where();
where.eq("_id", trJson.getString("_id")).or().eq("date", trJson.getLong("mills"));
PreparedQuery<TempTarget> preparedQuery = queryBuilder.prepare();
List<TempTarget> list = getDaoTempTargets().query(preparedQuery);
NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
if (profile == null) return; // no profile data, better ignore than do something wrong
String units = profile.getUnits();
TempTarget tempTarget;
if (list.size() == 0) {
tempTarget = new TempTarget();
if (Config.logIncommingData)
log.debug("Adding TempTarget record to database: " + trJson.toString());
// Record does not exists. add
} else if (list.size() == 1) {
tempTarget = list.get(0);
if (Config.logIncommingData)
log.debug("Updating TempTarget record in database: " + trJson.toString());
} else {
log.error("Somthing went wrong");
return;
}
tempTarget.date = trJson.getLong("mills");
tempTarget.durationInMinutes = trJson.getInt("duration");
tempTarget.low = NSProfile.toMgdl(trJson.getDouble("targetBottom"), units);
tempTarget.high = NSProfile.toMgdl(trJson.getDouble("targetTop"), units);
tempTarget.reason = trJson.getString("reason");
tempTarget._id = trJson.getString("_id");
createIfNotExists(tempTarget);
MainApp.bus().post(new EventTempTargetRangeChange());
} catch (SQLException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
public void deleteTempTargetById(String _id) {
try {
QueryBuilder<TempTarget, Long> queryBuilder = null;
queryBuilder = getDaoTempTargets().queryBuilder();
Where where = queryBuilder.where();
where.eq("_id", _id);
PreparedQuery<TempTarget> preparedQuery = queryBuilder.prepare();
List<TempTarget> list = getDaoTempTargets().query(preparedQuery);
if (list.size() == 1) {
TempTarget record = list.get(0);
if (Config.logIncommingData)
log.debug("Removing TempTarget record from database: " + record.log());
getDaoTempTargets().delete(record);
MainApp.bus().post(new EventTempTargetRangeChange());
} else {
if (Config.logIncommingData)
log.debug("TempTarget not found database: " + _id);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
// ----------------- DanaRHistory handling --------------------
public void createIfNotExists(DanaRHistoryRecord record) {
try {
getDaoDanaRHistory().createIfNotExists(record);
} catch (SQLException e) {
e.printStackTrace();
}
}
public List<DanaRHistoryRecord> getDanaRHistoryRecordsByType(byte type) {
List<DanaRHistoryRecord> historyList;
try {
QueryBuilder<DanaRHistoryRecord, String> queryBuilder = getDaoDanaRHistory().queryBuilder();
queryBuilder.orderBy("recordDate", false);
Where where = queryBuilder.where();
where.eq("recordCode", type);
queryBuilder.limit(200L);
PreparedQuery<DanaRHistoryRecord> preparedQuery = queryBuilder.prepare();
historyList = getDaoDanaRHistory().query(preparedQuery);
} catch (SQLException e) {
e.printStackTrace();
historyList = new ArrayList<>();
}
return historyList;
}
public void updateDanaRHistoryRecordId(JSONObject trJson) {
try {
QueryBuilder<DanaRHistoryRecord, String> queryBuilder = getDaoDanaRHistory().queryBuilder();
Where where = queryBuilder.where();
where.ge("bytes", trJson.get(DanaRNSHistorySync.DANARSIGNATURE));
PreparedQuery<DanaRHistoryRecord> preparedQuery = queryBuilder.prepare();
List<DanaRHistoryRecord> list = getDaoDanaRHistory().query(preparedQuery);
if (list.size() == 0) {
// Record does not exists. Ignore
} else if (list.size() == 1) {
DanaRHistoryRecord record = list.get(0);
if (record._id == null || !record._id.equals(trJson.getString("_id"))) {
if (Config.logIncommingData)
log.debug("Updating _id in DanaR history database: " + trJson.getString("_id"));
record._id = trJson.getString("_id");
getDaoDanaRHistory().update(record);
} else {
// already set
}
}
} catch (SQLException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
} }

View file

@ -53,7 +53,6 @@ import info.nightscout.androidaps.plugins.Careportal.OptionsToShow;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile;
import info.nightscout.androidaps.plugins.ProfileCircadianPercentage.CircadianPercentageProfilePlugin; import info.nightscout.androidaps.plugins.ProfileCircadianPercentage.CircadianPercentageProfilePlugin;
import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange;
import info.nightscout.utils.DateUtil; import info.nightscout.utils.DateUtil;
import info.nightscout.utils.PlusMinusEditText; import info.nightscout.utils.PlusMinusEditText;
import info.nightscout.utils.SP; import info.nightscout.utils.SP;
@ -659,13 +658,11 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
tempTarget.low = 0; tempTarget.low = 0;
tempTarget.high = 0; tempTarget.high = 0;
} }
Dao<TempTarget, Long> dao = MainApp.getDbHelper().getDaoTempTargets();
log.debug("Creating new TempTarget db record: " + tempTarget.log()); log.debug("Creating new TempTarget db record: " + tempTarget.log());
dao.createIfNotExists(tempTarget); MainApp.getDbHelper().createIfNotExists(tempTarget);
MainApp.bus().post(new EventTempTargetRangeChange());
ConfigBuilderPlugin.uploadCareportalEntryToNS(data); ConfigBuilderPlugin.uploadCareportalEntryToNS(data);
Answers.getInstance().logCustom(new CustomEvent("TempTarget")); Answers.getInstance().logCustom(new CustomEvent("TempTarget"));
} catch (JSONException | SQLException e) { } catch (JSONException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }

View file

@ -118,7 +118,7 @@ public class UploadQueue {
String result = ""; String result = "";
CloseableIterator<DbRequest> iterator = null; CloseableIterator<DbRequest> iterator = null;
try { try {
iterator = MainApp.getDbHelper().getDaoDbRequest().closeableIterator(); iterator = MainApp.getDbHelper().getDbRequestInterator();
try { try {
while (iterator.hasNext()) { while (iterator.hasNext()) {
DbRequest dbr = iterator.next(); DbRequest dbr = iterator.next();

View file

@ -653,7 +653,7 @@ public class NSClientService extends Service {
CloseableIterator<DbRequest> iterator = null; CloseableIterator<DbRequest> iterator = null;
try { try {
iterator = MainApp.getDbHelper().getDaoDbRequest().closeableIterator(); iterator = MainApp.getDbHelper().getDbRequestInterator();
try { try {
while (iterator.hasNext()) { while (iterator.hasNext()) {
DbRequest dbr = iterator.next(); DbRequest dbr = iterator.next();

View file

@ -42,12 +42,11 @@ import java.util.Date;
import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.GlucoseStatus;
import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.db.BgReading;
import info.nightscout.androidaps.db.DatabaseHelper;
import info.nightscout.androidaps.events.EventNewBG; import info.nightscout.androidaps.events.EventNewBG;
import info.nightscout.androidaps.events.EventRefreshGui; import info.nightscout.androidaps.events.EventRefreshGui;
import info.nightscout.androidaps.interfaces.TreatmentsInterface;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.plugins.Loop.LoopPlugin; import info.nightscout.androidaps.plugins.Loop.LoopPlugin;
@ -381,7 +380,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
else editBg.setStep(0.1d); else editBg.setStep(0.1d);
// Set BG if not old // Set BG if not old
BgReading lastBg = GlucoseStatus.actualBg(); BgReading lastBg = DatabaseHelper.actualBg();
if (lastBg != null) { if (lastBg != null) {
Double lastBgValue = lastBg.valueToUnits(units); Double lastBgValue = lastBg.valueToUnits(units);

View file

@ -66,6 +66,7 @@ import info.nightscout.androidaps.data.GlucoseStatus;
import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.db.BgReading;
import info.nightscout.androidaps.db.DatabaseHelper;
import info.nightscout.androidaps.db.TempExBasal; import info.nightscout.androidaps.db.TempExBasal;
import info.nightscout.androidaps.db.TempTarget; import info.nightscout.androidaps.db.TempTarget;
import info.nightscout.androidaps.db.Treatment; import info.nightscout.androidaps.db.Treatment;
@ -546,7 +547,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
} }
void onClickQuickwizard() { void onClickQuickwizard() {
final BgReading actualBg = GlucoseStatus.actualBg(); final BgReading actualBg = DatabaseHelper.actualBg();
if (MainApp.getConfigBuilder() == null || ConfigBuilderPlugin.getActiveProfile() == null) // app not initialized yet if (MainApp.getConfigBuilder() == null || ConfigBuilderPlugin.getActiveProfile() == null) // app not initialized yet
return; return;
final NSProfile profile = ConfigBuilderPlugin.getActiveProfile().getProfile(); final NSProfile profile = ConfigBuilderPlugin.getActiveProfile().getProfile();
@ -794,8 +795,8 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
public void updateGUI(String from) { public void updateGUI(String from) {
log.debug("updateGUI entered from: " + from); log.debug("updateGUI entered from: " + from);
updateNotifications(); updateNotifications();
BgReading actualBG = GlucoseStatus.actualBg(); BgReading actualBG = DatabaseHelper.actualBg();
BgReading lastBG = GlucoseStatus.lastBg(); BgReading lastBG = DatabaseHelper.lastBg();
if (MainApp.getConfigBuilder() == null || MainApp.getConfigBuilder().getActiveProfile() == null || MainApp.getConfigBuilder().getActiveProfile().getProfile() == null) {// app not initialized yet if (MainApp.getConfigBuilder() == null || MainApp.getConfigBuilder().getActiveProfile() == null || MainApp.getConfigBuilder().getActiveProfile().getProfile() == null) {// app not initialized yet
pumpStatusView.setText(R.string.noprofileset); pumpStatusView.setText(R.string.noprofileset);
@ -891,7 +892,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
} }
// **** Calibration button **** // **** Calibration button ****
if (MainApp.getSpecificPlugin(SourceXdripPlugin.class).isEnabled(PluginBase.BGSOURCE) && profile != null && GlucoseStatus.actualBg() != null) { if (MainApp.getSpecificPlugin(SourceXdripPlugin.class).isEnabled(PluginBase.BGSOURCE) && profile != null && DatabaseHelper.actualBg() != null) {
calibrationButton.setVisibility(View.VISIBLE); calibrationButton.setVisibility(View.VISIBLE);
} else { } else {
calibrationButton.setVisibility(View.GONE); calibrationButton.setVisibility(View.GONE);

View file

@ -19,6 +19,7 @@ import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.data.GlucoseStatus;
import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.db.BgReading;
import info.nightscout.androidaps.db.DatabaseHelper;
import info.nightscout.androidaps.db.TempExBasal; import info.nightscout.androidaps.db.TempExBasal;
import info.nightscout.androidaps.events.EventExtendedBolusChange; import info.nightscout.androidaps.events.EventExtendedBolusChange;
import info.nightscout.androidaps.events.EventInitializationChanged; import info.nightscout.androidaps.events.EventInitializationChanged;
@ -121,7 +122,7 @@ public class PersistentNotificationPlugin implements PluginBase{
NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
BgReading lastBG = GlucoseStatus.lastBg(); BgReading lastBG = DatabaseHelper.lastBg();
GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData(); GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData();
if(profile != null && lastBG != null) { if(profile != null && lastBG != null) {

View file

@ -389,19 +389,8 @@ public class DanaRHistoryActivity extends Activity {
} }
private void loadDataFromDB(byte type) { private void loadDataFromDB(byte type) {
try { historyList = MainApp.getDbHelper().getDanaRHistoryRecordsByType(type);
Dao<DanaRHistoryRecord, String> dao = MainApp.getDbHelper().getDaoDanaRHistory();
QueryBuilder<DanaRHistoryRecord, String> queryBuilder = dao.queryBuilder();
queryBuilder.orderBy("recordDate", false);
Where where = queryBuilder.where();
where.eq("recordCode", type);
queryBuilder.limit(200L);
PreparedQuery<DanaRHistoryRecord> preparedQuery = queryBuilder.prepare();
historyList = dao.query(preparedQuery);
} catch (SQLException e) {
e.printStackTrace();
historyList = new ArrayList<>();
}
runOnUiThread(new Runnable() { runOnUiThread(new Runnable() {
@Override @Override
public void run() { public void run() {

View file

@ -341,19 +341,8 @@ public class DanaRStatsActivity extends Activity {
} }
private void loadDataFromDB(byte type) { private void loadDataFromDB(byte type) {
try { historyList = MainApp.getDbHelper().getDanaRHistoryRecordsByType(type);
Dao<DanaRHistoryRecord, String> dao = MainApp.getDbHelper().getDaoDanaRHistory();
QueryBuilder<DanaRHistoryRecord, String> queryBuilder = dao.queryBuilder();
queryBuilder.orderBy("recordDate", false);
Where where = queryBuilder.where();
where.eq("recordCode", type);
queryBuilder.limit(10L);
PreparedQuery<DanaRHistoryRecord> preparedQuery = queryBuilder.prepare();
historyList = dao.query(preparedQuery);
} catch (SQLException e) {
e.printStackTrace();
historyList = new ArrayList<>();
}
runOnUiThread(new Runnable() { runOnUiThread(new Runnable() {
@Override @Override
public void run() { public void run() {

View file

@ -143,12 +143,7 @@ public class MsgHistoryAll extends MessageBase {
break; break;
} }
try { MainApp.getDbHelper().createIfNotExists(danaRHistoryRecord);
Dao<DanaRHistoryRecord, String> daoHistoryRecords = MainApp.getDbHelper().getDaoDanaRHistory();
daoHistoryRecords.createIfNotExists(danaRHistoryRecord);
} catch (SQLException e) {
log.error(e.getMessage(), e);
}
ev.message = DateUtil.dateAndTimeString(danaRHistoryRecord.recordDate); ev.message = DateUtil.dateAndTimeString(danaRHistoryRecord.recordDate);
ev.message += " " + messageType; ev.message += " " + messageType;

View file

@ -388,19 +388,8 @@ public class DanaRHistoryActivity extends Activity {
} }
private void loadDataFromDB(byte type) { private void loadDataFromDB(byte type) {
try { historyList = MainApp.getDbHelper().getDanaRHistoryRecordsByType(type);
Dao<DanaRHistoryRecord, String> dao = MainApp.getDbHelper().getDaoDanaRHistory();
QueryBuilder<DanaRHistoryRecord, String> queryBuilder = dao.queryBuilder();
queryBuilder.orderBy("recordDate", false);
Where where = queryBuilder.where();
where.eq("recordCode", type);
queryBuilder.limit(200L);
PreparedQuery<DanaRHistoryRecord> preparedQuery = queryBuilder.prepare();
historyList = dao.query(preparedQuery);
} catch (SQLException e) {
e.printStackTrace();
historyList = new ArrayList<>();
}
runOnUiThread(new Runnable() { runOnUiThread(new Runnable() {
@Override @Override
public void run() { public void run() {

View file

@ -341,19 +341,8 @@ public class DanaRStatsActivity extends Activity {
} }
private void loadDataFromDB(byte type) { private void loadDataFromDB(byte type) {
try { historyList = MainApp.getDbHelper().getDanaRHistoryRecordsByType(type);
Dao<DanaRHistoryRecord, String> dao = MainApp.getDbHelper().getDaoDanaRHistory();
QueryBuilder<DanaRHistoryRecord, String> queryBuilder = dao.queryBuilder();
queryBuilder.orderBy("recordDate", false);
Where where = queryBuilder.where();
where.eq("recordCode", type);
queryBuilder.limit(10L);
PreparedQuery<DanaRHistoryRecord> preparedQuery = queryBuilder.prepare();
historyList = dao.query(preparedQuery);
} catch (SQLException e) {
e.printStackTrace();
historyList = new ArrayList<>();
}
runOnUiThread(new Runnable() { runOnUiThread(new Runnable() {
@Override @Override
public void run() { public void run() {

View file

@ -389,19 +389,8 @@ public class DanaRHistoryActivity extends Activity {
} }
private void loadDataFromDB(byte type) { private void loadDataFromDB(byte type) {
try { historyList = MainApp.getDbHelper().getDanaRHistoryRecordsByType(type);
Dao<DanaRHistoryRecord, String> dao = MainApp.getDbHelper().getDaoDanaRHistory();
QueryBuilder<DanaRHistoryRecord, String> queryBuilder = dao.queryBuilder();
queryBuilder.orderBy("recordDate", false);
Where where = queryBuilder.where();
where.eq("recordCode", type);
queryBuilder.limit(200L);
PreparedQuery<DanaRHistoryRecord> preparedQuery = queryBuilder.prepare();
historyList = dao.query(preparedQuery);
} catch (SQLException e) {
e.printStackTrace();
historyList = new ArrayList<>();
}
runOnUiThread(new Runnable() { runOnUiThread(new Runnable() {
@Override @Override
public void run() { public void run() {

View file

@ -341,19 +341,8 @@ public class DanaRStatsActivity extends Activity {
} }
private void loadDataFromDB(byte type) { private void loadDataFromDB(byte type) {
try { historyList = MainApp.getDbHelper().getDanaRHistoryRecordsByType(type);
Dao<DanaRHistoryRecord, String> dao = MainApp.getDbHelper().getDaoDanaRHistory();
QueryBuilder<DanaRHistoryRecord, String> queryBuilder = dao.queryBuilder();
queryBuilder.orderBy("recordDate", false);
Where where = queryBuilder.where();
where.eq("recordCode", type);
queryBuilder.limit(10L);
PreparedQuery<DanaRHistoryRecord> preparedQuery = queryBuilder.prepare();
historyList = dao.query(preparedQuery);
} catch (SQLException e) {
e.printStackTrace();
historyList = new ArrayList<>();
}
runOnUiThread(new Runnable() { runOnUiThread(new Runnable() {
@Override @Override
public void run() { public void run() {

View file

@ -25,6 +25,7 @@ import info.nightscout.androidaps.data.GlucoseStatus;
import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.db.BgReading;
import info.nightscout.androidaps.db.DatabaseHelper;
import info.nightscout.androidaps.events.EventPreferenceChange; import info.nightscout.androidaps.events.EventPreferenceChange;
import info.nightscout.androidaps.events.EventRefreshGui; import info.nightscout.androidaps.events.EventRefreshGui;
import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PluginBase;
@ -231,8 +232,8 @@ public class SmsCommunicatorPlugin implements PluginBase {
if (splited.length > 0) { if (splited.length > 0) {
switch (splited[0].toUpperCase()) { switch (splited[0].toUpperCase()) {
case "BG": case "BG":
BgReading actualBG = GlucoseStatus.actualBg(); BgReading actualBG = DatabaseHelper.actualBg();
BgReading lastBG = GlucoseStatus.lastBg(); BgReading lastBG = DatabaseHelper.lastBg();
if (ConfigBuilderPlugin.getActiveProfile() == null || ConfigBuilderPlugin.getActiveProfile().getProfile() == null) { if (ConfigBuilderPlugin.getActiveProfile() == null || ConfigBuilderPlugin.getActiveProfile().getProfile() == null) {
reply = MainApp.sResources.getString(R.string.noprofile); reply = MainApp.sResources.getString(R.string.noprofile);

View file

@ -152,13 +152,7 @@ public class TempTargetRangeFragment extends Fragment implements View.OnClickLis
if (_id != null && !_id.equals("")) { if (_id != null && !_id.equals("")) {
MainApp.getConfigBuilder().removeCareportalEntryFromNS(_id); MainApp.getConfigBuilder().removeCareportalEntryFromNS(_id);
} }
try { MainApp.getDbHelper().delete(tempTarget);
Dao<TempTarget, Long> daoTempTargets = MainApp.getDbHelper().getDaoTempTargets();
daoTempTargets.delete(tempTarget);
MainApp.bus().post(new EventTempTargetRangeChange());
} catch (SQLException e) {
e.printStackTrace();
}
} }
}); });
builder.setNegativeButton(MainApp.sResources.getString(R.string.cancel), null); builder.setNegativeButton(MainApp.sResources.getString(R.string.cancel), null);

View file

@ -4,9 +4,6 @@ import android.os.Handler;
import android.os.HandlerThread; import android.os.HandlerThread;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import com.j256.ormlite.dao.Dao;
import java.sql.SQLException;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.Date; import java.util.Date;
@ -15,9 +12,9 @@ import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.GlucoseStatus;
import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.db.BgReading;
import info.nightscout.androidaps.db.DatabaseHelper;
import info.nightscout.androidaps.db.TempTarget; import info.nightscout.androidaps.db.TempTarget;
import info.nightscout.androidaps.interfaces.APSInterface; import info.nightscout.androidaps.interfaces.APSInterface;
import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PluginBase;
@ -25,7 +22,6 @@ import info.nightscout.androidaps.plugins.Actions.dialogs.FillDialog;
import info.nightscout.androidaps.plugins.Loop.LoopPlugin; import info.nightscout.androidaps.plugins.Loop.LoopPlugin;
import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile;
import info.nightscout.androidaps.plugins.TempTargetRange.TempTargetRangePlugin; import info.nightscout.androidaps.plugins.TempTargetRange.TempTargetRangePlugin;
import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange;
import info.nightscout.utils.BolusWizard; import info.nightscout.utils.BolusWizard;
import info.nightscout.utils.DateUtil; import info.nightscout.utils.DateUtil;
import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.DecimalFormatter;
@ -46,13 +42,14 @@ public class ActionStringHandler {
private static BolusWizard lastBolusWizard = null; private static BolusWizard lastBolusWizard = null;
private static HandlerThread handlerThread = new HandlerThread(FillDialog.class.getSimpleName()); private static HandlerThread handlerThread = new HandlerThread(FillDialog.class.getSimpleName());
static { static {
handlerThread.start(); handlerThread.start();
} }
public synchronized static void handleInitiate(String actionstring){ public synchronized static void handleInitiate(String actionstring) {
if(!BuildConfig.WEAR_CONTROL) return; if (!BuildConfig.WEAR_CONTROL) return;
lastBolusWizard = null; lastBolusWizard = null;
@ -123,19 +120,19 @@ public class ActionStringHandler {
sendError("No profile found!"); sendError("No profile found!");
return; return;
} }
if(profile.getUnits().equals(Constants.MGDL) != isMGDL){ if (profile.getUnits().equals(Constants.MGDL) != isMGDL) {
sendError("Different units used on watch and phone!"); sendError("Different units used on watch and phone!");
return; return;
} }
int duration = SafeParse.stringToInt(act[2]); int duration = SafeParse.stringToInt(act[2]);
if (duration == 0){ if (duration == 0) {
rMessage += "Zero-Temp-Target - cancelling running Temp-Targets?"; rMessage += "Zero-Temp-Target - cancelling running Temp-Targets?";
rAction = "temptarget true 0 0 0"; rAction = "temptarget true 0 0 0";
} else { } else {
double low = SafeParse.stringToDouble(act[3]); double low = SafeParse.stringToDouble(act[3]);
double high = SafeParse.stringToDouble(act[4]); double high = SafeParse.stringToDouble(act[4]);
if(!isMGDL){ if (!isMGDL) {
low *= Constants.MMOLL_TO_MGDL; low *= Constants.MMOLL_TO_MGDL;
high *= Constants.MMOLL_TO_MGDL; high *= Constants.MMOLL_TO_MGDL;
} }
@ -147,7 +144,7 @@ public class ActionStringHandler {
sendError("Max-BG out of range!"); sendError("Max-BG out of range!");
return; return;
} }
rMessage += "Temptarget:\nMin: " + act[3] + "\nMax: " + act[4] + "\nDuration: " + act[2]; rMessage += "Temptarget:\nMin: " + act[3] + "\nMax: " + act[4] + "\nDuration: " + act[2];
rAction = actionstring; rAction = actionstring;
} }
@ -156,14 +153,14 @@ public class ActionStringHandler {
////////////////////////////////////////////// STATUS ////////////////////////////////////////////// STATUS
rTitle = "STATUS"; rTitle = "STATUS";
rAction = "statusmessage"; rAction = "statusmessage";
if("pump".equals(act[1])){ if ("pump".equals(act[1])) {
rTitle += " PUMP"; rTitle += " PUMP";
rMessage = getPumpStatus(); rMessage = getPumpStatus();
} else if("loop".equals(act[1])){ } else if ("loop".equals(act[1])) {
rTitle += " LOOP"; rTitle += " LOOP";
rMessage = getLoopStatus(); rMessage = getLoopStatus();
} else if("targets".equals(act[1])){ } else if ("targets".equals(act[1])) {
rTitle += " TARGETS"; rTitle += " TARGETS";
rMessage = getTargetsStatus(); rMessage = getTargetsStatus();
} }
@ -173,8 +170,9 @@ public class ActionStringHandler {
Integer carbsBeforeConstraints = SafeParse.stringToInt(act[1]); Integer carbsBeforeConstraints = SafeParse.stringToInt(act[1]);
Integer carbsAfterConstraints = MainApp.getConfigBuilder().applyCarbsConstraints(carbsBeforeConstraints); Integer carbsAfterConstraints = MainApp.getConfigBuilder().applyCarbsConstraints(carbsBeforeConstraints);
if(carbsAfterConstraints - carbsBeforeConstraints !=0){ if (carbsAfterConstraints - carbsBeforeConstraints != 0) {
sendError("Carb constraint violation!"); return; sendError("Carb constraint violation!");
return;
} }
boolean useBG = Boolean.parseBoolean(act[2]); boolean useBG = Boolean.parseBoolean(act[2]);
@ -183,31 +181,33 @@ public class ActionStringHandler {
NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
if (profile == null) { if (profile == null) {
sendError("No profile found!"); return; sendError("No profile found!");
return;
} }
BgReading bgReading = GlucoseStatus.actualBg(); BgReading bgReading = DatabaseHelper.actualBg();
if(bgReading==null && useBG){ if (bgReading == null && useBG) {
sendError("No recent BG to base calculation on!"); return; sendError("No recent BG to base calculation on!");
return;
} }
DecimalFormat format = new DecimalFormat("0.00"); DecimalFormat format = new DecimalFormat("0.00");
BolusWizard bolusWizard = new BolusWizard(); BolusWizard bolusWizard = new BolusWizard();
bolusWizard.doCalc(profile.getDefaultProfile(), carbsAfterConstraints, 0d, useBG?bgReading.valueToUnits(profile.getUnits()):0d, 0d, useBolusIOB, useBasalIOB, false, false); bolusWizard.doCalc(profile.getDefaultProfile(), carbsAfterConstraints, 0d, useBG ? bgReading.valueToUnits(profile.getUnits()) : 0d, 0d, useBolusIOB, useBasalIOB, false, false);
Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(bolusWizard.calculatedTotalInsulin); Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(bolusWizard.calculatedTotalInsulin);
if(insulinAfterConstraints - bolusWizard.calculatedTotalInsulin !=0){ if (insulinAfterConstraints - bolusWizard.calculatedTotalInsulin != 0) {
sendError("Insulin contraint violation!" + sendError("Insulin contraint violation!" +
"\nCannot deliver " + format.format(bolusWizard.calculatedTotalInsulin) +"!"); "\nCannot deliver " + format.format(bolusWizard.calculatedTotalInsulin) + "!");
return; return;
} }
double insulin = bolusWizard.calculatedTotalInsulin; double insulin = bolusWizard.calculatedTotalInsulin;
if(bolusWizard.calculatedTotalInsulin < 0) { if (bolusWizard.calculatedTotalInsulin < 0) {
bolusWizard.calculatedTotalInsulin = 0d; bolusWizard.calculatedTotalInsulin = 0d;
} }
if(bolusWizard.calculatedTotalInsulin <=0 && bolusWizard.carbs <=0){ if (bolusWizard.calculatedTotalInsulin <= 0 && bolusWizard.carbs <= 0) {
rAction = "info"; rAction = "info";
rTitle = "INFO"; rTitle = "INFO";
} else { } else {
@ -216,11 +216,13 @@ public class ActionStringHandler {
rMessage += "Carbs: " + bolusWizard.carbs + "g"; rMessage += "Carbs: " + bolusWizard.carbs + "g";
rMessage += "\nBolus: " + format.format(bolusWizard.calculatedTotalInsulin) + "U"; rMessage += "\nBolus: " + format.format(bolusWizard.calculatedTotalInsulin) + "U";
rMessage += "\n_____________"; rMessage += "\n_____________";
rMessage += "\nCalc (IC:" + DecimalFormatter.to1Decimal(bolusWizard.ic) + ", " + "ISF:" + DecimalFormatter.to1Decimal(bolusWizard.sens) + "): "; rMessage += "\nCalc (IC:" + DecimalFormatter.to1Decimal(bolusWizard.ic) + ", " + "ISF:" + DecimalFormatter.to1Decimal(bolusWizard.sens) + "): ";
rMessage += "\nFrom Carbs: " + format.format(bolusWizard.insulinFromCarbs) + "U"; rMessage += "\nFrom Carbs: " + format.format(bolusWizard.insulinFromCarbs) + "U";
if(useBG)rMessage += "\nFrom BG: " + format.format(bolusWizard.insulinFromBG) + "U"; if (useBG) rMessage += "\nFrom BG: " + format.format(bolusWizard.insulinFromBG) + "U";
if(useBolusIOB)rMessage += "\nBolus IOB: " + format.format(bolusWizard.insulingFromBolusIOB) + "U"; if (useBolusIOB)
if(useBasalIOB)rMessage += "\nBasal IOB: " + format.format(bolusWizard.insulingFromBasalsIOB) + "U"; rMessage += "\nBolus IOB: " + format.format(bolusWizard.insulingFromBolusIOB) + "U";
if (useBasalIOB)
rMessage += "\nBasal IOB: " + format.format(bolusWizard.insulingFromBasalsIOB) + "U";
lastBolusWizard = bolusWizard; lastBolusWizard = bolusWizard;
@ -242,25 +244,24 @@ public class ActionStringHandler {
String ret = ""; String ret = "";
// decide if enabled/disabled closed/open; what Plugin as APS? // decide if enabled/disabled closed/open; what Plugin as APS?
final LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop(); final LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop();
if(activeloop != null && activeloop.isEnabled(activeloop.getType())) { if (activeloop != null && activeloop.isEnabled(activeloop.getType())) {
if (MainApp.getConfigBuilder().isClosedModeEnabled()) { if (MainApp.getConfigBuilder().isClosedModeEnabled()) {
ret += "CLOSED LOOP\n"; ret += "CLOSED LOOP\n";
} else { } else {
ret += "OPEN LOOP\n"; ret += "OPEN LOOP\n";
} }
final APSInterface aps = MainApp.getConfigBuilder().getActiveAPS(); final APSInterface aps = MainApp.getConfigBuilder().getActiveAPS();
ret += "APS: " + ((aps==null)?"NO APS SELECTED!":((PluginBase) aps).getName()); ret += "APS: " + ((aps == null) ? "NO APS SELECTED!" : ((PluginBase) aps).getName());
if(activeloop.lastRun != null){ if (activeloop.lastRun != null) {
if(activeloop.lastRun.lastAPSRun != null) if (activeloop.lastRun.lastAPSRun != null)
ret += "\nLast Run: " + DateUtil.timeString(activeloop.lastRun.lastAPSRun); ret += "\nLast Run: " + DateUtil.timeString(activeloop.lastRun.lastAPSRun);
if(activeloop.lastRun.lastEnact != null) if (activeloop.lastRun.lastEnact != null)
ret += "\nLast Enact: " + DateUtil.timeString(activeloop.lastRun.lastEnact); ret += "\nLast Enact: " + DateUtil.timeString(activeloop.lastRun.lastEnact);
} }
} else { } else {
ret += "LOOP DISABLED\n"; ret += "LOOP DISABLED\n";
} }
@ -271,11 +272,11 @@ public class ActionStringHandler {
@NonNull @NonNull
private static String getTargetsStatus() { private static String getTargetsStatus() {
String ret = ""; String ret = "";
if (!Config.APS){ if (!Config.APS) {
return "Targets only apply in APS mode!"; return "Targets only apply in APS mode!";
} }
NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
if (profile == null){ if (profile == null) {
return "No profile set :("; return "No profile set :(";
} }
@ -306,9 +307,9 @@ public class ActionStringHandler {
} }
public synchronized static void handleConfirmation(String actionString){ public synchronized static void handleConfirmation(String actionString) {
if(!BuildConfig.WEAR_CONTROL) return; if (!BuildConfig.WEAR_CONTROL) return;
//Guard from old or duplicate confirmations //Guard from old or duplicate confirmations
@ -320,10 +321,10 @@ public class ActionStringHandler {
// do the parsing, check constraints and enact! // do the parsing, check constraints and enact!
String[] act = actionString.split("\\s+"); String[] act = actionString.split("\\s+");
if ("fill".equals(act[0])){ if ("fill".equals(act[0])) {
Double amount = SafeParse.stringToDouble(act[1]); Double amount = SafeParse.stringToDouble(act[1]);
Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(amount); Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(amount);
if(amount - insulinAfterConstraints != 0){ if (amount - insulinAfterConstraints != 0) {
ToastUtils.showToastInUiThread(MainApp.instance(), "aborting: previously applied constraint changed"); ToastUtils.showToastInUiThread(MainApp.instance(), "aborting: previously applied constraint changed");
sendError("aborting: previously applied constraint changed"); sendError("aborting: previously applied constraint changed");
return; return;
@ -334,12 +335,12 @@ public class ActionStringHandler {
double low = SafeParse.stringToDouble(act[3]); double low = SafeParse.stringToDouble(act[3]);
double high = SafeParse.stringToDouble(act[4]); double high = SafeParse.stringToDouble(act[4]);
boolean isMGDL = Boolean.parseBoolean(act[1]); boolean isMGDL = Boolean.parseBoolean(act[1]);
if(!isMGDL){ if (!isMGDL) {
low *= Constants.MMOLL_TO_MGDL; low *= Constants.MMOLL_TO_MGDL;
high *= Constants.MMOLL_TO_MGDL; high *= Constants.MMOLL_TO_MGDL;
} }
generateTempTarget(duration, low, high); generateTempTarget(duration, low, high);
} else if ("wizard".equals(act[0])){ } else if ("wizard".equals(act[0])) {
//use last calculation as confirmed string matches //use last calculation as confirmed string matches
doBolus(lastBolusWizard.calculatedTotalInsulin, lastBolusWizard.carbs); doBolus(lastBolusWizard.calculatedTotalInsulin, lastBolusWizard.carbs);
@ -357,24 +358,17 @@ public class ActionStringHandler {
tempTarget.date = new Date().getTime(); tempTarget.date = new Date().getTime();
tempTarget.durationInMinutes = duration; tempTarget.durationInMinutes = duration;
tempTarget.reason = "WearPlugin"; tempTarget.reason = "WearPlugin";
if(tempTarget.durationInMinutes != 0) { if (tempTarget.durationInMinutes != 0) {
tempTarget.low = low; tempTarget.low = low;
tempTarget.high = high; tempTarget.high = high;
} else { } else {
tempTarget.low = 0; tempTarget.low = 0;
tempTarget.high = 0; tempTarget.high = 0;
} }
Dao<TempTarget, Long> dao = null; MainApp.getDbHelper().createIfNotExists(tempTarget);
try {
dao = MainApp.getDbHelper().getDaoTempTargets();
dao.createIfNotExists(tempTarget);
MainApp.bus().post(new EventTempTargetRangeChange());
//TODO: Nightscout-Treatment for Temp-Target! //TODO: Nightscout-Treatment for Temp-Target!
//ConfigBuilderPlugin.uploadCareportalEntryToNS(data); //ConfigBuilderPlugin.uploadCareportalEntryToNS(data);
} catch (SQLException e) {
e.printStackTrace();
}
} }
private static void doFillBolus(final Double amount) { private static void doFillBolus(final Double amount) {
@ -385,7 +379,7 @@ public class ActionStringHandler {
public void run() { public void run() {
PumpEnactResult result = MainApp.getConfigBuilder().deliverTreatment(MainApp.getConfigBuilder().getActiveInsulin(), amount, 0, null, false); PumpEnactResult result = MainApp.getConfigBuilder().deliverTreatment(MainApp.getConfigBuilder().getActiveInsulin(), amount, 0, null, false);
if (!result.success) { if (!result.success) {
sendError(MainApp.sResources.getString(R.string.treatmentdeliveryerror) + sendError(MainApp.sResources.getString(R.string.treatmentdeliveryerror) +
"\n" + "\n" +
result.comment); result.comment);
} }
@ -401,7 +395,7 @@ public class ActionStringHandler {
public void run() { public void run() {
PumpEnactResult result = MainApp.getConfigBuilder().deliverTreatment(MainApp.getConfigBuilder().getActiveInsulin(), amount, carbs, null, true); PumpEnactResult result = MainApp.getConfigBuilder().deliverTreatment(MainApp.getConfigBuilder().getActiveInsulin(), amount, carbs, null, true);
if (!result.success) { if (!result.success) {
sendError(MainApp.sResources.getString(R.string.treatmentdeliveryerror) + sendError(MainApp.sResources.getString(R.string.treatmentdeliveryerror) +
"\n" + "\n" +
result.comment); result.comment);
} }
@ -409,7 +403,7 @@ public class ActionStringHandler {
}); });
} }
private synchronized static void sendError(String errormessage){ private synchronized static void sendError(String errormessage) {
WearFragment.getPlugin(MainApp.instance()).requestActionConfirmation("ERROR", errormessage, "error"); WearFragment.getPlugin(MainApp.instance()).requestActionConfirmation("ERROR", errormessage, "error");
lastSentTimestamp = System.currentTimeMillis(); lastSentTimestamp = System.currentTimeMillis();
lastConfirmActionString = null; lastConfirmActionString = null;

View file

@ -28,6 +28,7 @@ import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.data.GlucoseStatus;
import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.db.BgReading;
import info.nightscout.androidaps.db.DatabaseHelper;
import info.nightscout.androidaps.db.TempExBasal; import info.nightscout.androidaps.db.TempExBasal;
import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.interfaces.PumpInterface;
@ -187,7 +188,7 @@ public class WatchUpdaterService extends WearableListenerService implements
private void sendData() { private void sendData() {
BgReading lastBG = GlucoseStatus.lastBg(); BgReading lastBG = DatabaseHelper.lastBg();
if (lastBG != null) { if (lastBG != null) {
GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData(); GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData();
@ -295,7 +296,7 @@ public class WatchUpdaterService extends WearableListenerService implements
private void resendData() { private void resendData() {
if(googleApiClient != null && !googleApiClient.isConnected() && !googleApiClient.isConnecting()) { googleApiConnect(); } if(googleApiClient != null && !googleApiClient.isConnected() && !googleApiClient.isConnecting()) { googleApiConnect(); }
long startTime = System.currentTimeMillis() - (long)(60000 * 60 * 5.5); long startTime = System.currentTimeMillis() - (long)(60000 * 60 * 5.5);
BgReading last_bg = GlucoseStatus.lastBg(); BgReading last_bg = DatabaseHelper.lastBg();
if (last_bg == null) return; if (last_bg == null) return;