Merge remote-tracking branch 'origin/dev' into develop

* origin/dev: (53 commits)
  bump 1.53
  BG & IOB contribution on by default in wizard
  check for NaN
  Revert "Rounding issues visible in nightscout insulin field"
  Clarified boolean logic with parentheses :)
  loadEvents after bolus in separate thread
  use notification for bolus delivery failed message when window has been destroyed
  fix null pointer exception
  Added cases to accept both a.m./p.m. and AM/PM
  split JSON arrays to 50 elements
  Update strings.xml
  Changed rounding to use BigDecimals to avoid noisy long doubles in output
  Revert "Merge branch 'dev' of C:\Users\Dylan\StudioProjects\AndroidAPS fork with conflicts."
  Changed how time strings are parsed to fix a problem where PM times were being saved as the AM version any time toSeconds was called
  Merge branch 'dev' of C:\Users\Dylan\StudioProjects\AndroidAPS fork with conflicts.
  Removed unused imports
  Rounding fix
  VirtualPump: set PumpEnactResult.enacted.
  Use correct units for low/high from TT.
  Remove duplicate logging.
  ...

# Conflicts:
#	app/build.gradle
#	app/src/main/java/info/nightscout/androidaps/MainApp.java
#	app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java
#	app/src/main/res/values/strings.xml
This commit is contained in:
Johannes Mockenhaupt 2017-09-18 22:54:35 +02:00
commit 1bd5dc3719
No known key found for this signature in database
GPG key ID: 9E1EA6AF7BBBB0D1
123 changed files with 2089 additions and 1834 deletions

View file

@ -44,7 +44,7 @@ android {
minSdkVersion 21
targetSdkVersion 23
versionCode 1500
version "1.5h-combo-dev"
version "1.53-combo-dev"
buildConfigField "String", "VERSION", '"' + version + '"'
buildConfigField "String", "BUILDVERSION", generateGitBuild()
}

View file

@ -95,9 +95,10 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
if (ev.lock) {
mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "AAPS");
mWakeLock.acquire();
if (!mWakeLock.isHeld())
mWakeLock.acquire();
} else {
if (mWakeLock != null)
if (mWakeLock != null && mWakeLock.isHeld())
mWakeLock.release();
}
}
@ -113,7 +114,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
try { // activity may be destroyed
setUpTabs(true);
} catch (IllegalStateException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
boolean lockScreen = BuildConfig.NSCLIENTOLNY && SP.getBoolean("lockscreen", false);
if (lockScreen)
@ -206,7 +207,8 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
@Override
public void onDestroy() {
if (mWakeLock != null)
mWakeLock.release();
if (mWakeLock.isHeld())
mWakeLock.release();
super.onDestroy();
}

View file

@ -4,6 +4,7 @@ import android.app.Application;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Resources;
import android.os.SystemClock;
import android.support.annotation.Nullable;
import android.support.v4.content.LocalBroadcastManager;
@ -30,11 +31,11 @@ import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderFragment;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.ConstraintsObjectives.ObjectivesFragment;
import info.nightscout.androidaps.plugins.ConstraintsSafety.SafetyPlugin;
import info.nightscout.androidaps.plugins.InsulinFastacting.InsulinFastactingFragment;
import info.nightscout.androidaps.plugins.InsulinFastactingProlonged.InsulinFastactingProlongedFragment;
import info.nightscout.androidaps.plugins.InsulinOrefCurves.InsulinOrefFreePeakFragment;
import info.nightscout.androidaps.plugins.InsulinOrefCurves.InsulinOrefRapidActingFragment;
import info.nightscout.androidaps.plugins.InsulinOrefCurves.InsulinOrefUltraRapidActingFragment;
import info.nightscout.androidaps.plugins.Insulin.InsulinFastactingPlugin;
import info.nightscout.androidaps.plugins.Insulin.InsulinFastactingProlongedPlugin;
import info.nightscout.androidaps.plugins.Insulin.InsulinOrefFreePeakPlugin;
import info.nightscout.androidaps.plugins.Insulin.InsulinOrefRapidActingPlugin;
import info.nightscout.androidaps.plugins.Insulin.InsulinOrefUltraRapidActingPlugin;
import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin;
import info.nightscout.androidaps.plugins.Loop.LoopFragment;
import info.nightscout.androidaps.plugins.NSClientInternal.NSClientInternalFragment;
@ -49,10 +50,11 @@ import info.nightscout.androidaps.plugins.ProfileNS.NSProfileFragment;
import info.nightscout.androidaps.plugins.ProfileSimple.SimpleProfileFragment;
import info.nightscout.androidaps.plugins.PumpCombo.ComboFragment;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRFragment;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRPlugin;
import info.nightscout.androidaps.plugins.PumpDanaR.services.DanaRExecutionService;
import info.nightscout.androidaps.plugins.PumpDanaRKorean.DanaRKoreanFragment;
import info.nightscout.androidaps.plugins.PumpDanaRKorean.DanaRKoreanPlugin;
import info.nightscout.androidaps.plugins.PumpDanaRKorean.services.DanaRKoreanExecutionService;
import info.nightscout.androidaps.plugins.PumpDanaRv2.DanaRv2Fragment;
import info.nightscout.androidaps.plugins.PumpDanaRv2.DanaRv2Plugin;
import info.nightscout.androidaps.plugins.PumpDanaRv2.services.DanaRv2ExecutionService;
import info.nightscout.androidaps.plugins.PumpMDI.MDIPlugin;
import info.nightscout.androidaps.plugins.PumpVirtual.VirtualPumpPlugin;
@ -113,17 +115,17 @@ public class MainApp extends Application {
pluginsList.add(OverviewFragment.getPlugin());
pluginsList.add(IobCobCalculatorPlugin.getPlugin());
if (Config.ACTION) pluginsList.add(ActionsFragment.getPlugin());
pluginsList.add(InsulinFastactingFragment.getPlugin());
pluginsList.add(InsulinFastactingProlongedFragment.getPlugin());
pluginsList.add(InsulinOrefRapidActingFragment.getPlugin());
pluginsList.add(InsulinOrefUltraRapidActingFragment.getPlugin());
pluginsList.add(InsulinOrefFreePeakFragment.getPlugin());
pluginsList.add(InsulinFastactingPlugin.getPlugin());
pluginsList.add(InsulinFastactingProlongedPlugin.getPlugin());
pluginsList.add(InsulinOrefRapidActingPlugin.getPlugin());
pluginsList.add(InsulinOrefUltraRapidActingPlugin.getPlugin());
pluginsList.add(InsulinOrefFreePeakPlugin.getPlugin());
pluginsList.add(SensitivityOref0Plugin.getPlugin());
pluginsList.add(SensitivityAAPSPlugin.getPlugin());
pluginsList.add(SensitivityWeightedAveragePlugin.getPlugin());
if (Config.DANAR) pluginsList.add(DanaRFragment.getPlugin());
if (Config.DANAR) pluginsList.add(DanaRKoreanFragment.getPlugin());
if (Config.DANARv2) pluginsList.add(DanaRv2Fragment.getPlugin());
if (Config.DANAR) pluginsList.add(DanaRPlugin.getPlugin());
if (Config.DANAR) pluginsList.add(DanaRKoreanPlugin.getPlugin());
if (Config.DANARv2) pluginsList.add(DanaRv2Plugin.getPlugin());
if (Config.COMBO) pluginsList.add(ComboFragment.getPlugin());
pluginsList.add(CareportalFragment.getPlugin());
if (Config.MDI) pluginsList.add(MDIPlugin.getPlugin());
@ -169,10 +171,7 @@ public class MainApp extends Application {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
}
SystemClock.sleep(5000);
PumpInterface pump = MainApp.getConfigBuilder();
if (pump != null)
pump.refreshDataFromPump("Initialization");

View file

@ -50,7 +50,7 @@ public class AlarmSoundService extends Service {
player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
afd.close();
} catch (IOException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
player.setLooping(true); // Set looping
player.setVolume(100, 100);
@ -59,7 +59,7 @@ public class AlarmSoundService extends Service {
player.prepare();
player.start();
} catch (IOException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return START_STICKY;

View file

@ -244,7 +244,7 @@ public class DataService extends IntentService {
MainApp.bus().post(new EventDismissNotification(Notification.OLD_NSCLIENT));
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
if (ConfigBuilderPlugin.nightscoutVersionCode < Config.SUPPORTEDNSVERSION) {
Notification notification = new Notification(Notification.OLD_NS, MainApp.sResources.getString(R.string.unsupportednsversion), Notification.URGENT);
@ -269,7 +269,7 @@ public class DataService extends IntentService {
if (targetlow != null)
OverviewPlugin.bgTargetLow = targetlow;
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
}
@ -298,7 +298,7 @@ public class DataService extends IntentService {
}
}
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
// Handle profile
@ -313,7 +313,7 @@ public class DataService extends IntentService {
if (Config.logIncommingData)
log.debug("Received profileStore: " + activeProfile + " " + profile);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
if (intent.getAction().equals(Intents.ACTION_NEW_TREATMENT)) {
@ -332,7 +332,7 @@ public class DataService extends IntentService {
}
}
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -353,7 +353,7 @@ public class DataService extends IntentService {
}
}
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -376,7 +376,7 @@ public class DataService extends IntentService {
}
}
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -401,7 +401,7 @@ public class DataService extends IntentService {
}
}
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -430,7 +430,7 @@ public class DataService extends IntentService {
}
}
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
}

View file

@ -2,6 +2,8 @@ package info.nightscout.androidaps.data;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Date;
@ -9,6 +11,8 @@ import info.nightscout.utils.DateUtil;
import info.nightscout.utils.Round;
public class IobTotal {
private static Logger log = LoggerFactory.getLogger(IobTotal.class);
public double iob;
public double activity;
public double bolussnooze;
@ -86,7 +90,7 @@ public class IobTotal {
json.put("activity", activity);
json.put("time", DateUtil.toISOString(new Date()));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return json;
}
@ -100,7 +104,7 @@ public class IobTotal {
json.put("activity", activity);
json.put("time", DateUtil.toISOString(new Date(time)));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return json;
}

View file

@ -109,7 +109,7 @@ public class Profile {
MainApp.bus().post(new EventDismissNotification(Notification.TARGET_MISSING));
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.invalidprofile));
}
}
@ -129,7 +129,7 @@ public class Profile {
try {
json.put("units", units);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return json;
}
@ -156,7 +156,7 @@ public class Profile {
Double value = o.getDouble("value");
sparse.put(tas, value);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return sparse;
@ -176,7 +176,7 @@ public class Profile {
}
lastValue = value;
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return lastValue;
@ -215,7 +215,7 @@ public class Profile {
if (index + 1 < array.length())
retValue += "\n";
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return retValue;
@ -297,7 +297,7 @@ public class Profile {
}
return ret;
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return new BasalValue[0];
}

View file

@ -50,7 +50,7 @@ public class ProfileStore {
}
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return profile;
}
@ -65,7 +65,7 @@ public class ProfileStore {
return defaultProfileName;
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return defaultProfileName;
}
@ -90,7 +90,7 @@ public class ProfileStore {
}
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return profile;
}
@ -108,7 +108,7 @@ public class ProfileStore {
ret.add(profileName);
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return ret;

View file

@ -5,6 +5,8 @@ import android.text.Spanned;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
@ -12,6 +14,8 @@ import info.nightscout.utils.DecimalFormatter;
import info.nightscout.utils.Round;
public class PumpEnactResult extends Object {
private static Logger log = LoggerFactory.getLogger(PumpEnactResult.class);
public boolean success = false; // request was processed successfully (but possible no change was needed)
public boolean enacted = false; // request was processed successfully and change has been made
public String comment = "";
@ -101,7 +105,7 @@ public class PumpEnactResult extends Object {
result.put("duration", duration);
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return result;
}

View file

@ -142,7 +142,7 @@ public class CareportalEvent implements DataPointWithLabelInterface {
JSONObject object = new JSONObject(json);
mbg = object.getDouble("mgdl");
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return Profile.fromMgdlToUnits(mbg, units);
}
@ -155,7 +155,7 @@ public class CareportalEvent implements DataPointWithLabelInterface {
units = object.getString("units");
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
if (glucose != 0d) {
double mmol = 0d;
@ -186,7 +186,7 @@ public class CareportalEvent implements DataPointWithLabelInterface {
if (object.has("notes"))
return object.getString("notes");
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return Translator.translate(eventType);
}
@ -198,7 +198,7 @@ public class CareportalEvent implements DataPointWithLabelInterface {
if (object.has("duration"))
return object.getInt("duration") * 60 * 1000L;
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return 0;
}

View file

@ -207,7 +207,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
TableUtils.createTableIfNotExists(connectionSource, ProfileSwitch.class);
updateEarliestDataChange(0);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
VirtualPumpPlugin.setFakingStatus(true);
scheduleBgChange(); // trigger refresh
@ -234,7 +234,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
TableUtils.createTableIfNotExists(connectionSource, Treatment.class);
updateEarliestDataChange(0);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
scheduleTreatmentChange();
}
@ -244,7 +244,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
TableUtils.dropTable(connectionSource, TempTarget.class, true);
TableUtils.createTableIfNotExists(connectionSource, TempTarget.class);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
scheduleTemporaryTargetChange();
}
@ -255,7 +255,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
TableUtils.createTableIfNotExists(connectionSource, TemporaryBasal.class);
updateEarliestDataChange(0);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
VirtualPumpPlugin.setFakingStatus(false);
scheduleTemporaryBasalChange();
@ -267,7 +267,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
TableUtils.createTableIfNotExists(connectionSource, ExtendedBolus.class);
updateEarliestDataChange(0);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
scheduleExtendedBolusChange();
}
@ -277,7 +277,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
TableUtils.dropTable(connectionSource, CareportalEvent.class, true);
TableUtils.createTableIfNotExists(connectionSource, CareportalEvent.class);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
scheduleCareportalEventChange();
}
@ -287,7 +287,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
TableUtils.dropTable(connectionSource, ProfileSwitch.class, true);
TableUtils.createTableIfNotExists(connectionSource, ProfileSwitch.class);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
scheduleProfileSwitchChange();
}
@ -353,7 +353,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return;
}
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -430,7 +430,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
bgReadings = daoBgreadings.query(preparedQuery);
return bgReadings;
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return new ArrayList<BgReading>();
}
@ -441,7 +441,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
try {
getDaoDbRequest().create(dbr);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -449,7 +449,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
try {
return getDaoDbRequest().delete(dbr);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return 0;
}
@ -458,7 +458,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
try {
return getDaoDbRequest().deleteById(nsClientId);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return 0;
}
@ -478,7 +478,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return delete(dbList.get(0));
}
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return 0;
}
@ -487,7 +487,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
try {
TableUtils.clearTable(connectionSource, DbRequest.class);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -495,7 +495,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
try {
return getDaoDbRequest().closeableIterator();
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
return null;
}
}
@ -583,7 +583,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return true;
}
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return false;
}
@ -593,7 +593,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
getDaoTreatments().delete(treatment);
updateEarliestDataChange(treatment.date);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
scheduleTreatmentChange();
}
@ -603,7 +603,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
getDaoTreatments().update(treatment);
updateEarliestDataChange(treatment.date);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
scheduleTreatmentChange();
}
@ -636,7 +636,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return trList.get(0);
}
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return null;
}
@ -685,7 +685,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
treatments = daoTreatments.query(preparedQuery);
return treatments;
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return new ArrayList<Treatment>();
}
@ -715,7 +715,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
}
createOrUpdate(treatment);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -733,7 +733,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
tempTargets = daoTempTargets.query(preparedQuery);
return tempTargets;
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return new ArrayList<TempTarget>();
}
@ -787,7 +787,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return true;
}
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return false;
}
@ -797,7 +797,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
getDaoTempTargets().delete(tempTarget);
scheduleTemporaryTargetChange();
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -847,7 +847,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
tempTarget.source = Source.NIGHTSCOUT;
createOrUpdate(tempTarget);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -874,7 +874,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return null;
}
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return null;
}
@ -885,7 +885,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
try {
getDaoDanaRHistory().createOrUpdate(record);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -900,7 +900,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
PreparedQuery<DanaRHistoryRecord> preparedQuery = queryBuilder.prepare();
historyList = getDaoDanaRHistory().query(preparedQuery);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
historyList = new ArrayList<>();
}
return historyList;
@ -927,7 +927,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
}
}
} catch (SQLException | JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -1013,7 +1013,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return true;
}
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return false;
}
@ -1023,7 +1023,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
getDaoTemporaryBasal().delete(tempBasal);
updateEarliestDataChange(tempBasal.date);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
scheduleTemporaryBasalChange();
}
@ -1039,7 +1039,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
tempbasals = getDaoTemporaryBasal().query(preparedQuery);
return tempbasals;
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return new ArrayList<TemporaryBasal>();
}
@ -1132,7 +1132,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
createOrUpdate(tempBasal);
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -1161,7 +1161,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return list.get(0);
}
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return null;
}
@ -1242,7 +1242,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return true;
}
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return false;
}
@ -1252,7 +1252,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
getDaoExtendedBolus().delete(extendedBolus);
updateEarliestDataChange(extendedBolus.date);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
scheduleExtendedBolusChange();
}
@ -1268,7 +1268,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
extendedBoluses = getDaoExtendedBolus().query(preparedQuery);
return extendedBoluses;
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return new ArrayList<ExtendedBolus>();
}
@ -1298,7 +1298,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return null;
}
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return null;
}
@ -1349,7 +1349,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
extendedBolus._id = trJson.getString("_id");
createOrUpdate(extendedBolus);
} catch (SQLException | JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -1383,7 +1383,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
try {
getDaoCareportalEvents().createOrUpdate(careportalEvent);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
scheduleCareportalEventChange();
}
@ -1392,7 +1392,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
try {
getDaoCareportalEvents().delete(careportalEvent);
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
scheduleCareportalEventChange();
}
@ -1413,7 +1413,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
else
return null;
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return null;
}
@ -1429,7 +1429,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
careportalEvents = getDaoCareportalEvents().query(preparedQuery);
return careportalEvents;
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return new ArrayList<CareportalEvent>();
}
@ -1453,7 +1453,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
log.debug("CareportalEvent not found database: " + _id);
}
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -1486,7 +1486,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
careportalEvent._id = trJson.getString("_id");
createOrUpdate(careportalEvent);
} catch (SQLException | JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -1521,7 +1521,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
profileSwitches = daoProfileSwitch.query(preparedQuery);
return profileSwitches;
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return new ArrayList<ProfileSwitch>();
}
@ -1575,7 +1575,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return true;
}
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return false;
}
@ -1585,7 +1585,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
getDaoProfileSwitch().delete(profileSwitch);
scheduleProfileSwitchChange();
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -1640,7 +1640,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
profileSwitch.profilePlugin = trJson.getString("profilePlugin");
createOrUpdate(profileSwitch);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -1667,7 +1667,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return null;
}
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return null;
}

View file

@ -77,7 +77,7 @@ public class DbRequest {
if (_id != null) object.put("_id", _id);
if (nsClientID != null) object.put("nsClientID", nsClientID);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return object;
}
@ -96,7 +96,7 @@ public class DbRequest {
if (jsonObject.has("nsClientID"))
result.nsClientID = jsonObject.getString("nsClientID");
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return result;
}

View file

@ -60,7 +60,7 @@ public class ProfileSwitch implements Interval, DataPointWithLabelInterface {
try {
profile = new Profile(new JSONObject(profileJson));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return profile;
}

View file

@ -52,6 +52,7 @@ public interface TreatmentsInterface {
boolean addToHistoryTreatment(DetailedBolusInfo detailedBolusInfo);
TempTarget getTempTargetFromHistory();
TempTarget getTempTargetFromHistory(long time);
Intervals<TempTarget> getTempTargetsFromHistory();

View file

@ -21,6 +21,9 @@ import android.widget.TextView;
import com.crashlytics.android.answers.Answers;
import com.crashlytics.android.answers.CustomEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.DecimalFormat;
import info.nightscout.androidaps.Constants;
@ -31,12 +34,15 @@ import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.db.Source;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.Overview.Notification;
import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
import info.nightscout.utils.DecimalFormatter;
import info.nightscout.utils.PlusMinusEditText;
import info.nightscout.utils.SP;
import info.nightscout.utils.SafeParse;
public class FillDialog extends DialogFragment implements OnClickListener {
private static Logger log = LoggerFactory.getLogger(FillDialog.class);
Button deliverButton;
TextView insulin;
@ -168,11 +174,17 @@ public class FillDialog extends DialogFragment implements OnClickListener {
detailedBolusInfo.isValid = false; // do not count it in IOB (for pump history)
PumpEnactResult result = pump.deliverTreatment(detailedBolusInfo);
if (!result.success) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror));
builder.setMessage(result.comment);
builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null);
builder.show();
try {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror));
builder.setMessage(result.comment);
builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null);
builder.show();
} catch (WindowManager.BadTokenException e) {
// window has been destroyed
Notification notification = new Notification(Notification.BOLUS_DELIVERY_ERROR, MainApp.sResources.getString(R.string.treatmentdeliveryerror), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
}
}
}
});
@ -183,8 +195,8 @@ public class FillDialog extends DialogFragment implements OnClickListener {
builder.setNegativeButton(getString(R.string.cancel), null);
builder.show();
dismiss();
} catch (Exception e) {
e.printStackTrace();
} catch (RuntimeException e) {
log.error("Unhandled exception", e);
}
}

View file

@ -10,6 +10,7 @@ import android.support.v7.app.AlertDialog;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
@ -17,6 +18,9 @@ import android.widget.RadioButton;
import com.crashlytics.android.answers.Answers;
import com.crashlytics.android.answers.CustomEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.DecimalFormat;
import info.nightscout.androidaps.Constants;
@ -24,10 +28,13 @@ import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.Overview.Notification;
import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
import info.nightscout.utils.PlusMinusEditText;
import info.nightscout.utils.SafeParse;
public class NewExtendedBolusDialog extends DialogFragment implements View.OnClickListener {
private static Logger log = LoggerFactory.getLogger(NewExtendedBolusDialog.class);
PlusMinusEditText editInsulin;
PlusMinusEditText editDuration;
@ -99,11 +106,17 @@ public class NewExtendedBolusDialog extends DialogFragment implements View.OnCli
public void run() {
PumpEnactResult result = pump.setExtendedBolus(finalInsulin, finalDurationInMinutes);
if (!result.success) {
try {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(context.getString(R.string.treatmentdeliveryerror));
builder.setMessage(result.comment);
builder.setPositiveButton(context.getString(R.string.ok), null);
builder.show();
} catch (WindowManager.BadTokenException e) {
// window has been destroyed
Notification notification = new Notification(Notification.BOLUS_DELIVERY_ERROR, MainApp.sResources.getString(R.string.treatmentdeliveryerror), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
}
}
}
});
@ -115,7 +128,7 @@ public class NewExtendedBolusDialog extends DialogFragment implements View.OnCli
dismiss();
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
break;
case R.id.cancel:

View file

@ -19,6 +19,9 @@ import android.widget.RelativeLayout;
import com.crashlytics.android.answers.Answers;
import com.crashlytics.android.answers.CustomEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.DecimalFormat;
import info.nightscout.androidaps.MainApp;
@ -32,6 +35,7 @@ import info.nightscout.utils.PlusMinusEditText;
import info.nightscout.utils.SafeParse;
public class NewTempBasalDialog extends DialogFragment implements View.OnClickListener, RadioGroup.OnCheckedChangeListener {
private static Logger log = LoggerFactory.getLogger(NewTempBasalDialog.class);
RadioButton percentRadio;
RadioButton absoluteRadio;
@ -180,7 +184,7 @@ public class NewTempBasalDialog extends DialogFragment implements View.OnClickLi
dismiss();
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
break;
case R.id.cancel:

View file

@ -9,6 +9,7 @@ import android.text.Layout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.squareup.otto.Subscribe;
@ -16,10 +17,13 @@ import com.squareup.otto.Subscribe;
import info.nightscout.androidaps.BuildConfig;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.ProfileStore;
import info.nightscout.androidaps.db.CareportalEvent;
import info.nightscout.androidaps.events.EventCareportalEventChange;
import info.nightscout.androidaps.plugins.Careportal.Dialogs.NewNSTreatmentDialog;
import info.nightscout.androidaps.plugins.Common.SubscriberFragment;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.Overview.OverviewFragment;
public class CareportalFragment extends SubscriberFragment implements View.OnClickListener {
@ -32,6 +36,8 @@ public class CareportalFragment extends SubscriberFragment implements View.OnCli
TextView pbage;
View statsLayout;
LinearLayout butonsLayout;
View noProfileView;
static public CareportalPlugin getPlugin() {
if (careportalPlugin == null) {
@ -95,6 +101,18 @@ public class CareportalFragment extends SubscriberFragment implements View.OnCli
statsLayout = (View) view.findViewById(R.id.careportal_stats);
noProfileView = (View) view.findViewById(R.id.profileview_noprofile);
butonsLayout = (LinearLayout) view.findViewById(R.id.careportal_buttons);
ProfileStore profileStore = ConfigBuilderPlugin.getActiveProfileInterface().getProfile();
if (profileStore == null) {
noProfileView.setVisibility(View.VISIBLE);
butonsLayout.setVisibility(View.GONE);
} else {
noProfileView.setVisibility(View.GONE);
butonsLayout.setVisibility(View.VISIBLE);
}
if (BuildConfig.NSCLIENTOLNY)
statsLayout.setVisibility(View.GONE); // visible on overview

View file

@ -482,7 +482,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
data.put("relative", enteredInsulin * (100 - SafeParse.stringToDouble(editSplit.getText())) / 100 / SafeParse.stringToDouble(editDuration.getText()) * 60);
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return data;
}
@ -577,7 +577,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
ret += "\n";
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return ret;
@ -596,7 +596,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
try {
doProfileSwitch(profileStore, data.getString("profile"), data.getInt("duration"));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
} else if (options.executeTempTarget) {
@ -623,13 +623,13 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
NSUpload.uploadCareportalEntryToNS(data);
Answers.getInstance().logCustom(new CustomEvent("TempTarget"));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
});
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
} else {
NSUpload.uploadCareportalEntryToNS(data);

View file

@ -2,10 +2,8 @@ package info.nightscout.androidaps.plugins.ConfigBuilder;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -22,7 +20,6 @@ import com.crashlytics.android.answers.CustomEvent;
import java.util.ArrayList;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.events.EventConfigBuilderChange;
@ -35,7 +32,7 @@ import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.ProfileInterface;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.interfaces.SensitivityInterface;
import info.nightscout.androidaps.plugins.InsulinFastacting.InsulinFastactingPlugin;
import info.nightscout.androidaps.plugins.Insulin.InsulinFastactingPlugin;
import info.nightscout.androidaps.plugins.ProfileNS.NSProfilePlugin;
import info.nightscout.androidaps.plugins.PumpVirtual.VirtualPumpPlugin;
import info.nightscout.androidaps.plugins.SensitivityOref0.SensitivityOref0Plugin;
@ -58,8 +55,6 @@ public class ConfigBuilderFragment extends Fragment {
TextView pumpLabel;
ListView loopListView;
TextView loopLabel;
ListView treatmentsListView;
TextView treatmentsLabel;
ListView profileListView;
TextView profileLabel;
ListView apsListView;
@ -76,27 +71,16 @@ public class ConfigBuilderFragment extends Fragment {
PluginCustomAdapter bgsourceDataAdapter = null;
PluginCustomAdapter pumpDataAdapter = null;
PluginCustomAdapter loopDataAdapter = null;
PluginCustomAdapter treatmentsDataAdapter = null;
PluginCustomAdapter profileDataAdapter = null;
PluginCustomAdapter apsDataAdapter = null;
PluginCustomAdapter constraintsDataAdapter = null;
PluginCustomAdapter generalDataAdapter = null;
boolean smallWidth;
// TODO: sorting
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.configbuilder_fragment, container, false);
//check screen width
final DisplayMetrics dm = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
int screen_width = dm.widthPixels;
smallWidth = screen_width < Constants.SMALL_WIDTH;
insulinListView = (ListView) view.findViewById(R.id.configbuilder_insulinlistview);
sensitivityListView = (ListView) view.findViewById(R.id.configbuilder_sensitivitylistview);
bgsourceListView = (ListView) view.findViewById(R.id.configbuilder_bgsourcelistview);
@ -105,8 +89,6 @@ public class ConfigBuilderFragment extends Fragment {
pumpLabel = (TextView) view.findViewById(R.id.configbuilder_pumplabel);
loopListView = (ListView) view.findViewById(R.id.configbuilder_looplistview);
loopLabel = (TextView) view.findViewById(R.id.configbuilder_looplabel);
treatmentsListView = (ListView) view.findViewById(R.id.configbuilder_treatmentslistview);
treatmentsLabel = (TextView) view.findViewById(R.id.configbuilder_treatmentslabel);
profileListView = (ListView) view.findViewById(R.id.configbuilder_profilelistview);
profileLabel = (TextView) view.findViewById(R.id.configbuilder_profilelabel);
apsListView = (ListView) view.findViewById(R.id.configbuilder_apslistview);
@ -141,48 +123,43 @@ public class ConfigBuilderFragment extends Fragment {
}
void setViews() {
insulinDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(InsulinInterface.class, PluginBase.INSULIN), PluginBase.INSULIN);
insulinDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(InsulinInterface.class, PluginBase.INSULIN), PluginBase.INSULIN);
insulinListView.setAdapter(insulinDataAdapter);
setListViewHeightBasedOnChildren(insulinListView);
bgsourceDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(BgSourceInterface.class, PluginBase.BGSOURCE), PluginBase.BGSOURCE);
bgsourceDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(BgSourceInterface.class, PluginBase.BGSOURCE), PluginBase.BGSOURCE);
bgsourceListView.setAdapter(bgsourceDataAdapter);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.BGSOURCE).size() == 0)
bgsourceLabel.setVisibility(View.GONE);
setListViewHeightBasedOnChildren(bgsourceListView);
pumpDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.PUMP), PluginBase.PUMP);
pumpDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.PUMP), PluginBase.PUMP);
pumpListView.setAdapter(pumpDataAdapter);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.PUMP).size() == 0)
pumpLabel.setVisibility(View.GONE);
setListViewHeightBasedOnChildren(pumpListView);
loopDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.LOOP), PluginBase.LOOP);
loopDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.LOOP), PluginBase.LOOP);
loopListView.setAdapter(loopDataAdapter);
setListViewHeightBasedOnChildren(loopListView);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.LOOP).size() == 0)
loopLabel.setVisibility(View.GONE);
treatmentsDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.TREATMENT), PluginBase.TREATMENT);
treatmentsListView.setAdapter(treatmentsDataAdapter);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.TREATMENT).size() == 0)
treatmentsLabel.setVisibility(View.GONE);
setListViewHeightBasedOnChildren(treatmentsListView);
profileDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(ProfileInterface.class, PluginBase.PROFILE), PluginBase.PROFILE);
profileDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(ProfileInterface.class, PluginBase.PROFILE), PluginBase.PROFILE);
profileListView.setAdapter(profileDataAdapter);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.PROFILE).size() == 0)
profileLabel.setVisibility(View.GONE);
setListViewHeightBasedOnChildren(profileListView);
apsDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.APS), PluginBase.APS);
apsDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.APS), PluginBase.APS);
apsListView.setAdapter(apsDataAdapter);
setListViewHeightBasedOnChildren(apsListView);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.APS).size() == 0)
apsLabel.setVisibility(View.GONE);
sensivityDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(SensitivityInterface.class, PluginBase.SENSITIVITY), PluginBase.SENSITIVITY);
sensivityDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(SensitivityInterface.class, PluginBase.SENSITIVITY), PluginBase.SENSITIVITY);
sensitivityListView.setAdapter(sensivityDataAdapter);
setListViewHeightBasedOnChildren(sensitivityListView);
constraintsDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(ConstraintsInterface.class, PluginBase.CONSTRAINTS), PluginBase.CONSTRAINTS);
constraintsDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(ConstraintsInterface.class, PluginBase.CONSTRAINTS), PluginBase.CONSTRAINTS);
constraintsListView.setAdapter(constraintsDataAdapter);
setListViewHeightBasedOnChildren(constraintsListView);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.CONSTRAINTS).size() == 0)
constraintsLabel.setVisibility(View.GONE);
generalDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.GENERAL), PluginBase.GENERAL);
generalDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.GENERAL), PluginBase.GENERAL);
generalListView.setAdapter(generalDataAdapter);
setListViewHeightBasedOnChildren(generalListView);
@ -217,7 +194,7 @@ public class ConfigBuilderFragment extends Fragment {
PluginViewHolder holder = null;
if (view == null) {
view = LayoutInflater.from(parent.getContext()).inflate(smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, null);
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.configbuilder_simpleitem, null);
holder = new PluginViewHolder();
holder.name = (TextView) view.findViewById(R.id.configbuilder_simpleitem_name);
@ -307,6 +284,10 @@ public class ConfigBuilderFragment extends Fragment {
}
}
if (plugin.isEnabled(type)) {
view.setBackgroundColor(MainApp.sResources.getColor(R.color.configBuilderSelectedBackground));
}
return view;
}

View file

@ -185,7 +185,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
if (SP.contains(settingVisible))
p.setFragmentVisible(type, SP.getBoolean(settingVisible, true) && SP.getBoolean(settingEnabled, true));
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
}
@ -893,6 +893,12 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
return newRecordCreated;
}
@Override
@Nullable
public TempTarget getTempTargetFromHistory() {
return activeTreatments.getTempTargetFromHistory(System.currentTimeMillis());
}
@Override
@Nullable
public TempTarget getTempTargetFromHistory(long time) {
@ -992,7 +998,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
MainApp.bus().post(new EventNewNotification(notarget));
return new Profile(new JSONObject("{\"dia\":\"3\",\"carbratio\":[{\"time\":\"00:00\",\"value\":\"20\"}],\"carbs_hr\":\"20\",\"delay\":\"20\",\"sens\":[{\"time\":\"00:00\",\"value\":\"20\"}],\"timezone\":\"UTC\",\"basal\":[{\"time\":\"00:00\",\"value\":\"0.1\"}],\"target_low\":[{\"time\":\"00:00\",\"value\":\"6\"}],\"target_high\":[{\"time\":\"00:00\",\"value\":\"8\"}],\"startDate\":\"1970-01-01T00:00:00.000Z\",\"units\":\"mmol\"}}"));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return null;
}

View file

@ -32,10 +32,20 @@ public class DetailedBolusInfoStorage {
log.debug("Existing info: " + new Date(infoTime).toLocaleString());
if (bolustime > infoTime - 60 * 1000 && bolustime < infoTime + 60 * 1000) {
found = store.get(i);
store.remove(i);
break;
}
}
return found;
}
public static void remove(long bolustime) {
for (int i = 0; i < store.size(); i++) {
long infoTime = store.get(i).date;
if (bolustime > infoTime - 60 * 1000 && bolustime < infoTime + 60 * 1000) {
log.debug("Removing info: " + new Date(infoTime).toLocaleString());
store.remove(i);
break;
}
}
}
}

View file

@ -227,7 +227,7 @@ public class ObjectivesPlugin implements PluginBase, ConstraintsInterface {
o.started = new Date(SP.getLong("Objectives" + num + "started", 0L));
o.accomplished = new Date(SP.getLong("Objectives" + num + "accomplished", 0L));
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
bgIsAvailableInNS = SP.getBoolean("Objectives" + "bgIsAvailableInNS", false);
@ -235,7 +235,7 @@ public class ObjectivesPlugin implements PluginBase, ConstraintsInterface {
try {
manualEnacts = SP.getInt("Objectives" + "manualEnacts", 0);
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
if (Config.logPrefsChange)
log.debug("Objectives loaded");

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.plugins.InsulinFastacting;
package info.nightscout.androidaps.plugins.Insulin;
import android.content.Context;
import android.graphics.Color;

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.plugins.InsulinFastacting;
package info.nightscout.androidaps.plugins.Insulin;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
@ -17,6 +17,14 @@ public class InsulinFastactingPlugin implements PluginBase, InsulinInterface {
private static boolean fragmentEnabled = true;
private static boolean fragmentVisible = false;
private static InsulinFastactingPlugin plugin = null;
public static InsulinFastactingPlugin getPlugin() {
if (plugin == null)
plugin = new InsulinFastactingPlugin();
return plugin;
}
@Override
public int getType() {
return INSULIN;
@ -24,7 +32,7 @@ public class InsulinFastactingPlugin implements PluginBase, InsulinInterface {
@Override
public String getFragmentClass() {
return InsulinFastactingFragment.class.getName();
return InsulinFragment.class.getName();
}
@Override

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.plugins.InsulinFastactingProlonged;
package info.nightscout.androidaps.plugins.Insulin;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
@ -17,6 +17,14 @@ public class InsulinFastactingProlongedPlugin implements PluginBase, InsulinInte
private static boolean fragmentEnabled = false;
private static boolean fragmentVisible = false;
private static InsulinFastactingProlongedPlugin plugin = null;
public static InsulinFastactingProlongedPlugin getPlugin() {
if (plugin == null)
plugin = new InsulinFastactingProlongedPlugin();
return plugin;
}
@Override
public int getType() {
return INSULIN;
@ -24,7 +32,7 @@ public class InsulinFastactingProlongedPlugin implements PluginBase, InsulinInte
@Override
public String getFragmentClass() {
return InsulinFastactingProlongedFragment.class.getName();
return InsulinFragment.class.getName();
}
@Override

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.plugins.InsulinFastacting;
package info.nightscout.androidaps.plugins.Insulin;
import android.os.Bundle;
import android.support.v4.app.Fragment;
@ -14,13 +14,7 @@ import info.nightscout.androidaps.R;
* Created by mike on 17.04.2017.
*/
public class InsulinFastactingFragment extends Fragment {
static InsulinFastactingPlugin insulinFastactingPlugin = new InsulinFastactingPlugin();
static public InsulinFastactingPlugin getPlugin() {
return insulinFastactingPlugin;
}
public class InsulinFragment extends Fragment {
TextView insulinName;
TextView insulinComment;
TextView insulinDia;
@ -47,10 +41,10 @@ public class InsulinFastactingFragment extends Fragment {
}
private void updateGUI() {
insulinName.setText(insulinFastactingPlugin.getFriendlyName());
insulinComment.setText(insulinFastactingPlugin.getComment());
insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + Double.toString(insulinFastactingPlugin.getDia()) + "h");
insulinGraph.show(insulinFastactingPlugin);
insulinName.setText(MainApp.getConfigBuilder().getActiveInsulin().getFriendlyName());
insulinComment.setText(MainApp.getConfigBuilder().getActiveInsulin().getComment());
insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + Double.toString(MainApp.getConfigBuilder().getActiveInsulin().getDia()) + "h");
insulinGraph.show(MainApp.getConfigBuilder().getActiveInsulin());
}
}

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.plugins.InsulinOrefCurves;
package info.nightscout.androidaps.plugins.Insulin;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.plugins.InsulinOrefCurves;
package info.nightscout.androidaps.plugins.Insulin;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
@ -13,6 +13,14 @@ public class InsulinOrefFreePeakPlugin extends InsulinOrefBasePlugin {
private static boolean fragmentEnabled = false;
private static boolean fragmentVisible = false;
private static InsulinOrefFreePeakPlugin plugin = null;
public static InsulinOrefFreePeakPlugin getPlugin() {
if (plugin == null)
plugin = new InsulinOrefFreePeakPlugin();
return plugin;
}
public static final int DEFAULT_PEAK = 75;
@Override
@ -27,7 +35,7 @@ public class InsulinOrefFreePeakPlugin extends InsulinOrefBasePlugin {
@Override
public String getFragmentClass() {
return InsulinOrefFreePeakFragment.class.getName();
return InsulinFragment.class.getName();
}
@Override

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.plugins.InsulinOrefCurves;
package info.nightscout.androidaps.plugins.Insulin;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
@ -12,6 +12,14 @@ public class InsulinOrefRapidActingPlugin extends InsulinOrefBasePlugin {
private static boolean fragmentEnabled = false;
private static boolean fragmentVisible = false;
private static InsulinOrefRapidActingPlugin plugin = null;
public static InsulinOrefRapidActingPlugin getPlugin() {
if (plugin == null)
plugin = new InsulinOrefRapidActingPlugin();
return plugin;
}
public static final int PEAK = 75;
@Override
@ -26,7 +34,7 @@ public class InsulinOrefRapidActingPlugin extends InsulinOrefBasePlugin {
@Override
public String getFragmentClass() {
return InsulinOrefRapidActingFragment.class.getName();
return InsulinFragment.class.getName();
}
@Override

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.plugins.InsulinOrefCurves;
package info.nightscout.androidaps.plugins.Insulin;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
@ -12,6 +12,14 @@ public class InsulinOrefUltraRapidActingPlugin extends InsulinOrefBasePlugin {
private static boolean fragmentEnabled = false;
private static boolean fragmentVisible = false;
private static InsulinOrefUltraRapidActingPlugin plugin = null;
public static InsulinOrefUltraRapidActingPlugin getPlugin() {
if (plugin == null)
plugin = new InsulinOrefUltraRapidActingPlugin();
return plugin;
}
public static final int PEAK = 55;
@Override
@ -26,7 +34,7 @@ public class InsulinOrefUltraRapidActingPlugin extends InsulinOrefBasePlugin {
@Override
public String getFragmentClass() {
return InsulinOrefUltraRapidActingFragment.class.getName();
return InsulinFragment.class.getName();
}
@Override

View file

@ -1,57 +0,0 @@
package info.nightscout.androidaps.plugins.InsulinFastactingProlonged;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.plugins.InsulinFastacting.ActivityGraph;
/**
* Created by mike on 17.04.2017.
*/
public class InsulinFastactingProlongedFragment extends Fragment {
static InsulinFastactingProlongedPlugin insulinFastactingProlongedPlugin = new InsulinFastactingProlongedPlugin();
static public InsulinFastactingProlongedPlugin getPlugin() {
return insulinFastactingProlongedPlugin;
}
TextView insulinName;
TextView insulinComment;
TextView insulinDia;
ActivityGraph insulinGraph;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.insulin_fragment, container, false);
insulinName = (TextView) view.findViewById(R.id.insulin_name);
insulinComment = (TextView) view.findViewById(R.id.insulin_comment);
insulinDia = (TextView) view.findViewById(R.id.insulin_dia);
insulinGraph = (ActivityGraph) view.findViewById(R.id.insuling_graph);
updateGUI();
return view;
}
@Override
public void onResume() {
super.onResume();
updateGUI();
}
private void updateGUI() {
insulinName.setText(insulinFastactingProlongedPlugin.getFriendlyName());
insulinComment.setText(insulinFastactingProlongedPlugin.getComment());
insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + Double.toString(insulinFastactingProlongedPlugin.getDia()) + "h");
insulinGraph.show(insulinFastactingProlongedPlugin);
}
}

View file

@ -1,58 +0,0 @@
package info.nightscout.androidaps.plugins.InsulinOrefCurves;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.plugins.InsulinFastacting.ActivityGraph;
/**
* Created by adrian on 14/08/17.
*/
public class InsulinOrefFreePeakFragment extends Fragment {
static InsulinOrefFreePeakPlugin insulinPlugin = new InsulinOrefFreePeakPlugin();
static public InsulinOrefFreePeakPlugin getPlugin() {
return insulinPlugin;
}
TextView insulinName;
TextView insulinComment;
TextView insulinDia;
ActivityGraph insulinGraph;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.insulin_fragment, container, false);
insulinName = (TextView) view.findViewById(R.id.insulin_name);
insulinComment = (TextView) view.findViewById(R.id.insulin_comment);
insulinDia = (TextView) view.findViewById(R.id.insulin_dia);
insulinGraph = (ActivityGraph) view.findViewById(R.id.insuling_graph);
updateGUI();
return view;
}
@Override
public void onResume() {
super.onResume();
updateGUI();
}
private void updateGUI() {
insulinName.setText(insulinPlugin.getFriendlyName());
insulinComment.setText(insulinPlugin.getComment());
insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + Double.toString(insulinPlugin.getDia()) + "h");
insulinGraph.show(insulinPlugin);
}
}

View file

@ -1,57 +0,0 @@
package info.nightscout.androidaps.plugins.InsulinOrefCurves;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.plugins.InsulinFastacting.ActivityGraph;
/**
* Created by adrian on 14/08/17.
*/
public class InsulinOrefRapidActingFragment extends Fragment {
static InsulinOrefRapidActingPlugin insulinPlugin = new InsulinOrefRapidActingPlugin();
static public InsulinOrefRapidActingPlugin getPlugin() {
return insulinPlugin;
}
TextView insulinName;
TextView insulinComment;
TextView insulinDia;
ActivityGraph insulinGraph;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.insulin_fragment, container, false);
insulinName = (TextView) view.findViewById(R.id.insulin_name);
insulinComment = (TextView) view.findViewById(R.id.insulin_comment);
insulinDia = (TextView) view.findViewById(R.id.insulin_dia);
insulinGraph = (ActivityGraph) view.findViewById(R.id.insuling_graph);
updateGUI();
return view;
}
@Override
public void onResume() {
super.onResume();
updateGUI();
}
private void updateGUI() {
insulinName.setText(insulinPlugin.getFriendlyName());
insulinComment.setText(insulinPlugin.getComment());
insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + Double.toString(insulinPlugin.getDia()) + "h");
insulinGraph.show(insulinPlugin);
}
}

View file

@ -1,58 +0,0 @@
package info.nightscout.androidaps.plugins.InsulinOrefCurves;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.plugins.InsulinFastacting.ActivityGraph;
/**
* Created by adrian on 14/08/17.
*/
public class InsulinOrefUltraRapidActingFragment extends Fragment {
static InsulinOrefUltraRapidActingPlugin insulinPlugin = new InsulinOrefUltraRapidActingPlugin();
static public InsulinOrefUltraRapidActingPlugin getPlugin() {
return insulinPlugin;
}
TextView insulinName;
TextView insulinComment;
TextView insulinDia;
ActivityGraph insulinGraph;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.insulin_fragment, container, false);
insulinName = (TextView) view.findViewById(R.id.insulin_name);
insulinComment = (TextView) view.findViewById(R.id.insulin_comment);
insulinDia = (TextView) view.findViewById(R.id.insulin_dia);
insulinGraph = (ActivityGraph) view.findViewById(R.id.insuling_graph);
updateGUI();
return view;
}
@Override
public void onResume() {
super.onResume();
updateGUI();
}
private void updateGUI() {
insulinName.setText(insulinPlugin.getFriendlyName());
insulinComment.setText(insulinPlugin.getComment());
insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + Double.toString(insulinPlugin.getDia()) + "h");
insulinGraph.show(insulinPlugin);
}
}

View file

@ -2,11 +2,14 @@ package info.nightscout.androidaps.plugins.IobCobCalculator;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Created by mike on 06.01.2017.
*/
public class AutosensResult {
private static Logger log = LoggerFactory.getLogger(AutosensResult.class);
//default values to show when autosens algorithm is not called
public double ratio = 1d;
@ -24,7 +27,7 @@ public class AutosensResult {
ret.put("sensResult", sensResult);
ret.put("ratio", ratio);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return ret;
}

View file

@ -7,6 +7,8 @@ import android.text.Spanned;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
@ -17,6 +19,8 @@ import info.nightscout.utils.DecimalFormatter;
* Created by mike on 09.06.2016.
*/
public class APSResult {
private static Logger log = LoggerFactory.getLogger(APSResult.class);
public String reason;
public double rate;
public int duration;
@ -72,7 +76,7 @@ public class APSResult {
json.put("reason", reason);
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return json;
}

View file

@ -397,7 +397,7 @@ public class DeviceStatus {
if (uploaderBattery != 0) record.put("uploaderBattery", uploaderBattery);
if (created_at != null) record.put("created_at" , created_at);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return record;
}

View file

@ -2,6 +2,7 @@ package info.nightscout.androidaps.plugins.NSClientInternal;
import android.content.Context;
import android.content.Intent;
import android.os.SystemClock;
import com.j256.ormlite.dao.CloseableIterator;
@ -35,10 +36,7 @@ public class UploadQueue {
if (NSClientService.handler == null) {
Context context = MainApp.instance();
context.startService(new Intent(context, NSClientService.class));
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
}
SystemClock.sleep(2000);
}
}
@ -90,7 +88,7 @@ public class UploadQueue {
log.debug("Removed item from UploadQueue. " + UploadQueue.status());
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
});
@ -126,7 +124,7 @@ public class UploadQueue {
iterator.close();
}
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return result;
}

View file

@ -49,7 +49,7 @@ public class NSAddAck implements Ack {
}
return;
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
}

View file

@ -1,7 +1,11 @@
package info.nightscout.androidaps.plugins.NSClientInternal.acks;
import android.os.SystemClock;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import io.socket.client.Ack;
@ -9,6 +13,8 @@ import io.socket.client.Ack;
* Created by mike on 29.12.2015.
*/
public class NSPingAck implements Ack {
private static Logger log = LoggerFactory.getLogger(NSPingAck.class);
public long mills = 0;
public boolean received = false;
public boolean auth_received = false;
@ -27,7 +33,7 @@ public class NSPingAck implements Ack {
write = authorization.optBoolean("write");
write_treatment = authorization.optBoolean("write_treatment");
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
received = true;

View file

@ -32,7 +32,7 @@ public class BroadcastStatus {
bundle.putString("nsclientversionname", MainApp.instance().getPackageManager().getPackageInfo(MainApp.instance().getPackageName(), 0).versionName);
bundle.putInt("nsclientversioncode", MainApp.instance().getPackageManager().getPackageInfo(MainApp.instance().getPackageName(), 0).versionCode);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
bundle.putString("nightscoutversionname", NSClientService.nightscoutVersionName);
bundle.putInt("nightscoutversioncode", NSClientService.nightscoutVersionCode);
@ -49,7 +49,7 @@ public class BroadcastStatus {
bundle.putString("nsclientversionname", MainApp.instance().getPackageManager().getPackageInfo(MainApp.instance().getPackageName(), 0).versionName);
bundle.putInt("nsclientversioncode", MainApp.instance().getPackageManager().getPackageInfo(MainApp.instance().getPackageName(), 0).versionCode);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
bundle.putString("nightscoutversionname", NSClientService.nightscoutVersionName);
bundle.putInt("nightscoutversioncode", NSClientService.nightscoutVersionCode);

View file

@ -183,7 +183,7 @@ public class BroadcastTreatment {
ret.add(newarr);
}
newarr = new JSONArray();
count = 200;
count = 50;
}
newarr.put(array.get(i));
--count;
@ -192,7 +192,7 @@ public class BroadcastTreatment {
ret.add(newarr);
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
ret = new ArrayList<>();
ret.add(array);
}

View file

@ -2,12 +2,16 @@ package info.nightscout.androidaps.plugins.NSClientInternal.data;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Created by mike on 11.06.2017.
*/
public class NSAlarm {
private static Logger log = LoggerFactory.getLogger(NSAlarm.class);
JSONObject data;
public NSAlarm(JSONObject data) {
@ -20,7 +24,7 @@ public class NSAlarm {
try {
retval = data.getInt("level");
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return retval;
@ -32,7 +36,7 @@ public class NSAlarm {
try {
retval = data.getString("group");
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return retval;
@ -44,7 +48,7 @@ public class NSAlarm {
try {
retval = data.getString("title");
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return retval;
@ -56,7 +60,7 @@ public class NSAlarm {
try {
retval = data.getString("message");
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return retval;

View file

@ -19,7 +19,7 @@ public class NSCal {
intercept = json.getDouble("intercept");
scale = json.getDouble("scale");
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
log.debug("Data: " + json.toString());
}
}

View file

@ -5,6 +5,8 @@ import android.text.Spanned;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashMap;
import java.util.Iterator;
@ -70,6 +72,7 @@ import info.nightscout.utils.SP;
}
*/
public class NSDeviceStatus {
private static Logger log = LoggerFactory.getLogger(NSDeviceStatus.class);
private static NSDeviceStatus instance = null;
@ -102,7 +105,7 @@ public class NSDeviceStatus {
}
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return "";
}
@ -237,7 +240,7 @@ public class NSDeviceStatus {
deviceStatusPumpData.extended = Html.fromHtml(exteneded.toString());
}
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -278,7 +281,7 @@ public class NSDeviceStatus {
deviceStatusOpenAPSData.clockEnacted = clock;
}
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -315,7 +318,7 @@ public class NSDeviceStatus {
string.append("<b>").append(DateUtil.minAgo(deviceStatusOpenAPSData.clockSuggested)).append("</b> ").append(deviceStatusOpenAPSData.suggested.getString("reason")).append("<br>");
return Html.fromHtml(string.toString());
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return Html.fromHtml("");
}
@ -353,7 +356,7 @@ public class NSDeviceStatus {
uploaders.put(device, uploader);
}
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}

View file

@ -17,7 +17,7 @@ public class NSMbg {
mbg = json.getDouble("mgdl");
this.json = json.toString();
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
log.debug("Data: " + json.toString());
}
}

View file

@ -4,6 +4,8 @@ import android.support.annotation.Nullable;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Date;
import java.util.Objects;
@ -99,6 +101,8 @@ import java.util.Objects;
}
*/
public class NSSettingsStatus {
private static Logger log = LoggerFactory.getLogger(NSSettingsStatus.class);
private static NSSettingsStatus instance = null;
public static NSSettingsStatus getInstance() {
@ -160,7 +164,7 @@ public class NSSettingsStatus {
return new JSONObject(extended);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return null;
@ -195,7 +199,7 @@ public class NSSettingsStatus {
}
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return null;
}
@ -207,7 +211,7 @@ public class NSSettingsStatus {
try {
ret = data.getString(key);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return ret;
@ -219,7 +223,7 @@ public class NSSettingsStatus {
try {
ret = data.getInt(key);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return ret;
@ -231,7 +235,7 @@ public class NSSettingsStatus {
try {
ret = data.getLong(key);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return ret;
@ -243,7 +247,7 @@ public class NSSettingsStatus {
try {
ret = new Date(data.getString(key));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return ret;
@ -255,7 +259,7 @@ public class NSSettingsStatus {
try {
ret = data.getBoolean(key);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return ret;
@ -301,7 +305,7 @@ public class NSSettingsStatus {
return pump != null && pump.has(setting) ? pump.getDouble(setting) : 30;
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return 0d;
}
@ -317,7 +321,7 @@ public class NSSettingsStatus {
return pump;
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return null;
}
@ -329,7 +333,7 @@ public class NSSettingsStatus {
return pump.getBoolean("enableAlerts");
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return false;
}
@ -341,7 +345,7 @@ public class NSSettingsStatus {
return pump.getString("fields");
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return "";
}
@ -353,7 +357,7 @@ public class NSSettingsStatus {
return pump.getBoolean("enableAlerts");
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return false;
}

View file

@ -2,12 +2,16 @@ package info.nightscout.androidaps.plugins.NSClientInternal.data;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* {"mgdl":105,"mills":1455136282375,"device":"xDrip-BluetoothWixel","direction":"Flat","filtered":98272,"unfiltered":98272,"noise":1,"rssi":100}
*/
public class NSSgv {
private static Logger log = LoggerFactory.getLogger(NSSgv.class);
private JSONObject data;
public NSSgv(JSONObject obj) {
@ -20,7 +24,7 @@ public class NSSgv {
try {
ret = data.getString(key);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return ret;
@ -32,7 +36,7 @@ public class NSSgv {
try {
ret = data.getInt(key);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return ret;
@ -44,7 +48,7 @@ public class NSSgv {
try {
ret = data.getLong(key);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return ret;

View file

@ -2,10 +2,14 @@ package info.nightscout.androidaps.plugins.NSClientInternal.data;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Date;
public class NSTreatment {
private static Logger log = LoggerFactory.getLogger(NSTreatment.class);
private JSONObject data;
private String action = null; // "update", "remove" or null (add)
@ -21,7 +25,7 @@ public class NSTreatment {
try {
ret = data.getString(key);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return ret;
@ -33,7 +37,7 @@ public class NSTreatment {
try {
ret = data.getDouble(key);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return ret;
@ -45,7 +49,7 @@ public class NSTreatment {
try {
ret = data.getInt(key);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return ret;
@ -57,7 +61,7 @@ public class NSTreatment {
try {
ret = data.getLong(key);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return ret;
@ -69,7 +73,7 @@ public class NSTreatment {
try {
ret = new Date(data.getString(key));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return ret;

View file

@ -50,9 +50,18 @@ public class DBAccessReceiver extends BroadcastReceiver {
String _id = null;
JSONObject data = null;
String action = bundles.getString("action");
try { collection = bundles.getString("collection"); } catch (Exception e) {}
try { _id = bundles.getString("_id"); } catch (Exception e) {}
try { data = new JSONObject(bundles.getString("data")); } catch (Exception e) {}
try {
collection = bundles.getString("collection");
} catch (Exception e) {
}
try {
_id = bundles.getString("_id");
} catch (Exception e) {
}
try {
data = new JSONObject(bundles.getString("data"));
} catch (Exception e) {
}
if (data == null && !action.equals("dbRemove") || _id == null && action.equals("dbRemove")) {
log.debug("DBACCESS no data inside record");
@ -67,7 +76,7 @@ public class DBAccessReceiver extends BroadcastReceiver {
try {
data.put("NSCLIENT_ID", nsclientid);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
if (!isAllowedCollection(collection)) {

View file

@ -258,7 +258,7 @@ public class NSClientService extends Service {
authMessage.put("from", latestDateInReceivedData); // send data newer than
authMessage.put("secret", nsAPIhashCode);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
return;
}
MainApp.bus().post(new EventNSClientNewLog("AUTH", "requesting auth"));
@ -326,7 +326,7 @@ public class NSClientService extends Service {
try {
MainApp.bus().post(new EventNSClientNewLog("ANNOUNCEMENT", data.has("message") ? data.getString("message") : "received"));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
BroadcastAnnouncement.handleAnnouncement(data, getApplicationContext());
log.debug(data.toString());
@ -561,7 +561,7 @@ public class NSClientService extends Service {
}
MainApp.bus().post(new EventNSClientNewLog("LAST", DateUtil.dateAndTimeString(latestDateInReceivedData)));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
//MainApp.bus().post(new EventNSClientNewLog("NSCLIENT", "onDataUpdate end");
} finally {
@ -583,7 +583,7 @@ public class NSClientService extends Service {
mSocket.emit("dbUpdate", message, ack);
MainApp.bus().post(new EventNSClientNewLog("DBUPDATE " + dbr.collection, "Sent " + dbr._id));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -597,7 +597,7 @@ public class NSClientService extends Service {
mSocket.emit("dbUpdateUnset", message, ack);
MainApp.bus().post(new EventNSClientNewLog("DBUPDATEUNSET " + dbr.collection, "Sent " + dbr._id));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -610,7 +610,7 @@ public class NSClientService extends Service {
mSocket.emit("dbRemove", message, ack);
MainApp.bus().post(new EventNSClientNewLog("DBREMOVE " + dbr.collection, "Sent " + dbr._id));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -633,7 +633,7 @@ public class NSClientService extends Service {
mSocket.emit("dbAdd", message, ack);
MainApp.bus().post(new EventNSClientNewLog("DBADD " + dbr.collection, "Sent " + dbr.nsClientID));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -684,10 +684,11 @@ public class NSClientService extends Service {
MainApp.bus().post(new EventNSClientNewLog("QUEUE", "Resend started: " + reason));
CloseableIterator<DbRequest> iterator = null;
int maxcount = 30;
try {
iterator = MainApp.getDbHelper().getDbRequestInterator();
try {
while (iterator.hasNext()) {
while (iterator.hasNext() && maxcount > 0) {
DbRequest dbr = iterator.next();
if (dbr.action.equals("dbAdd")) {
NSAddAck addAck = new NSAddAck();
@ -702,12 +703,13 @@ public class NSClientService extends Service {
NSUpdateAck updateUnsetAck = new NSUpdateAck(dbr.action, dbr._id);
dbUpdateUnset(dbr, updateUnsetAck);
}
maxcount--;
}
} finally {
iterator.close();
}
} catch (SQLException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
MainApp.bus().post(new EventNSClientNewLog("QUEUE", "Resend ended: " + reason));

View file

@ -14,6 +14,7 @@ import java.io.IOException;
import java.util.Date;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.data.GlucoseStatus;
import info.nightscout.androidaps.data.IobTotal;
@ -102,7 +103,7 @@ public class DetermineBasalAdapterAMAJS {
try {
result = new DetermineBasalResultAMA(v8ObjectReuslt, new JSONObject(ret));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return result;
@ -224,6 +225,11 @@ public class DetermineBasalAdapterAMAJS {
mProfile.add("temptargetSet", tempTargetSet);
mProfile.add("autosens_adjust_targets", SP.getBoolean("openapsama_autosens_adjusttargets", true));
mProfile.add("min_5m_carbimpact", SP.getDouble("openapsama_min_5m_carbimpact", 3d));
if (units.equals(Constants.MMOL)) {
mProfile.add("out_units", "mmol/L");
}
mV8rt.add(PARAM_profile, mProfile);
mCurrentTemp = new V8Object(mV8rt);

View file

@ -5,6 +5,8 @@ import com.eclipsesource.v8.V8Object;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.Date;
@ -15,6 +17,8 @@ import info.nightscout.androidaps.plugins.Loop.APSResult;
import info.nightscout.androidaps.data.IobTotal;
public class DetermineBasalResultAMA extends APSResult {
private static Logger log = LoggerFactory.getLogger(DetermineBasalResultAMA.class);
public Date date;
public JSONObject json = new JSONObject();
public double eventualBG;
@ -69,7 +73,7 @@ public class DetermineBasalResultAMA extends APSResult {
try {
newResult.json = new JSONObject(json.toString());
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
newResult.eventualBG = eventualBG;
newResult.snoozeBG = snoozeBG;
@ -83,7 +87,7 @@ public class DetermineBasalResultAMA extends APSResult {
JSONObject ret = new JSONObject(this.json.toString());
return ret;
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return null;
}
@ -126,7 +130,7 @@ public class DetermineBasalResultAMA extends APSResult {
}
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return array;
}
@ -151,7 +155,7 @@ public class DetermineBasalResultAMA extends APSResult {
}
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return latest;

View file

@ -112,7 +112,7 @@ public class OpenAPSAMAFragment extends SubscriberFragment implements View.OnCli
JSONArray iobArray = new JSONArray(determineBasalAdapterAMAJS.getIobDataParam());
iobDataView.setText(String.format(MainApp.sResources.getString(R.string.array_of_elements), iobArray.length()) + "\n" + JSONFormatter.format(iobArray.getString(0)));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
iobDataView.setText("JSONException");
}
profileView.setText(JSONFormatter.format(determineBasalAdapterAMAJS.getProfileParam()));

View file

@ -160,8 +160,8 @@ public class OpenAPSAMAPlugin implements PluginBase, APSInterface {
double maxIob = SP.getDouble("openapsma_max_iob", 1.5d);
double maxBasal = SP.getDouble("openapsma_max_basal", 1d);
double minBg = Profile.toMgdl(profile.getTargetLow(), units);
double maxBg = Profile.toMgdl(profile.getTargetHigh(), units);
double minBg = Profile.toMgdl(profile.getTargetLow(), units);
double maxBg = Profile.toMgdl(profile.getTargetHigh(), units);
double targetBg = (minBg + maxBg) / 2;
minBg = Round.roundTo(minBg, 0.1d);
@ -242,7 +242,7 @@ public class OpenAPSAMAPlugin implements PluginBase, APSInterface {
try {
determineBasalResultAMA.json.put("timestamp", DateUtil.toISOString(now));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
lastDetermineBasalAdapterAMAJS = determineBasalAdapterAMAJS;

View file

@ -13,6 +13,7 @@ import org.slf4j.LoggerFactory;
import java.io.IOException;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.data.GlucoseStatus;
import info.nightscout.androidaps.data.IobTotal;
@ -134,7 +135,7 @@ public class DetermineBasalAdapterMAJS {
try {
result = new DetermineBasalResultMA(v8ObjectReuslt, new JSONObject(ret));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
storedGlucoseStatus = mV8rt.executeStringScript("JSON.stringify(" + PARAM_glucoseStatus + ");");
@ -242,6 +243,11 @@ public class DetermineBasalAdapterMAJS {
mProfile.add("sens", Profile.toMgdl(profile.getIsf().doubleValue(), units));
mProfile.add("current_basal", pump.getBaseBasalRate());
if (units.equals(Constants.MMOL)) {
mProfile.add("out_units", "mmol/L");
}
mCurrentTemp.add("duration", MainApp.getConfigBuilder().getTempBasalRemainingMinutesFromHistory());
mCurrentTemp.add("rate", MainApp.getConfigBuilder().getTempBasalAbsoluteRateHistory());

View file

@ -7,11 +7,14 @@ import com.eclipsesource.v8.V8Object;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.plugins.Loop.APSResult;
public class DetermineBasalResultMA extends APSResult {
private static Logger log = LoggerFactory.getLogger(DetermineBasalResultMA.class);
public JSONObject json = new JSONObject();
public double eventualBG;
@ -70,7 +73,7 @@ public class DetermineBasalResultMA extends APSResult {
try {
newResult.json = new JSONObject(json.toString());
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
newResult.eventualBG = eventualBG;
newResult.snoozeBG = snoozeBG;
@ -84,7 +87,7 @@ public class DetermineBasalResultMA extends APSResult {
JSONObject ret = new JSONObject(this.json.toString());
return ret;
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return null;
}

View file

@ -160,8 +160,8 @@ public class OpenAPSMAPlugin implements PluginBase, APSInterface {
double maxIob = SP.getDouble("openapsma_max_iob", 1.5d);
double maxBasal = SafeParse.stringToDouble(SP.getString("openapsma_max_basal", "1"));
double minBg = Profile.toMgdl(profile.getTargetLow(), units);
double maxBg = Profile.toMgdl(profile.getTargetHigh(), units);
double minBg = Profile.toMgdl(profile.getTargetLow(), units);
double maxBg = Profile.toMgdl(profile.getTargetHigh(), units);
double targetBg = (minBg + maxBg) / 2;
minBg = Round.roundTo(minBg, 0.1d);
@ -196,7 +196,8 @@ public class OpenAPSMAPlugin implements PluginBase, APSInterface {
if (!checkOnlyHardLimits(profile.getDia(), "dia", 2, 7)) return;
if (!checkOnlyHardLimits(profile.getIc(), "carbratio", 2, 100)) return;
if (!checkOnlyHardLimits(Profile.toMgdl(profile.getIsf().doubleValue(), units), "sens", 2, 900)) return;
if (!checkOnlyHardLimits(Profile.toMgdl(profile.getIsf().doubleValue(), units), "sens", 2, 900))
return;
if (!checkOnlyHardLimits(profile.getMaxDailyBasal(), "max_daily_basal", 0.1, 10)) return;
if (!checkOnlyHardLimits(pump.getBaseBasalRate(), "current_basal", 0.01, 5)) return;
@ -224,7 +225,7 @@ public class OpenAPSMAPlugin implements PluginBase, APSInterface {
try {
determineBasalResultMA.json.put("timestamp", DateUtil.toISOString(now));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
lastDetermineBasalAdapterMAJS = determineBasalAdapterMAJS;

View file

@ -3,6 +3,7 @@ package info.nightscout.androidaps.plugins.Overview.Dialogs;
import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
@ -22,7 +23,6 @@ import info.nightscout.androidaps.events.EventPumpStatusChanged;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.Overview.events.EventDismissBolusprogressIfRunning;
import info.nightscout.androidaps.plugins.Overview.events.EventOverviewBolusProgress;
import info.nightscout.androidaps.plugins.PumpDanaR.events.EventDanaRBolusStart;
public class BolusProgressDialog extends DialogFragment implements View.OnClickListener {
private static Logger log = LoggerFactory.getLogger(BolusProgressDialog.class);
@ -36,8 +36,6 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL
public static boolean bolusEnded = false;
public static boolean running = true;
boolean started = false;
public BolusProgressDialog() {
super();
}
@ -123,11 +121,6 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL
}
}
@Subscribe
public void onStatusEvent(final EventDanaRBolusStart ev) {
started = true;
}
@Subscribe
public void onStatusEvent(final EventDismissBolusprogressIfRunning ev) {
if(BolusProgressDialog.running){
@ -156,11 +149,7 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
SystemClock.sleep(5000);
BolusProgressDialog.bolusEnded = true;
Activity activity = getActivity();
if (activity != null) {
@ -171,7 +160,7 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL
try {
dismiss();
} catch (Exception e) {
e.printStackTrace(); // TODO: do this better way
log.error("Unhandled exception", e);
}
}
});

View file

@ -14,6 +14,8 @@ import android.widget.EditText;
import android.widget.Spinner;
import org.json.JSONException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@ -27,6 +29,7 @@ import info.nightscout.utils.DateUtil;
import info.nightscout.utils.SafeParse;
public class EditQuickWizardDialog extends DialogFragment implements View.OnClickListener {
private static Logger log = LoggerFactory.getLogger(EditQuickWizardDialog.class);
QuickWizard.QuickWizardEntry entry = new QuickWizard().newEmptyItem();
QuickWizard quickWizard = MainApp.getSpecificPlugin(OverviewPlugin.class).quickWizard;
@ -104,7 +107,7 @@ public class EditQuickWizardDialog extends DialogFragment implements View.OnClic
int validToInt = DateUtil.toSeconds(toSpinner.getSelectedItem().toString());
entry.storage.put("validTo", validToInt);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
quickWizard.addOrUpdate(entry);
dismiss();

View file

@ -7,18 +7,20 @@ import android.os.Handler;
import android.os.HandlerThread;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
import com.crashlytics.android.answers.Answers;
import com.crashlytics.android.answers.CustomEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.DecimalFormat;
import java.util.Objects;
@ -30,11 +32,13 @@ import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.db.CareportalEvent;
import info.nightscout.androidaps.db.Source;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.Overview.Notification;
import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
import info.nightscout.utils.NumberPicker;
import info.nightscout.utils.PlusMinusEditText;
import info.nightscout.utils.SafeParse;
public class NewTreatmentDialog extends DialogFragment implements OnClickListener {
private static Logger log = LoggerFactory.getLogger(NewTreatmentDialog.class);
NumberPicker editCarbs;
NumberPicker editInsulin;
@ -80,15 +84,16 @@ public class NewTreatmentDialog extends DialogFragment implements OnClickListene
Double insulin = SafeParse.stringToDouble(editInsulin.getText());
final Integer carbs = SafeParse.stringToInt(editCarbs.getText());
String confirmMessage = getString(R.string.entertreatmentquestion) + "\n";
String confirmMessage = getString(R.string.entertreatmentquestion) + "<br/>";
Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(insulin);
Integer carbsAfterConstraints = MainApp.getConfigBuilder().applyCarbsConstraints(carbs);
confirmMessage += getString(R.string.bolus) + ": " + insulinAfterConstraints + "U";
confirmMessage += "\n" + getString(R.string.carbs) + ": " + carbsAfterConstraints + "g";
confirmMessage += getString(R.string.bolus) + ": " + "<font color='" + MainApp.sResources.getColor(R.color.bolus) + "'>" + insulinAfterConstraints + "U" + "</font>";
confirmMessage += "<br/>" + getString(R.string.carbs) + ": " + carbsAfterConstraints + "g";
if (insulinAfterConstraints - insulin != 0 || !Objects.equals(carbsAfterConstraints, carbs))
confirmMessage += "\n" + getString(R.string.constraintapllied);
confirmMessage += "<br/>" + getString(R.string.constraintapllied);
final double finalInsulinAfterConstraints = insulinAfterConstraints;
final int finalCarbsAfterConstraints = carbsAfterConstraints;
@ -97,7 +102,7 @@ public class NewTreatmentDialog extends DialogFragment implements OnClickListene
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(this.getContext().getString(R.string.confirmation));
builder.setMessage(confirmMessage);
builder.setMessage(Html.fromHtml(confirmMessage));
builder.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if (finalInsulinAfterConstraints > 0 || finalCarbsAfterConstraints > 0) {
@ -106,19 +111,27 @@ public class NewTreatmentDialog extends DialogFragment implements OnClickListene
@Override
public void run() {
DetailedBolusInfo detailedBolusInfo = new DetailedBolusInfo();
if (finalInsulinAfterConstraints == 0) detailedBolusInfo.eventType = CareportalEvent.CARBCORRECTION;
if (finalCarbsAfterConstraints == 0) detailedBolusInfo.eventType = CareportalEvent.CORRECTIONBOLUS;
if (finalInsulinAfterConstraints == 0)
detailedBolusInfo.eventType = CareportalEvent.CARBCORRECTION;
if (finalCarbsAfterConstraints == 0)
detailedBolusInfo.eventType = CareportalEvent.CORRECTIONBOLUS;
detailedBolusInfo.insulin = finalInsulinAfterConstraints;
detailedBolusInfo.carbs = finalCarbsAfterConstraints;
detailedBolusInfo.context = context;
detailedBolusInfo.source = Source.USER;
PumpEnactResult result = pump.deliverTreatment(detailedBolusInfo);
if (!result.success) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror));
builder.setMessage(result.comment);
builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null);
builder.show();
try {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror));
builder.setMessage(result.comment);
builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null);
builder.show();
} catch (WindowManager.BadTokenException e) {
// window has been destroyed
Notification notification = new Notification(Notification.BOLUS_DELIVERY_ERROR, MainApp.sResources.getString(R.string.treatmentdeliveryerror), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
}
}
}
});
@ -130,7 +143,7 @@ public class NewTreatmentDialog extends DialogFragment implements OnClickListene
builder.show();
dismiss();
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
break;
case R.id.cancel:

View file

@ -9,6 +9,7 @@ import android.os.HandlerThread;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import android.text.Editable;
import android.text.Html;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
@ -50,12 +51,15 @@ import info.nightscout.androidaps.db.BgReading;
import info.nightscout.androidaps.db.CareportalEvent;
import info.nightscout.androidaps.db.DatabaseHelper;
import info.nightscout.androidaps.db.Source;
import info.nightscout.androidaps.db.TempTarget;
import info.nightscout.androidaps.events.EventNewBG;
import info.nightscout.androidaps.events.EventRefreshOverview;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.Loop.LoopPlugin;
import info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin;
import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateGui;
import info.nightscout.androidaps.plugins.Overview.Notification;
import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
import info.nightscout.utils.BolusWizard;
import info.nightscout.utils.DateUtil;
import info.nightscout.utils.DecimalFormatter;
@ -73,6 +77,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
TextView bgInsulin;
TextView bgUnits;
CheckBox bgCheckbox;
CheckBox ttCheckbox;
TextView carbs;
TextView carbsInsulin;
TextView bolusIobInsulin;
@ -216,17 +221,21 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
cobInsulin = (TextView) view.findViewById(R.id.treatments_wizard_cobinsulin);
bgCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_bgcheckbox);
ttCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_ttcheckbox);
bgtrendCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_bgtrendcheckbox);
cobCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_cobcheckbox);
bolusIobCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_bolusiobcheckbox);
basalIobCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_basaliobcheckbox);
superbolusCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_sbcheckbox);
bgtrendCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_bgtrendcheckbox);
cobCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_cobcheckbox);
loadCheckedStates();
bgCheckbox.setOnCheckedChangeListener(this);
ttCheckbox.setOnCheckedChangeListener(this);
bgtrendCheckbox.setOnCheckedChangeListener(this);
cobCheckbox.setOnCheckedChangeListener(this);
basalIobCheckbox.setOnCheckedChangeListener(this);
bolusIobCheckbox.setOnCheckedChangeListener(this);
superbolusCheckbox.setOnCheckedChangeListener(this);
bgtrendCheckbox.setOnCheckedChangeListener(this);
cobCheckbox.setOnCheckedChangeListener(this);
profileSpinner = (Spinner) view.findViewById(R.id.treatments_wizard_profile);
profileSpinner.setOnItemSelectedListener(this);
@ -253,9 +262,27 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
saveCheckedStates();
ttCheckbox.setEnabled(bgCheckbox.isChecked() && MainApp.getConfigBuilder().getTempTargetFromHistory() != null);
calculateInsulin();
}
private void saveCheckedStates() {
//SP.putBoolean(getString(R.string.key_wizard_include_bg), bgCheckbox.isChecked());
SP.putBoolean(getString(R.string.key_wizard_include_cob), cobCheckbox.isChecked());
SP.putBoolean(getString(R.string.key_wizard_include_trend_bg), bgtrendCheckbox.isChecked());
//SP.putBoolean(getString(R.string.key_wizard_include_bolus_iob), bolusIobCheckbox.isChecked());
//SP.putBoolean(getString(R.string.key_wizard_include_basal_iob), basalIobCheckbox.isChecked());
}
private void loadCheckedStates() {
//bgCheckbox.setChecked(SP.getBoolean(getString(R.string.key_wizard_include_bg), true));
bgtrendCheckbox.setChecked(SP.getBoolean(getString(R.string.key_wizard_include_trend_bg), false));
cobCheckbox.setChecked(SP.getBoolean(getString(R.string.key_wizard_include_cob), false));
//bolusIobCheckbox.setChecked(SP.getBoolean(getString(R.string.key_wizard_include_bolus_iob), true));
//basalIobCheckbox.setChecked(SP.getBoolean(getString(R.string.key_wizard_include_basal_iob), true));
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
calculateInsulin();
@ -274,13 +301,15 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
case R.id.ok:
if (calculatedTotalInsulin > 0d || calculatedCarbs > 0d) {
DecimalFormat formatNumber2decimalplaces = new DecimalFormat("0.00");
String confirmMessage = getString(R.string.entertreatmentquestion);
Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(calculatedTotalInsulin);
Integer carbsAfterConstraints = MainApp.getConfigBuilder().applyCarbsConstraints(calculatedCarbs);
confirmMessage += "\n" + getString(R.string.bolus) + ": " + formatNumber2decimalplaces.format(insulinAfterConstraints) + "U";
confirmMessage += "\n" + getString(R.string.carbs) + ": " + carbsAfterConstraints + "g";
confirmMessage += "<br/>" + getString(R.string.bolus) + ": " + "<font color='" + MainApp.sResources.getColor(R.color.bolus) + "'>" + formatNumber2decimalplaces.format(insulinAfterConstraints) + "U" + "</font>";
confirmMessage += "<br/>" + getString(R.string.carbs) + ": " + carbsAfterConstraints + "g";
if (insulinAfterConstraints - calculatedTotalInsulin != 0 || !carbsAfterConstraints.equals(calculatedCarbs)) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
@ -299,7 +328,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(MainApp.sResources.getString(R.string.confirmation));
builder.setMessage(confirmMessage);
builder.setMessage(Html.fromHtml(confirmMessage));
builder.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if (finalInsulinAfterConstraints > 0 || finalCarbsAfterConstraints > 0) {
@ -332,7 +361,17 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
detailedBolusInfo.source = Source.USER;
result = pump.deliverTreatment(detailedBolusInfo);
if (!result.success) {
OKDialog.show(getActivity(), MainApp.sResources.getString(R.string.treatmentdeliveryerror), result.comment, null);
try {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror));
builder.setMessage(result.comment);
builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null);
builder.show();
} catch (WindowManager.BadTokenException e) {
// window has been destroyed
Notification notification = new Notification(Notification.BOLUS_DELIVERY_ERROR, MainApp.sResources.getString(R.string.treatmentdeliveryerror), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
}
}
}
});
@ -381,31 +420,17 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
BgReading lastBg = DatabaseHelper.actualBg();
if (lastBg != null) {
Double lastBgValue = lastBg.valueToUnits(units);
Double sens = profile.getIsf();
Double targetBGLow = profile.getTargetLow();
Double targetBGHigh = profile.getTargetHigh();
Double bgDiff;
if (lastBgValue <= targetBGLow) {
bgDiff = lastBgValue - targetBGLow;
} else {
bgDiff = lastBgValue - targetBGHigh;
}
bg.setText(lastBg.valueToUnitsToString(units) + " ISF: " + DecimalFormatter.to1Decimal(sens));
bgInsulin.setText(DecimalFormatter.to2Decimal(bgDiff / sens) + "U");
editBg.removeTextChangedListener(textWatcher);
//bgInput.setText(lastBg.valueToUnitsToString(units));
editBg.setValue(lastBg.valueToUnits(units));
editBg.addTextChangedListener(textWatcher);
} else {
bg.setText("");
bgInsulin.setText("");
editBg.removeTextChangedListener(textWatcher);
//bgInput.setText("");
editBg.setValue(0d);
editBg.addTextChangedListener(textWatcher);
}
ttCheckbox.setEnabled(MainApp.getConfigBuilder().getTempTargetFromHistory() != null);
// IOB calculation
MainApp.getConfigBuilder().updateTotalIOBTreatments();
@ -458,6 +483,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
}
c_bg = bgCheckbox.isChecked() ? c_bg : 0d;
TempTarget tempTarget = ttCheckbox.isChecked() ? MainApp.getConfigBuilder().getTempTargetFromHistory() : null;
// COB
Double c_cob = 0d;
@ -466,12 +492,13 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
try {
c_cob = SafeParse.stringToDouble(ConfigBuilderPlugin.getActiveAPS().getLastAPSResult().json().getString("COB"));
} catch (JSONException e) {
log.error("Unhandled exception", e);
}
}
}
BolusWizard wizard = new BolusWizard();
wizard.doCalc(specificProfile, carbsAfterConstraint, c_cob, c_bg, corrAfterConstraint, bolusIobCheckbox.isChecked(), basalIobCheckbox.isChecked(), superbolusCheckbox.isChecked(), bgtrendCheckbox.isChecked());
wizard.doCalc(specificProfile, tempTarget, carbsAfterConstraint, c_cob, c_bg, corrAfterConstraint, bolusIobCheckbox.isChecked(), basalIobCheckbox.isChecked(), superbolusCheckbox.isChecked(), bgtrendCheckbox.isChecked());
bg.setText(c_bg + " ISF: " + DecimalFormatter.to1Decimal(wizard.sens));
bgInsulin.setText(DecimalFormatter.to2Decimal(wizard.insulinFromBG) + "U");
@ -522,6 +549,8 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
total.setText(getString(R.string.result) + ": " + insulinText + " " + carbsText);
okButton.setVisibility(View.VISIBLE);
} else {
// TODO this should also be run when loading the dialog as the OK button is initially visible
// but does nothing if neither carbs nor insulin is > 0
total.setText(getString(R.string.missing) + " " + DecimalFormatter.to0Decimal(wizard.carbsEquivalent) + "g");
okButton.setVisibility(View.INVISIBLE);
}
@ -550,7 +579,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
boluscalcJSON.put("insulintrend", wizard.insulinFromTrend);
boluscalcJSON.put("insulin", calculatedTotalInsulin);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}

View file

@ -49,6 +49,7 @@ public class Notification {
public static final int NSURGENTALARM = 20;
public static final int SHORT_DIA = 21;
public static final int TOAST_ALARM = 22;
public static final int BOLUS_DELIVERY_ERROR = 24;
public int id;

View file

@ -26,6 +26,7 @@ import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
@ -110,6 +111,7 @@ import info.nightscout.androidaps.plugins.Overview.Dialogs.CalibrationDialog;
import info.nightscout.androidaps.plugins.Overview.Dialogs.NewTreatmentDialog;
import info.nightscout.androidaps.plugins.Overview.Dialogs.WizardDialog;
import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification;
import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
import info.nightscout.androidaps.plugins.Overview.events.EventSetWakeLock;
import info.nightscout.androidaps.plugins.Overview.graphExtensions.AreaGraphSeries;
import info.nightscout.androidaps.plugins.Overview.graphExtensions.DataPointWithLabelInterface;
@ -127,9 +129,6 @@ import info.nightscout.utils.Profiler;
import info.nightscout.utils.Round;
import info.nightscout.utils.SP;
import info.nightscout.utils.ToastUtils;
//Added By Rumen for staledata alarm
import info.nightscout.androidaps.plugins.Overview.Notification;
import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
public class OverviewFragment extends Fragment implements View.OnClickListener, CompoundButton.OnCheckedChangeListener {
private static Logger log = LoggerFactory.getLogger(OverviewFragment.class);
@ -637,12 +636,13 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
void onClickQuickwizard() {
final BgReading actualBg = DatabaseHelper.actualBg();
final Profile profile = MainApp.getConfigBuilder().getProfile();
final TempTarget tempTarget = MainApp.getConfigBuilder().getTempTargetFromHistory();
QuickWizard.QuickWizardEntry quickWizardEntry = getPlugin().quickWizard.getActive();
if (quickWizardEntry != null && actualBg != null) {
quickWizardButton.setVisibility(View.VISIBLE);
BolusWizard wizard = new BolusWizard();
wizard.doCalc(profile, quickWizardEntry.carbs(), 0d, actualBg.valueToUnits(profile.getUnits()), 0d, true, true, false, false);
wizard.doCalc(profile, tempTarget, quickWizardEntry.carbs(), 0d, actualBg.valueToUnits(profile.getUnits()), 0d, true, true, false, false);
final JSONObject boluscalcJSON = new JSONObject();
try {
@ -664,7 +664,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
boluscalcJSON.put("insulintrend", wizard.insulinFromTrend);
boluscalcJSON.put("insulin", wizard.calculatedTotalInsulin);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
if (wizard.calculatedTotalInsulin > 0d && quickWizardEntry.carbs() > 0d) {
DecimalFormat formatNumber2decimalplaces = new DecimalFormat("0.00");
@ -707,11 +707,17 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
detailedBolusInfo.source = Source.USER;
PumpEnactResult result = pump.deliverTreatment(detailedBolusInfo);
if (!result.success) {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror));
builder.setMessage(result.comment);
builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null);
builder.show();
try {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror));
builder.setMessage(result.comment);
builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null);
builder.show();
} catch (WindowManager.BadTokenException e) {
// window has been destroyed
Notification notification = new Notification(Notification.BOLUS_DELIVERY_ERROR, MainApp.sResources.getString(R.string.treatmentdeliveryerror), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
}
}
}
});
@ -976,7 +982,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
}
// temp target
TempTarget tempTarget = MainApp.getConfigBuilder().getTempTargetFromHistory(System.currentTimeMillis());
TempTarget tempTarget = MainApp.getConfigBuilder().getTempTargetFromHistory();
if (tempTarget != null) {
tempTargetView.setTextColor(Color.BLACK);
tempTargetView.setBackgroundColor(MainApp.sResources.getColor(R.color.tempTargetBackground));
@ -1117,7 +1123,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
quickWizardButton.setVisibility(View.VISIBLE);
String text = quickWizardEntry.buttonText() + "\n" + DecimalFormatter.to0Decimal(quickWizardEntry.carbs()) + "g";
BolusWizard wizard = new BolusWizard();
wizard.doCalc(profile, quickWizardEntry.carbs(), 0d, lastBG.valueToUnits(units), 0d, true, true, false, false);
wizard.doCalc(profile, tempTarget, quickWizardEntry.carbs(), 0d, lastBG.valueToUnits(units), 0d, true, true, false, false);
text += " " + DecimalFormatter.to2Decimal(wizard.calculatedTotalInsulin) + "U";
quickWizardButton.setText(text);
if (wizard.calculatedTotalInsulin <= 0)
@ -1746,7 +1752,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
public void onBindViewHolder(NotificationsViewHolder holder, int position) {
Notification notification = notificationsList.get(position);
holder.dismiss.setTag(notification);
if(Objects.equals(notification.text, MainApp.sResources.getString(R.string.nsalarm_staledata)))
if (Objects.equals(notification.text, MainApp.sResources.getString(R.string.nsalarm_staledata)))
holder.dismiss.setText("snooze");
holder.text.setText(notification.text);
holder.time.setText(DateUtil.timeString(notification.date));
@ -1797,12 +1803,12 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
BroadcastAckAlarm.handleClearAlarm(notification.nsAlarm, MainApp.instance().getApplicationContext(), 60 * 60 * 1000L);
}
// Adding current time to snooze if we got staleData
log.debug("Notification text is: "+notification.text);
if(notification.text.equals(MainApp.sResources.getString(R.string.nsalarm_staledata))){
log.debug("Notification text is: " + notification.text);
if (notification.text.equals(MainApp.sResources.getString(R.string.nsalarm_staledata))) {
NotificationStore nstore = getPlugin().notificationStore;
long msToSnooze = SP.getInt("nsalarm_staledatavalue",15)*60*1000L;
log.debug("snooze nsalarm_staledatavalue in minutes is "+SP.getInt("nsalarm_staledatavalue",15)+"\n in ms is: "+msToSnooze+" currentTimeMillis is: "+System.currentTimeMillis());
nstore.snoozeTo(System.currentTimeMillis()+(SP.getInt("nsalarm_staledatavalue",15)*60*1000L));
long msToSnooze = SP.getInt("nsalarm_staledatavalue", 15) * 60 * 1000L;
log.debug("snooze nsalarm_staledatavalue in minutes is " + SP.getInt("nsalarm_staledatavalue", 15) + "\n in ms is: " + msToSnooze + " currentTimeMillis is: " + System.currentTimeMillis());
nstore.snoozeTo(System.currentTimeMillis() + (SP.getInt("nsalarm_staledatavalue", 15) * 60 * 1000L));
}
break;
}

View file

@ -4,6 +4,8 @@ import com.squareup.otto.Subscribe;
import org.json.JSONArray;
import org.json.JSONException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
@ -17,6 +19,7 @@ import info.nightscout.utils.SP;
* Created by mike on 05.08.2016.
*/
public class OverviewPlugin implements PluginBase {
private static Logger log = LoggerFactory.getLogger(OverviewPlugin.class);
public static double bgTargetLow = 80d;
public static double bgTargetHigh = 180d;
@ -30,7 +33,7 @@ public class OverviewPlugin implements PluginBase {
try {
quickWizard.setData(new JSONArray(storedData));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
MainApp.bus().register(this);
}

View file

@ -6,6 +6,8 @@ import android.preference.PreferenceManager;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Date;
@ -18,6 +20,7 @@ import info.nightscout.utils.DateUtil;
*/
public class QuickWizard {
private static Logger log = LoggerFactory.getLogger(QuickWizard.class);
public class QuickWizardEntry {
public JSONObject storage;
@ -36,7 +39,7 @@ public class QuickWizard {
try {
storage = new JSONObject(emptyData);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
position = -1;
}
@ -54,7 +57,7 @@ public class QuickWizard {
try {
return storage.getString("buttonText");
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return "";
}
@ -63,7 +66,7 @@ public class QuickWizard {
try {
return storage.getInt("carbs");
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return 0;
}
@ -80,7 +83,7 @@ public class QuickWizard {
try {
return storage.getInt("validFrom");
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return 0;
}
@ -89,7 +92,7 @@ public class QuickWizard {
try {
return storage.getInt("validTo");
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return 0;
}
@ -117,7 +120,7 @@ public class QuickWizard {
try {
return new QuickWizardEntry((JSONObject) storage.get(position), position);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return null;
}
@ -127,7 +130,7 @@ public class QuickWizard {
try {
if (new QuickWizardEntry((JSONObject) storage.get(i), i).isActive()) return true;
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return false;
@ -157,7 +160,7 @@ public class QuickWizard {
try {
storage.put(newItem.position, newItem.storage);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
save();

View file

@ -253,7 +253,7 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte
profile.put("units", mgdl ? Constants.MGDL : Constants.MMOL);
store.put(profileName, profile);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
convertedProfile = new ProfileStore(json);
convertedProfileName = profileName;

View file

@ -229,7 +229,7 @@ public class LocalProfilePlugin implements PluginBase, ProfileInterface {
profile.put("units", mgdl ? Constants.MGDL : Constants.MMOL);
store.put("LocalProfile", profile);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
convertedProfile = new ProfileStore(json);
convertedProfileName = "LocalProfile";

View file

@ -134,7 +134,7 @@ public class NSProfilePlugin implements PluginBase, ProfileInterface {
try {
profile = new ProfileStore(new JSONObject(profileString));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
profile = null;
}
}

View file

@ -191,7 +191,7 @@ public class SimpleProfilePlugin implements PluginBase, ProfileInterface {
profile.put("units", mgdl ? Constants.MGDL : Constants.MMOL);
store.put("SimpleProfile", profile);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
convertedProfile = new ProfileStore(json);
}

View file

@ -39,15 +39,6 @@ import info.nightscout.utils.SetWarnColor;
public class DanaRFragment extends SubscriberFragment {
private static Logger log = LoggerFactory.getLogger(DanaRFragment.class);
private static DanaRPlugin danaRPlugin;
public static DanaRPlugin getPlugin() {
if (danaRPlugin == null) {
danaRPlugin = new DanaRPlugin();
}
return danaRPlugin;
}
private static Handler sHandler;
private static HandlerThread sHandlerThread;
@ -146,7 +137,7 @@ public class DanaRFragment extends SubscriberFragment {
sHandler.post(new Runnable() {
@Override
public void run() {
DanaRPlugin.sExecutionService.connect("Connect request from GUI");
MainApp.getConfigBuilder().refreshDataFromPump("Connect request from GUI");
}
}
);
@ -218,11 +209,21 @@ public class DanaRFragment extends SubscriberFragment {
dailyUnitsView.setText(DecimalFormatter.to0Decimal(pump.dailyTotalUnits) + " / " + pump.maxDailyTotalUnits + " U");
SetWarnColor.setColor(dailyUnitsView, pump.dailyTotalUnits, pump.maxDailyTotalUnits * 0.75d, pump.maxDailyTotalUnits * 0.9d);
basaBasalRateView.setText("( " + (pump.activeProfile + 1) + " ) " + DecimalFormatter.to2Decimal(getPlugin().getBaseBasalRate()) + " U/h");
if (MainApp.getConfigBuilder().isInHistoryRealTempBasalInProgress()) {
tempBasalView.setText(MainApp.getConfigBuilder().getRealTempBasalFromHistory(System.currentTimeMillis()).toStringFull());
basaBasalRateView.setText("( " + (pump.activeProfile + 1) + " ) " + DecimalFormatter.to2Decimal(MainApp.getConfigBuilder().getBaseBasalRate()) + " U/h");
// DanaRPlugin, DanaRKoreanPlugin
if (MainApp.getConfigBuilder().isFakingTempsByExtendedBoluses()) {
if (MainApp.getConfigBuilder().isInHistoryRealTempBasalInProgress()) {
tempBasalView.setText(MainApp.getConfigBuilder().getRealTempBasalFromHistory(System.currentTimeMillis()).toStringFull());
} else {
tempBasalView.setText("");
}
} else {
tempBasalView.setText("");
// v2 plugin
if (MainApp.getConfigBuilder().isTempBasalInProgress()) {
tempBasalView.setText(MainApp.getConfigBuilder().getTempBasalFromHistory(System.currentTimeMillis()).toStringFull());
} else {
tempBasalView.setText("");
}
}
if (MainApp.getConfigBuilder().isInHistoryExtendedBoluslInProgress()) {
extendedBolusView.setText(MainApp.getConfigBuilder().getExtendedBolusFromHistory(System.currentTimeMillis()).toString());

View file

@ -71,6 +71,14 @@ public class DanaRPlugin implements PluginBase, PumpInterface, DanaRInterface, C
private static DanaRPump pump = DanaRPump.getInstance();
private static boolean useExtendedBoluses = false;
private static DanaRPlugin plugin = null;
public static DanaRPlugin getPlugin() {
if (plugin == null)
plugin = new DanaRPlugin();
return plugin;
}
public static PumpDescription pumpDescription = new PumpDescription();
public DanaRPlugin() {
@ -82,7 +90,7 @@ public class DanaRPlugin implements PluginBase, PumpInterface, DanaRInterface, C
MainApp.bus().register(this);
pumpDescription.isBolusCapable = true;
pumpDescription.bolusStep = 0.1d;
pumpDescription.bolusStep = 0.05d;
pumpDescription.isExtendedBolusCapable = true;
pumpDescription.extendedBolusStep = 0.05d;
@ -697,7 +705,7 @@ public class DanaRPlugin implements PluginBase, PumpInterface, DanaRInterface, C
pumpjson.put("reservoir", (int) pump.reservoirRemainingUnits);
pumpjson.put("clock", DateUtil.toISOString(new Date()));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return pumpjson;
}

View file

@ -3,6 +3,8 @@ package info.nightscout.androidaps.plugins.PumpDanaR;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.DecimalFormat;
import java.util.Date;
@ -16,6 +18,8 @@ import info.nightscout.utils.SP;
* Created by mike on 04.07.2016.
*/
public class DanaRPump {
private static Logger log = LoggerFactory.getLogger(DanaRPump.class);
private static DanaRPump instance = null;
public static DanaRPump getInstance() {
@ -189,7 +193,7 @@ public class DanaRPump {
profile.put("units", units == UNITS_MGDL ? Constants.MGDL : Constants.MMOL);
store.put(PROFILE_PREFIX + (activeProfile + 1), profile);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
} catch (Exception e) {
return null;
}

View file

@ -1,6 +1,7 @@
package info.nightscout.androidaps.plugins.PumpDanaR;
import android.bluetooth.BluetoothSocket;
import android.os.SystemClock;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -44,7 +45,7 @@ public class SerialIOThread extends Thread {
mOutputStream = mRfCommSocket.getOutputStream();
mInputStream = mRfCommSocket.getInputStream();
} catch (IOException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
this.start();
}
@ -158,7 +159,6 @@ public class SerialIOThread extends Thread {
mOutputStream.write(messageBytes);
} catch (Exception e) {
log.error("sendMessage write exception: ", e);
e.printStackTrace();
}
synchronized (message) {
@ -166,14 +166,10 @@ public class SerialIOThread extends Thread {
message.wait(5000);
} catch (InterruptedException e) {
log.error("sendMessage InterruptedException", e);
e.printStackTrace();
}
}
try {
Thread.sleep(200);
} catch (InterruptedException e) {
}
SystemClock.sleep(200);
if (!message.received) {
log.warn("Reply not received " + message.getMessageName());
if (message.getCommand() == 0xF0F1) {

View file

@ -220,7 +220,7 @@ public class DanaRNSHistorySync {
MainApp.bus().post(ev);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
}

View file

@ -11,6 +11,7 @@ import android.content.IntentFilter;
import android.os.Binder;
import android.os.IBinder;
import android.os.PowerManager;
import android.os.SystemClock;
import com.squareup.otto.Subscribe;
@ -75,7 +76,6 @@ import info.nightscout.androidaps.plugins.PumpDanaR.comm.MsgStatusBasic;
import info.nightscout.androidaps.plugins.PumpDanaR.comm.MsgStatusBolusExtended;
import info.nightscout.androidaps.plugins.PumpDanaR.comm.MsgStatusTempBasal;
import info.nightscout.androidaps.plugins.PumpDanaR.comm.RecordTypes;
import info.nightscout.androidaps.plugins.PumpDanaR.events.EventDanaRBolusStart;
import info.nightscout.androidaps.plugins.PumpDanaR.events.EventDanaRNewStatus;
import info.nightscout.androidaps.plugins.Overview.Notification;
import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
@ -209,9 +209,9 @@ public class DanaRExecutionService extends Service {
try {
mRfcommSocket.connect();
} catch (IOException e) {
//e.printStackTrace();
//log.error("Unhandled exception", e);
if (e.getMessage().contains("socket closed")) {
e.printStackTrace();
log.error("Unhandled exception", e);
break;
}
}
@ -352,7 +352,7 @@ public class DanaRExecutionService extends Service {
NSUpload.uploadError(MainApp.sResources.getString(R.string.approachingdailylimit) + ": " + danaRPump.dailyTotalUnits + "/" + danaRPump.maxDailyTotalUnits + "U");
}
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return true;
}
@ -415,7 +415,6 @@ public class DanaRExecutionService extends Service {
}
MsgBolusProgress progress = new MsgBolusProgress(amount, t); // initialize static variables
MainApp.bus().post(new EventDanaRBolusStart());
long startTime = System.currentTimeMillis();
if (!stop.stopped) {
@ -552,10 +551,6 @@ public class DanaRExecutionService extends Service {
}
private void waitMsec(long msecs) {
try {
Thread.sleep(msecs);
} catch (InterruptedException e) {
e.printStackTrace();
}
SystemClock.sleep(msecs);
}
}

View file

@ -1,248 +0,0 @@
package info.nightscout.androidaps.plugins.PumpDanaRKorean;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import com.squareup.otto.Subscribe;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Date;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.events.EventExtendedBolusChange;
import info.nightscout.androidaps.events.EventPumpStatusChanged;
import info.nightscout.androidaps.events.EventTempBasalChange;
import info.nightscout.androidaps.plugins.Common.SubscriberFragment;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRPump;
import info.nightscout.androidaps.plugins.PumpDanaR.Dialogs.ProfileViewDialog;
import info.nightscout.androidaps.plugins.PumpDanaR.activities.DanaRHistoryActivity;
import info.nightscout.androidaps.plugins.PumpDanaR.activities.DanaRStatsActivity;
import info.nightscout.androidaps.plugins.PumpDanaR.events.EventDanaRNewStatus;
import info.nightscout.utils.DateUtil;
import info.nightscout.utils.DecimalFormatter;
import info.nightscout.utils.SetWarnColor;
public class DanaRKoreanFragment extends SubscriberFragment {
private static Logger log = LoggerFactory.getLogger(DanaRKoreanFragment.class);
private static DanaRKoreanPlugin danaRKoreanPlugin = new DanaRKoreanPlugin();
public static DanaRKoreanPlugin getPlugin() {
return danaRKoreanPlugin;
}
private static Handler sHandler;
private static HandlerThread sHandlerThread;
private Handler loopHandler = new Handler();
private Runnable refreshLoop = null;
TextView lastConnectionView;
TextView btConnectionView;
TextView lastBolusView;
TextView dailyUnitsView;
TextView basaBasalRateView;
TextView tempBasalView;
TextView extendedBolusView;
TextView batteryView;
TextView reservoirView;
TextView iobView;
TextView firmwareView;
TextView basalStepView;
TextView bolusStepView;
Button viewProfileButton;
Button historyButton;
Button statsButton;
public DanaRKoreanFragment() {
if (sHandlerThread == null) {
sHandlerThread = new HandlerThread(DanaRKoreanFragment.class.getSimpleName());
sHandlerThread.start();
sHandler = new Handler(sHandlerThread.getLooper());
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (refreshLoop == null) {
refreshLoop = new Runnable() {
@Override
public void run() {
updateGUI();
loopHandler.postDelayed(refreshLoop, 60 * 1000L);
}
};
loopHandler.postDelayed(refreshLoop, 60 * 1000L);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.danar_fragment, container, false);
btConnectionView = (TextView) view.findViewById(R.id.danar_btconnection);
lastConnectionView = (TextView) view.findViewById(R.id.danar_lastconnection);
lastBolusView = (TextView) view.findViewById(R.id.danar_lastbolus);
dailyUnitsView = (TextView) view.findViewById(R.id.danar_dailyunits);
basaBasalRateView = (TextView) view.findViewById(R.id.danar_basabasalrate);
tempBasalView = (TextView) view.findViewById(R.id.danar_tempbasal);
extendedBolusView = (TextView) view.findViewById(R.id.danar_extendedbolus);
batteryView = (TextView) view.findViewById(R.id.danar_battery);
reservoirView = (TextView) view.findViewById(R.id.danar_reservoir);
iobView = (TextView) view.findViewById(R.id.danar_iob);
firmwareView = (TextView) view.findViewById(R.id.danar_firmware);
viewProfileButton = (Button) view.findViewById(R.id.danar_viewprofile);
historyButton = (Button) view.findViewById(R.id.danar_history);
statsButton = (Button) view.findViewById(R.id.danar_stats);
basalStepView = (TextView) view.findViewById(R.id.danar_basalstep);
bolusStepView = (TextView) view.findViewById(R.id.danar_bolusstep);
viewProfileButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager manager = getFragmentManager();
ProfileViewDialog profileViewDialog = new ProfileViewDialog();
profileViewDialog.show(manager, "ProfileViewDialog");
}
});
historyButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getContext(), DanaRHistoryActivity.class));
}
});
statsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getContext(), DanaRStatsActivity.class));
}
});
btConnectionView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sHandler.post(new Runnable() {
@Override
public void run() {
DanaRKoreanPlugin.sExecutionService.connect("Connect request from GUI");
}
}
);
}
});
updateGUI();
return view;
}
@Subscribe
public void onStatusEvent(final EventPumpStatusChanged c) {
Activity activity = getActivity();
if (activity != null) {
activity.runOnUiThread(
new Runnable() {
@Override
public void run() {
if (c.sStatus == EventPumpStatusChanged.CONNECTING)
btConnectionView.setText("{fa-bluetooth-b spin} " + c.sSecondsElapsed + "s");
else if (c.sStatus == EventPumpStatusChanged.CONNECTED)
btConnectionView.setText("{fa-bluetooth}");
else if (c.sStatus == EventPumpStatusChanged.DISCONNECTED)
btConnectionView.setText("{fa-bluetooth-b}");
}
}
);
}
}
@Subscribe
public void onStatusEvent(final EventDanaRNewStatus s) {
updateGUI();
}
@Subscribe
public void onStatusEvent(final EventTempBasalChange s) {
updateGUI();
}
@Subscribe
public void onStatusEvent(final EventExtendedBolusChange s) {
updateGUI();
}
// GUI functions
@Override
protected void updateGUI() {
Activity activity = getActivity();
if (activity != null && basaBasalRateView != null)
activity.runOnUiThread(new Runnable() {
@SuppressLint("SetTextI18n")
@Override
public void run() {
DanaRPump pump = DanaRPump.getInstance();
if (pump.lastConnection.getTime() != 0) {
Long agoMsec = System.currentTimeMillis() - pump.lastConnection.getTime();
int agoMin = (int) (agoMsec / 60d / 1000d);
lastConnectionView.setText(DateUtil.timeString(pump.lastConnection) + " (" + String.format(MainApp.sResources.getString(R.string.minago), agoMin) + ")");
SetWarnColor.setColor(lastConnectionView, agoMin, 16d, 31d);
}
// if (pump.lastBolusTime.getTime() != 0) {
// Long agoMsec = System.currentTimeMillis() - pump.lastBolusTime.getTime();
// double agoHours = agoMsec / 60d / 60d / 1000d;
// if (agoHours < 6) // max 6h back
// lastBolusView.setText(formatTime.format(pump.lastBolusTime) + " (" + DecimalFormatter.to1Decimal(agoHours) + " " + getString(R.string.hoursago) + ") " + DecimalFormatter.to2Decimal(pump.lastBolusAmount) + " U");
// else lastBolusView.setText("");
// }
dailyUnitsView.setText(DecimalFormatter.to0Decimal(pump.dailyTotalUnits) + " / " + pump.maxDailyTotalUnits + " U");
SetWarnColor.setColor(dailyUnitsView, pump.dailyTotalUnits, pump.maxDailyTotalUnits * 0.75d, pump.maxDailyTotalUnits * 0.9d);
basaBasalRateView.setText("( " + (pump.activeProfile + 1) + " ) " + DecimalFormatter.to2Decimal(danaRKoreanPlugin.getBaseBasalRate()) + " U/h");
if (MainApp.getConfigBuilder().isInHistoryRealTempBasalInProgress()) {
tempBasalView.setText(MainApp.getConfigBuilder().getRealTempBasalFromHistory(System.currentTimeMillis()).toStringFull());
} else {
tempBasalView.setText("");
}
if (MainApp.getConfigBuilder().isInHistoryExtendedBoluslInProgress()) {
extendedBolusView.setText(MainApp.getConfigBuilder().getExtendedBolusFromHistory(System.currentTimeMillis()).toString());
} else {
extendedBolusView.setText("");
}
reservoirView.setText(DecimalFormatter.to0Decimal(pump.reservoirRemainingUnits) + " / 300 U");
SetWarnColor.setColorInverse(reservoirView, pump.reservoirRemainingUnits, 50d, 20d);
batteryView.setText("{fa-battery-" + (pump.batteryRemaining / 25) + "}");
SetWarnColor.setColorInverse(batteryView, pump.batteryRemaining, 51d, 26d);
iobView.setText(pump.iob + " U");
if (pump.isNewPump) {
firmwareView.setText(String.format(MainApp.sResources.getString(R.string.danar_model), pump.model, pump.protocol, pump.productCode));
} else {
firmwareView.setText("OLD");
}
basalStepView.setText("" + pump.basalStep);
bolusStepView.setText("" + pump.bolusStep);
}
});
}
}

View file

@ -23,6 +23,8 @@ import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.DetailedBolusInfo;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.ProfileStore;
import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.db.ExtendedBolus;
import info.nightscout.androidaps.db.TemporaryBasal;
@ -36,12 +38,11 @@ import info.nightscout.androidaps.interfaces.ProfileInterface;
import info.nightscout.androidaps.interfaces.PumpDescription;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.ProfileStore;
import info.nightscout.androidaps.plugins.Overview.Notification;
import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification;
import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
import info.nightscout.androidaps.plugins.ProfileNS.NSProfilePlugin;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRFragment;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRPump;
import info.nightscout.androidaps.plugins.PumpDanaRKorean.services.DanaRKoreanExecutionService;
import info.nightscout.utils.DateUtil;
@ -57,7 +58,7 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, DanaRInterf
@Override
public String getFragmentClass() {
return DanaRKoreanFragment.class.getName();
return DanaRFragment.class.getName();
}
static boolean fragmentPumpEnabled = false;
@ -70,6 +71,14 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, DanaRInterf
private static DanaRPump pump = DanaRPump.getInstance();
private static boolean useExtendedBoluses = false;
private static DanaRKoreanPlugin plugin = null;
public static DanaRKoreanPlugin getPlugin() {
if (plugin == null)
plugin = new DanaRKoreanPlugin();
return plugin;
}
public static PumpDescription pumpDescription = new PumpDescription();
public DanaRKoreanPlugin() {
@ -691,7 +700,7 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, DanaRInterf
pumpjson.put("reservoir", (int) pump.reservoirRemainingUnits);
pumpjson.put("clock", DateUtil.toISOString(new Date()));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return pumpjson;
}

View file

@ -1,6 +1,7 @@
package info.nightscout.androidaps.plugins.PumpDanaRKorean;
import android.bluetooth.BluetoothSocket;
import android.os.SystemClock;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -45,7 +46,7 @@ public class SerialIOThread extends Thread {
mOutputStream = mRfCommSocket.getOutputStream();
mInputStream = mRfCommSocket.getInputStream();
} catch (IOException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
this.start();
}
@ -159,7 +160,6 @@ public class SerialIOThread extends Thread {
mOutputStream.write(messageBytes);
} catch (Exception e) {
log.error("sendMessage write exception: ", e);
e.printStackTrace();
}
synchronized (message) {
@ -167,14 +167,10 @@ public class SerialIOThread extends Thread {
message.wait(5000);
} catch (InterruptedException e) {
log.error("sendMessage InterruptedException", e);
e.printStackTrace();
}
}
try {
Thread.sleep(200);
} catch (InterruptedException e) {
}
SystemClock.sleep(200);
if (!message.received) {
log.warn("Reply not received " + message.getMessageName());
if (message.getCommand() == 0xF0F1) {

View file

@ -11,6 +11,7 @@ import android.content.IntentFilter;
import android.os.Binder;
import android.os.IBinder;
import android.os.PowerManager;
import android.os.SystemClock;
import com.squareup.otto.Subscribe;
@ -66,7 +67,6 @@ import info.nightscout.androidaps.plugins.PumpDanaR.comm.MsgSettingShippingInfo;
import info.nightscout.androidaps.plugins.PumpDanaR.comm.MsgStatusBolusExtended;
import info.nightscout.androidaps.plugins.PumpDanaR.comm.MsgStatusTempBasal;
import info.nightscout.androidaps.plugins.PumpDanaR.comm.RecordTypes;
import info.nightscout.androidaps.plugins.PumpDanaR.events.EventDanaRBolusStart;
import info.nightscout.androidaps.plugins.PumpDanaR.events.EventDanaRNewStatus;
import info.nightscout.androidaps.plugins.PumpDanaRKorean.DanaRKoreanPlugin;
import info.nightscout.androidaps.plugins.PumpDanaRKorean.SerialIOThread;
@ -205,9 +205,9 @@ public class DanaRKoreanExecutionService extends Service {
try {
mRfcommSocket.connect();
} catch (IOException e) {
//e.printStackTrace();
//log.error("Unhandled exception", e);
if (e.getMessage().contains("socket closed")) {
e.printStackTrace();
log.error("Unhandled exception", e);
break;
}
}
@ -345,7 +345,7 @@ public class DanaRKoreanExecutionService extends Service {
NSUpload.uploadError(MainApp.sResources.getString(R.string.approachingdailylimit) + ": " + danaRPump.dailyTotalUnits + "/" + danaRPump.maxDailyTotalUnits + "U");
}
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return true;
}
@ -408,7 +408,6 @@ public class DanaRKoreanExecutionService extends Service {
}
MsgBolusProgress progress = new MsgBolusProgress(amount, t); // initialize static variables
MainApp.bus().post(new EventDanaRBolusStart());
if (!stop.stopped) {
mSerialIOThread.sendMessage(start);
@ -524,10 +523,6 @@ public class DanaRKoreanExecutionService extends Service {
}
private void waitMsec(long msecs) {
try {
Thread.sleep(msecs);
} catch (InterruptedException e) {
e.printStackTrace();
}
SystemClock.sleep(msecs);
}
}

View file

@ -1,250 +0,0 @@
package info.nightscout.androidaps.plugins.PumpDanaRv2;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import com.squareup.otto.Subscribe;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Date;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.events.EventExtendedBolusChange;
import info.nightscout.androidaps.events.EventPumpStatusChanged;
import info.nightscout.androidaps.events.EventTempBasalChange;
import info.nightscout.androidaps.plugins.Common.SubscriberFragment;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRPump;
import info.nightscout.androidaps.plugins.PumpDanaR.Dialogs.ProfileViewDialog;
import info.nightscout.androidaps.plugins.PumpDanaR.activities.DanaRHistoryActivity;
import info.nightscout.androidaps.plugins.PumpDanaR.activities.DanaRStatsActivity;
import info.nightscout.androidaps.plugins.PumpDanaR.events.EventDanaRNewStatus;
import info.nightscout.utils.DateUtil;
import info.nightscout.utils.DecimalFormatter;
import info.nightscout.utils.SetWarnColor;
public class DanaRv2Fragment extends SubscriberFragment {
private static Logger log = LoggerFactory.getLogger(DanaRv2Fragment.class);
private static DanaRv2Plugin danaRPlugin;
public static DanaRv2Plugin getPlugin() {
if (danaRPlugin == null) {
danaRPlugin = new DanaRv2Plugin();
}
return danaRPlugin;
}
private static Handler sHandler;
private static HandlerThread sHandlerThread;
private Handler loopHandler = new Handler();
private Runnable refreshLoop = null;
TextView lastConnectionView;
TextView btConnectionView;
TextView lastBolusView;
TextView dailyUnitsView;
TextView basaBasalRateView;
TextView tempBasalView;
TextView extendedBolusView;
TextView batteryView;
TextView reservoirView;
TextView iobView;
TextView firmwareView;
TextView basalStepView;
TextView bolusStepView;
Button viewProfileButton;
Button historyButton;
Button statsButton;
public DanaRv2Fragment() {
if (sHandlerThread == null) {
sHandlerThread = new HandlerThread(DanaRv2Fragment.class.getSimpleName());
sHandlerThread.start();
sHandler = new Handler(sHandlerThread.getLooper());
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (refreshLoop == null) {
refreshLoop = new Runnable() {
@Override
public void run() {
updateGUI();
loopHandler.postDelayed(refreshLoop, 60 * 1000L);
}
};
loopHandler.postDelayed(refreshLoop, 60 * 1000L);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.danar_fragment, container, false);
btConnectionView = (TextView) view.findViewById(R.id.danar_btconnection);
lastConnectionView = (TextView) view.findViewById(R.id.danar_lastconnection);
lastBolusView = (TextView) view.findViewById(R.id.danar_lastbolus);
dailyUnitsView = (TextView) view.findViewById(R.id.danar_dailyunits);
basaBasalRateView = (TextView) view.findViewById(R.id.danar_basabasalrate);
tempBasalView = (TextView) view.findViewById(R.id.danar_tempbasal);
extendedBolusView = (TextView) view.findViewById(R.id.danar_extendedbolus);
batteryView = (TextView) view.findViewById(R.id.danar_battery);
reservoirView = (TextView) view.findViewById(R.id.danar_reservoir);
iobView = (TextView) view.findViewById(R.id.danar_iob);
firmwareView = (TextView) view.findViewById(R.id.danar_firmware);
viewProfileButton = (Button) view.findViewById(R.id.danar_viewprofile);
historyButton = (Button) view.findViewById(R.id.danar_history);
statsButton = (Button) view.findViewById(R.id.danar_stats);
basalStepView = (TextView) view.findViewById(R.id.danar_basalstep);
bolusStepView = (TextView) view.findViewById(R.id.danar_bolusstep);
viewProfileButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager manager = getFragmentManager();
ProfileViewDialog profileViewDialog = new ProfileViewDialog();
profileViewDialog.show(manager, "ProfileViewDialog");
}
});
historyButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getContext(), DanaRHistoryActivity.class));
}
});
statsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getContext(), DanaRStatsActivity.class));
}
});
btConnectionView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sHandler.post(new Runnable() {
@Override
public void run() {
DanaRv2Plugin.sExecutionService.connect("Connect request from GUI");
}
}
);
}
});
updateGUI();
return view;
}
@Subscribe
public void onStatusEvent(final EventPumpStatusChanged c) {
Activity activity = getActivity();
if (activity != null) {
activity.runOnUiThread(
new Runnable() {
@Override
public void run() {
if (c.sStatus == EventPumpStatusChanged.CONNECTING)
btConnectionView.setText("{fa-bluetooth-b spin} " + c.sSecondsElapsed + "s");
else if (c.sStatus == EventPumpStatusChanged.CONNECTED)
btConnectionView.setText("{fa-bluetooth}");
else if (c.sStatus == EventPumpStatusChanged.DISCONNECTED)
btConnectionView.setText("{fa-bluetooth-b}");
}
}
);
}
}
@Subscribe
public void onStatusEvent(final EventDanaRNewStatus s) {
updateGUI();
}
@Subscribe
public void onStatusEvent(final EventTempBasalChange s) {
updateGUI();
}
@Subscribe
public void onStatusEvent(final EventExtendedBolusChange s) {
updateGUI();
}
// GUI functions
@Override
protected void updateGUI() {
Activity activity = getActivity();
if (activity != null && basaBasalRateView != null)
activity.runOnUiThread(new Runnable() {
@SuppressLint("SetTextI18n")
@Override
public void run() {
DanaRPump pump = DanaRPump.getInstance();
if (pump.lastConnection.getTime() != 0) {
Long agoMsec = System.currentTimeMillis() - pump.lastConnection.getTime();
int agoMin = (int) (agoMsec / 60d / 1000d);
lastConnectionView.setText(DateUtil.timeString(pump.lastConnection) + " (" + String.format(MainApp.sResources.getString(R.string.minago), agoMin) + ")");
SetWarnColor.setColor(lastConnectionView, agoMin, 16d, 31d);
}
if (pump.lastBolusTime.getTime() != 0) {
Long agoMsec = System.currentTimeMillis() - pump.lastBolusTime.getTime();
double agoHours = agoMsec / 60d / 60d / 1000d;
if (agoHours < 6) // max 6h back
lastBolusView.setText(DateUtil.timeString(pump.lastBolusTime) + " (" + DecimalFormatter.to1Decimal(agoHours) + " " + MainApp.sResources.getString(R.string.hoursago) + ") " + DecimalFormatter.to2Decimal(DanaRPump.getInstance().lastBolusAmount) + " U");
else lastBolusView.setText("");
}
dailyUnitsView.setText(DecimalFormatter.to0Decimal(pump.dailyTotalUnits) + " / " + pump.maxDailyTotalUnits + " U");
SetWarnColor.setColor(dailyUnitsView, pump.dailyTotalUnits, pump.maxDailyTotalUnits * 0.75d, pump.maxDailyTotalUnits * 0.9d);
basaBasalRateView.setText("( " + (pump.activeProfile + 1) + " ) " + DecimalFormatter.to2Decimal(getPlugin().getBaseBasalRate()) + " U/h");
if (MainApp.getConfigBuilder().isTempBasalInProgress()) {
tempBasalView.setText(MainApp.getConfigBuilder().getTempBasalFromHistory(System.currentTimeMillis()).toStringFull());
} else {
tempBasalView.setText("");
}
if (MainApp.getConfigBuilder().isInHistoryExtendedBoluslInProgress()) {
extendedBolusView.setText(MainApp.getConfigBuilder().getExtendedBolusFromHistory(System.currentTimeMillis()).toString());
} else {
extendedBolusView.setText("");
}
reservoirView.setText(DecimalFormatter.to0Decimal(pump.reservoirRemainingUnits) + " / 300 U");
SetWarnColor.setColorInverse(reservoirView, pump.reservoirRemainingUnits, 50d, 20d);
batteryView.setText("{fa-battery-" + (pump.batteryRemaining / 25) + "}");
SetWarnColor.setColorInverse(batteryView, pump.batteryRemaining, 51d, 26d);
iobView.setText(pump.iob + " U");
if (pump.isNewPump) {
firmwareView.setText(String.format(MainApp.sResources.getString(R.string.danar_model), pump.model, pump.protocol, pump.productCode));
} else {
firmwareView.setText("OLD");
}
basalStepView.setText("" + pump.basalStep);
bolusStepView.setText("" + pump.bolusStep);
}
});
}
}

View file

@ -4,9 +4,7 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.SharedPreferences;
import android.os.IBinder;
import android.preference.PreferenceManager;
import android.support.annotation.Nullable;
import com.squareup.otto.Subscribe;
@ -25,6 +23,8 @@ import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.DetailedBolusInfo;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.ProfileStore;
import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.db.ExtendedBolus;
import info.nightscout.androidaps.db.TemporaryBasal;
@ -37,13 +37,12 @@ import info.nightscout.androidaps.interfaces.ProfileInterface;
import info.nightscout.androidaps.interfaces.PumpDescription;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.ProfileStore;
import info.nightscout.androidaps.plugins.ConfigBuilder.DetailedBolusInfoStorage;
import info.nightscout.androidaps.plugins.Overview.Notification;
import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification;
import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
import info.nightscout.androidaps.plugins.ProfileNS.NSProfilePlugin;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRFragment;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRPump;
import info.nightscout.androidaps.plugins.PumpDanaRv2.services.DanaRv2ExecutionService;
import info.nightscout.utils.DateUtil;
@ -58,7 +57,7 @@ public class DanaRv2Plugin implements PluginBase, PumpInterface, DanaRInterface,
@Override
public String getFragmentClass() {
return DanaRv2Fragment.class.getName();
return DanaRFragment.class.getName();
}
static boolean fragmentPumpEnabled = false;
@ -68,6 +67,14 @@ public class DanaRv2Plugin implements PluginBase, PumpInterface, DanaRInterface,
public static DanaRv2ExecutionService sExecutionService;
private static DanaRv2Plugin plugin = null;
public static DanaRv2Plugin getPlugin() {
if (plugin == null)
plugin = new DanaRv2Plugin();
return plugin;
}
private static DanaRPump pump = DanaRPump.getInstance();
public static PumpDescription pumpDescription = new PumpDescription();
@ -79,7 +86,7 @@ public class DanaRv2Plugin implements PluginBase, PumpInterface, DanaRInterface,
MainApp.bus().register(this);
pumpDescription.isBolusCapable = true;
pumpDescription.bolusStep = 0.1d;
pumpDescription.bolusStep = 0.05d;
pumpDescription.isExtendedBolusCapable = true;
pumpDescription.extendedBolusStep = 0.05d;
@ -286,10 +293,20 @@ public class DanaRv2Plugin implements PluginBase, PumpInterface, DanaRInterface,
detailedBolusInfo.insulin = configBuilderPlugin.applyBolusConstraints(detailedBolusInfo.insulin);
if (detailedBolusInfo.insulin > 0 || detailedBolusInfo.carbs > 0) {
DetailedBolusInfoStorage.add(detailedBolusInfo); // will be picked up on reading history
// v2 stores end time for bolus, we need to adjust time
// delivery speed is 12 U/min
detailedBolusInfo.date += detailedBolusInfo.insulin / 12d * 60 * 1000;
// clean carbs to prevent counting them as twice because they will picked up as another record
// I don't think it's necessary to copy DetailedBolusInfo right now for carbs records
double carbs = detailedBolusInfo.carbs;
detailedBolusInfo.carbs = 0;
int carbTime = detailedBolusInfo.carbTime;
detailedBolusInfo.carbTime = 0;
Treatment t = new Treatment();
boolean connectionOK = false;
if (detailedBolusInfo.insulin > 0 || detailedBolusInfo.carbs > 0)
connectionOK = sExecutionService.bolus(detailedBolusInfo.insulin, (int) detailedBolusInfo.carbs, System.currentTimeMillis() + detailedBolusInfo.carbTime * 60 * 1000 + 1000, t); // +1000 to make the record different
if (detailedBolusInfo.insulin > 0 || carbs > 0)
connectionOK = sExecutionService.bolus(detailedBolusInfo.insulin, (int) carbs, System.currentTimeMillis() + carbTime * 60 * 1000 + 1000, t); // +1000 to make the record different
PumpEnactResult result = new PumpEnactResult();
result.success = connectionOK;
result.bolusDelivered = t.insulin;
@ -615,7 +632,7 @@ public class DanaRv2Plugin implements PluginBase, PumpInterface, DanaRInterface,
pumpjson.put("reservoir", (int) pump.reservoirRemainingUnits);
pumpjson.put("clock", DateUtil.toISOString(new Date()));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return pumpjson;
}

View file

@ -1,6 +1,7 @@
package info.nightscout.androidaps.plugins.PumpDanaRv2;
import android.bluetooth.BluetoothSocket;
import android.os.SystemClock;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -45,7 +46,7 @@ public class SerialIOThread extends Thread {
mOutputStream = mRfCommSocket.getOutputStream();
mInputStream = mRfCommSocket.getInputStream();
} catch (IOException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
this.start();
}
@ -159,7 +160,6 @@ public class SerialIOThread extends Thread {
mOutputStream.write(messageBytes);
} catch (Exception e) {
log.error("sendMessage write exception: ", e);
e.printStackTrace();
}
synchronized (message) {
@ -167,14 +167,10 @@ public class SerialIOThread extends Thread {
message.wait(5000);
} catch (InterruptedException e) {
log.error("sendMessage InterruptedException", e);
e.printStackTrace();
}
}
try {
Thread.sleep(200);
} catch (InterruptedException e) {
}
SystemClock.sleep(200);
if (!message.received) {
log.warn("Reply not received " + message.getMessageName());
if (message.getCommand() == 0xF0F1) {

View file

@ -67,15 +67,10 @@ public class MsgHistoryEvents_v2 extends MessageBase {
if (detailedBolusInfo == null) {
log.debug("DetailedBolusInfo not found for " + datetime.toLocaleString());
detailedBolusInfo = new DetailedBolusInfo();
} else {
log.debug("DetailedBolusInfo found for " + datetime.toLocaleString() + ": " + new Date(detailedBolusInfo.date).toLocaleString());
detailedBolusInfo.carbTime = 0;
detailedBolusInfo.carbs = 0;
}
detailedBolusInfo.date = datetime.getTime();
detailedBolusInfo.source = Source.PUMP;
detailedBolusInfo.pumpId = datetime.getTime();
detailedBolusInfo.source = Source.PUMP;
switch (recordCode) {
case DanaRPump.TEMPSTART:
@ -102,11 +97,13 @@ public class MsgHistoryEvents_v2 extends MessageBase {
detailedBolusInfo.insulin = param1 / 100d;
boolean newRecord = MainApp.getConfigBuilder().addToHistoryTreatment(detailedBolusInfo);
log.debug((newRecord ? "**NEW** " : "") + "EVENT BOLUS (" + recordCode + ") " + datetime.toLocaleString() + " Bolus: " + (param1 / 100d) + "U Duration: " + param2 + "min");
DetailedBolusInfoStorage.remove(detailedBolusInfo.date);
break;
case DanaRPump.DUALBOLUS:
detailedBolusInfo.insulin = param1 / 100d;
newRecord = MainApp.getConfigBuilder().addToHistoryTreatment(detailedBolusInfo);
log.debug((newRecord ? "**NEW** " : "") + "EVENT DUALBOLUS (" + recordCode + ") " + datetime.toLocaleString() + " Bolus: " + (param1 / 100d) + "U Duration: " + param2 + "min");
DetailedBolusInfoStorage.remove(detailedBolusInfo.date);
break;
case DanaRPump.DUALEXTENDEDSTART:
log.debug("EVENT DUALEXTENDEDSTART (" + recordCode + ") " + datetime.toLocaleString() + " Amount: " + (param1 / 100d) + "U Duration: " + param2 + "min");
@ -134,8 +131,12 @@ public class MsgHistoryEvents_v2 extends MessageBase {
log.debug("EVENT PROFILECHANGE (" + recordCode + ") " + datetime.toLocaleString() + " No: " + param1 + " CurrentRate: " + (param2 / 100d) + "U/h");
break;
case DanaRPump.CARBS:
detailedBolusInfo.carbs = param1;
newRecord = MainApp.getConfigBuilder().addToHistoryTreatment(detailedBolusInfo);
DetailedBolusInfo emptyCarbsInfo = new DetailedBolusInfo();
emptyCarbsInfo.carbs = param1;
emptyCarbsInfo.date = datetime.getTime();
emptyCarbsInfo.source = Source.PUMP;
emptyCarbsInfo.pumpId = datetime.getTime();
newRecord = MainApp.getConfigBuilder().addToHistoryTreatment(emptyCarbsInfo);
log.debug((newRecord ? "**NEW** " : "") + "EVENT CARBS (" + recordCode + ") " + datetime.toLocaleString() + " Carbs: " + param1 + "g");
break;
default:

View file

@ -11,6 +11,7 @@ import android.content.IntentFilter;
import android.os.Binder;
import android.os.IBinder;
import android.os.PowerManager;
import android.os.SystemClock;
import com.squareup.otto.Subscribe;
@ -37,7 +38,6 @@ import info.nightscout.androidaps.plugins.Overview.Notification;
import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRPump;
import info.nightscout.androidaps.plugins.PumpDanaR.comm.*;
import info.nightscout.androidaps.plugins.PumpDanaR.events.EventDanaRBolusStart;
import info.nightscout.androidaps.plugins.PumpDanaR.events.EventDanaRNewStatus;
import info.nightscout.androidaps.plugins.PumpDanaRv2.DanaRv2Plugin;
import info.nightscout.androidaps.plugins.PumpDanaRv2.SerialIOThread;
@ -180,9 +180,9 @@ public class DanaRv2ExecutionService extends Service {
try {
mRfcommSocket.connect();
} catch (IOException e) {
//e.printStackTrace();
//log.error("Unhandled exception", e);
if (e.getMessage().contains("socket closed")) {
e.printStackTrace();
log.error("Unhandled exception", e);
break;
}
}
@ -325,7 +325,7 @@ public class DanaRv2ExecutionService extends Service {
NSUpload.uploadError(MainApp.sResources.getString(R.string.approachingdailylimit) + ": " + danaRPump.dailyTotalUnits + "/" + danaRPump.maxDailyTotalUnits + "U");
}
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return true;
}
@ -412,7 +412,6 @@ public class DanaRv2ExecutionService extends Service {
}
if (amount > 0) {
MsgBolusProgress progress = new MsgBolusProgress(amount, t); // initialize static variables
MainApp.bus().post(new EventDanaRBolusStart());
if (!stop.stopped) {
mSerialIOThread.sendMessage(start);
@ -429,9 +428,17 @@ public class DanaRv2ExecutionService extends Service {
}
}
}
waitMsec(3000);
bolusingTreatment = null;
loadEvents();
// run loading history in separate thread and allow bolus dialog to be closed
new Thread(new Runnable() {
@Override
public void run() {
waitMsec(4000);
if (!(isConnected()))
connect("loadEvents");
loadEvents();
}
}).start();
return true;
}
@ -554,10 +561,6 @@ public class DanaRv2ExecutionService extends Service {
}
private void waitMsec(long msecs) {
try {
Thread.sleep(msecs);
} catch (InterruptedException e) {
e.printStackTrace();
}
SystemClock.sleep(msecs);
}
}

View file

@ -1,6 +1,7 @@
package info.nightscout.androidaps.plugins.PumpVirtual;
import android.content.SharedPreferences;
import android.os.SystemClock;
import android.preference.PreferenceManager;
import org.json.JSONException;
@ -217,33 +218,25 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface {
result.success = true;
result.bolusDelivered = detailedBolusInfo.insulin;
result.carbsDelivered = detailedBolusInfo.carbs;
result.enacted = result.bolusDelivered > 0 || result.carbsDelivered > 0;
result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
Double delivering = 0d;
while (delivering < detailedBolusInfo.insulin) {
try {
Thread.sleep(200);
} catch (InterruptedException e) {
}
SystemClock.sleep(200);
EventOverviewBolusProgress bolusingEvent = EventOverviewBolusProgress.getInstance();
bolusingEvent.status = String.format(MainApp.sResources.getString(R.string.bolusdelivering), delivering);
bolusingEvent.percent = Math.min((int) (delivering / detailedBolusInfo.insulin * 100), 100);
MainApp.bus().post(bolusingEvent);
delivering += 0.1d;
}
try {
Thread.sleep(200);
} catch (InterruptedException e) {
}
SystemClock.sleep(200);
EventOverviewBolusProgress bolusingEvent = EventOverviewBolusProgress.getInstance();
bolusingEvent.status = String.format(MainApp.sResources.getString(R.string.bolusdelivered), detailedBolusInfo.insulin);
bolusingEvent.percent = 100;
MainApp.bus().post(bolusingEvent);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
SystemClock.sleep(1000);
if (Config.logPumpComm)
log.debug("Delivering treatment insulin: " + detailedBolusInfo.insulin + "U carbs: " + detailedBolusInfo.carbs + "g " + result);
MainApp.bus().post(new EventVirtualPumpUpdateGui());
@ -415,7 +408,7 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface {
pump.put("reservoir", reservoirInUnits);
pump.put("clock", DateUtil.toISOString(new Date()));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return pump;
}

View file

@ -172,6 +172,10 @@ public class SensitivityWeightedAveragePlugin implements PluginBase, Sensitivity
weightedsum += weight * value;
}
if (weights == 0) {
return new AutosensResult();
}
Profile profile = MainApp.getConfigBuilder().getProfile();
double sens = profile.getIsf();

View file

@ -272,7 +272,7 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface {
@Override
public TemporaryBasal getRealTempBasalFromHistory(long time) {
return (TemporaryBasal) tempBasals.getValueByInterval(time);
return tempBasals.getValueByInterval(time);
}
@Override
@ -360,7 +360,7 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface {
@Override
public ExtendedBolus getExtendedBolusFromHistory(long time) {
return (ExtendedBolus) extendedBoluses.getValueByInterval(time);
return extendedBoluses.getValueByInterval(time);
}
@Override
@ -466,10 +466,16 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface {
initializeTempTargetData();
}
@Nullable
@Override
public TempTarget getTempTargetFromHistory() {
return tempTargets.getValueByInterval(System.currentTimeMillis());
}
@Nullable
@Override
public TempTarget getTempTargetFromHistory(long time) {
return (TempTarget) tempTargets.getValueByInterval(time);
return tempTargets.getValueByInterval(time);
}
@Override

View file

@ -6,7 +6,6 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Paint;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
@ -28,14 +27,11 @@ import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.ProfileIntervals;
import info.nightscout.androidaps.db.ProfileSwitch;
import info.nightscout.androidaps.db.Source;
import info.nightscout.androidaps.db.TempTarget;
import info.nightscout.androidaps.events.EventProfileSwitchChange;
import info.nightscout.androidaps.events.EventTempTargetChange;
import info.nightscout.androidaps.plugins.Common.SubscriberFragment;
import info.nightscout.utils.DateUtil;
import info.nightscout.utils.DecimalFormatter;
import info.nightscout.utils.NSUpload;
import info.nightscout.utils.OKDialog;
import info.nightscout.utils.SP;
/**
@ -61,8 +57,7 @@ public class TreatmentsProfileSwitchFragment extends SubscriberFragment implemen
@Override
public ProfileSwitchViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.treatments_profileswitch_item, viewGroup, false);
ProfileSwitchViewHolder ProfileSwitchViewHolder = new ProfileSwitchViewHolder(v);
return ProfileSwitchViewHolder;
return new ProfileSwitchViewHolder(v);
}
@Override
@ -187,14 +182,18 @@ public class TreatmentsProfileSwitchFragment extends SubscriberFragment implemen
public void onClick(View view) {
switch (view.getId()) {
case R.id.profileswitch_refreshfromnightscout:
OKDialog.show(getActivity(), MainApp.sResources.getString(R.string.confirmation), MainApp.sResources.getString(R.string.refresheventsfromnightscout) + "?", new Runnable() {
@Override
public void run() {
AlertDialog.Builder builder = new AlertDialog.Builder(this.getContext());
builder.setTitle(this.getContext().getString(R.string.confirmation));
builder.setMessage(this.getContext().getString(R.string.refresheventsfromnightscout) + "?");
builder.setPositiveButton(this.getContext().getString(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
MainApp.getDbHelper().resetProfileSwitch();
Intent restartNSClient = new Intent(Intents.ACTION_RESTART);
MainApp.instance().getApplicationContext().sendBroadcast(restartNSClient);
}
});
builder.setNegativeButton(this.getContext().getString(R.string.cancel), null);
builder.show();
break;
}
}

View file

@ -202,9 +202,10 @@ public class ActionStringHandler {
sendError("No recent BG to base calculation on!");
return;
}
DecimalFormat format = new DecimalFormat("0.00");
BolusWizard bolusWizard = new BolusWizard();
bolusWizard.doCalc(profile, carbsAfterConstraints, 0d, useBG ? bgReading.valueToUnits(profile.getUnits()) : 0d, 0d, percentage, useBolusIOB, useBasalIOB, false, false);
bolusWizard.doCalc(profile, null, carbsAfterConstraints, 0d, useBG ? bgReading.valueToUnits(profile.getUnits()) : 0d, 0d, percentage, useBolusIOB, useBasalIOB, false, false);
Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(bolusWizard.calculatedTotalInsulin);
if (insulinAfterConstraints - bolusWizard.calculatedTotalInsulin != 0) {
@ -470,7 +471,7 @@ public class ActionStringHandler {
}
//Check for Temp-Target:
TempTarget tempTarget = MainApp.getConfigBuilder().getTempTargetFromHistory(System.currentTimeMillis());
TempTarget tempTarget = MainApp.getConfigBuilder().getTempTargetFromHistory();
if (tempTarget != null) {
ret += "Temp Target: " + Profile.toTargetRangeString(tempTarget.low, tempTarget.low, Constants.MGDL, profile.getUnits());
ret += "\nuntil: " + DateUtil.timeString(tempTarget.originalEnd());

View file

@ -192,6 +192,10 @@ public class StatuslinePlugin implements PluginBase {
+ DecimalFormatter.to2Decimal(basalIob.basaliob) + ")";
}
Profile profile = MainApp.getConfigBuilder().getProfile();
if (profile == null)
return status;
if (!mPrefs.getBoolean("xdripstatus_showbgi", false)) {
return status;
}

View file

@ -7,6 +7,8 @@ import android.os.Bundle;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.Services.Intents;
@ -16,6 +18,7 @@ import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotificati
import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
public class NSAlarmReceiver extends BroadcastReceiver {
private static Logger log = LoggerFactory.getLogger(NSAlarmReceiver.class);
@Override
public void onReceive(Context context, Intent intent) {
@ -27,7 +30,7 @@ public class NSAlarmReceiver extends BroadcastReceiver {
try {
json = new JSONObject(data);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
return;
}
NSAlarm nsAlarm = new NSAlarm(json);

View file

@ -1,12 +1,11 @@
package info.nightscout.utils;
import java.util.Date;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.data.GlucoseStatus;
import info.nightscout.androidaps.interfaces.TreatmentsInterface;
import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.db.TempTarget;
import info.nightscout.androidaps.interfaces.TreatmentsInterface;
/**
* Created by mike on 11.10.2016.
@ -15,6 +14,7 @@ import info.nightscout.androidaps.data.Profile;
public class BolusWizard {
// Inputs
Profile specificProfile = null;
TempTarget tempTarget;
public Integer carbs = 0;
Double bg = 0d;
Double correction;
@ -33,9 +33,6 @@ public class BolusWizard {
public Double targetBGHigh = 0d;
public Double bgDiff = 0d;
IobTotal bolusIob;
IobTotal basalIob;
public Double insulinFromBG = 0d;
public Double insulinFromCarbs = 0d;
public Double insulingFromBolusIOB = 0d;
@ -50,23 +47,29 @@ public class BolusWizard {
public Double totalBeforePercentageAdjustment = 0d;
public Double carbsEquivalent = 0d;
public Double doCalc(Profile specificProfile, Integer carbs, Double cob, Double bg, Double correction, Boolean includeBolusIOB, Boolean includeBasalIOB, Boolean superBolus, Boolean trend) {
return doCalc(specificProfile, carbs, cob, bg, correction, 100d, includeBolusIOB, includeBasalIOB, superBolus, trend);
public Double doCalc(Profile specificProfile, TempTarget tempTarget, Integer carbs, Double cob, Double bg, Double correction, Boolean includeBolusIOB, Boolean includeBasalIOB, Boolean superBolus, Boolean trend) {
return doCalc(specificProfile, tempTarget, carbs, cob, bg, correction, 100d, includeBolusIOB, includeBasalIOB, superBolus, trend);
}
public Double doCalc(Profile specificProfile, Integer carbs, Double cob, Double bg, Double correction, double percentageCorrection, Boolean includeBolusIOB, Boolean includeBasalIOB, Boolean superBolus, Boolean trend) {
public Double doCalc(Profile specificProfile, TempTarget tempTarget, Integer carbs, Double cob, Double bg, Double correction, double percentageCorrection, Boolean includeBolusIOB, Boolean includeBasalIOB, Boolean superBolus, Boolean trend) {
this.specificProfile = specificProfile;
this.tempTarget = tempTarget;
this.carbs = carbs;
this.bg = bg;
this.correction = correction;
this.includeBolusIOB = includeBolusIOB;
this.includeBasalIOB = includeBasalIOB;
this.superBolus = superBolus;
this.trend = trend;
// Insulin from BG
sens = specificProfile.getIsf();
targetBGLow = specificProfile.getTargetLow();
targetBGHigh = specificProfile.getTargetHigh();
if (tempTarget != null) {
targetBGLow = Profile.fromMgdlToUnits(tempTarget.low, specificProfile.getUnits());
targetBGHigh = Profile.fromMgdlToUnits(tempTarget.high, specificProfile.getUnits());
}
if (bg <= targetBGLow) {
bgDiff = bg - targetBGLow;
} else {
@ -108,13 +111,13 @@ public class BolusWizard {
}
// Total
calculatedTotalInsulin = totalBeforePercentageAdjustment = insulinFromBG + insulinFromTrend + insulinFromCarbs + insulingFromBolusIOB + insulingFromBasalsIOB + insulinFromCorrection + insulinFromSuperBolus + insulinFromCOB;
//percentage
if(totalBeforePercentageAdjustment > 0){
calculatedTotalInsulin = totalBeforePercentageAdjustment*percentageCorrection/100d;
}
calculatedTotalInsulin = insulinFromBG + insulinFromTrend + insulinFromCarbs + insulingFromBolusIOB + insulingFromBasalsIOB + insulinFromCorrection + insulinFromSuperBolus + insulinFromCOB;
// Percentage adjustment
totalBeforePercentageAdjustment = calculatedTotalInsulin;
if (calculatedTotalInsulin > 0) {
calculatedTotalInsulin = calculatedTotalInsulin * percentageCorrection / 100d;
}
if (calculatedTotalInsulin < 0) {
carbsEquivalent = -calculatedTotalInsulin * ic;

View file

@ -85,15 +85,15 @@ public class DateUtil {
}
public static int toSeconds(String hh_colon_mm) {
Pattern p = Pattern.compile("(\\d+):(\\d+)( a.m.| p.m.|)");
Pattern p = Pattern.compile("(\\d+):(\\d+)( a.m.| p.m.| AM | PM)");
Matcher m = p.matcher(hh_colon_mm);
int retval = 0;
if (m.find()) {
retval = SafeParse.stringToInt(m.group(1)) * 60 * 60 + SafeParse.stringToInt(m.group(2)) * 60;
if (m.group(3).equals(" .a.m") && m.group(1).equals("12"))
if ((m.group(3).equals(" a.m.") || m.group(3).equals(" AM")) && m.group(1).equals("12"))
retval -= 12 * 60 * 60;
if (m.group(3).equals(" p.m.") && !m.group(1).equals("12"))
if ((m.group(3).equals(" p.m.") || m.group(3).equals(" PM")) && !(m.group(1).equals("12")))
retval += 12 * 60 * 60;
}
return retval;

View file

@ -76,9 +76,9 @@ public class ImportExportPrefs {
ToastUtils.showToastInUiThread(c, MainApp.sResources.getString(R.string.exported));
} catch (FileNotFoundException e) {
ToastUtils.showToastInUiThread(c, MainApp.sResources.getString(R.string.filenotfound) + " " + file);
e.printStackTrace();
log.error("Unhandled exception", e);
} catch (IOException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
})
@ -127,9 +127,9 @@ public class ImportExportPrefs {
});
} catch (FileNotFoundException e) {
ToastUtils.showToastInUiThread(c, MainApp.sResources.getString(R.string.filenotfound) + " " + file);
e.printStackTrace();
log.error("Unhandled exception", e);
} catch (IOException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
})

View file

@ -6,6 +6,8 @@ import android.text.Spanned;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Iterator;
@ -13,6 +15,7 @@ import java.util.Iterator;
* Created by mike on 11.07.2016.
*/
public class JSONFormatter {
private static Logger log = LoggerFactory.getLogger(JSONFormatter.class);
public static Spanned format(final String jsonString) {
final JsonVisitor visitor = new JsonVisitor(4, ' ');
@ -24,7 +27,7 @@ public class JSONFormatter {
else
return Html.fromHtml(visitor.visit(new JSONObject(jsonString), 0));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
return Html.fromHtml("");
}
}
@ -34,7 +37,7 @@ public class JSONFormatter {
try {
return Html.fromHtml(visitor.visit(object, 0));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
return Html.fromHtml("");
}
}

View file

@ -61,7 +61,7 @@ public class NSUpload {
context.sendBroadcast(intent);
DbLogger.dbAdd(intent, data.toString());
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -98,7 +98,7 @@ public class NSUpload {
DbLogger.dbAdd(intent, data.toString());
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -123,7 +123,7 @@ public class NSUpload {
context.sendBroadcast(intent);
DbLogger.dbAdd(intent, data.toString());
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -151,7 +151,7 @@ public class NSUpload {
context.sendBroadcast(intent);
DbLogger.dbAdd(intent, data.toString());
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -179,7 +179,7 @@ public class NSUpload {
context.sendBroadcast(intent);
DbLogger.dbAdd(intent, data.toString());
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -240,7 +240,7 @@ public class NSUpload {
context.sendBroadcast(intent);
DbLogger.dbAdd(intent, deviceStatus.mongoRecord().toString());
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -264,7 +264,7 @@ public class NSUpload {
if (detailedBolusInfo.carbTime != 0)
data.put("preBolus", detailedBolusInfo.carbTime);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
uploadCareportalEntryToNS(data);
}
@ -286,7 +286,7 @@ public class NSUpload {
data.put("enteredBy", MainApp.instance().getString(R.string.app_name));
uploadCareportalEntryToNS(data);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -315,7 +315,7 @@ public class NSUpload {
context.sendBroadcast(intent);
DbLogger.dbAdd(intent, data.toString());
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -333,7 +333,7 @@ public class NSUpload {
context.sendBroadcast(intent);
DbLogger.dbRemove(intent, _id);
} catch (Exception e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -356,7 +356,7 @@ public class NSUpload {
context.sendBroadcast(intent);
DbLogger.dbAdd(intent, data.toString());
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -372,7 +372,7 @@ public class NSUpload {
data.put("notes", error);
data.put("isAnnouncement", true);
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
bundle.putString("data", data.toString());
Intent intent = new Intent(Intents.ACTION_DATABASE);
@ -394,7 +394,7 @@ public class NSUpload {
data.put("created_at", DateUtil.toISOString(new Date()));
data.put("notes", MainApp.sResources.getString(R.string.androidaps_start));
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
bundle.putString("data", data.toString());
Intent intent = new Intent(Intents.ACTION_DATABASE);

View file

@ -2,6 +2,7 @@ package info.nightscout.utils;
import android.app.Activity;
import android.content.DialogInterface;
import android.os.SystemClock;
import android.support.v7.app.AlertDialog;
import android.support.v7.view.ContextThemeWrapper;
import android.text.Spanned;
@ -28,10 +29,7 @@ public class OKDialog {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
if (runnable != null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
SystemClock.sleep(100);
activity.runOnUiThread(runnable);
}
}
@ -52,10 +50,7 @@ public class OKDialog {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
if (runnable != null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
SystemClock.sleep(100);
activity.runOnUiThread(runnable);
}
}

View file

@ -253,7 +253,7 @@ public class TimeListEdit {
return item.getInt("timeAsSeconds");
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return 0;
}
@ -265,7 +265,7 @@ public class TimeListEdit {
return item.getDouble("value");
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
return 0d;
}
@ -278,7 +278,7 @@ public class TimeListEdit {
return item.getDouble("value");
}
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
return 0d;
@ -305,7 +305,7 @@ public class TimeListEdit {
}
if (save != null) save.run();
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}
@ -322,7 +322,7 @@ public class TimeListEdit {
editItem(index, timeAsSeconds, value1, value2);
if (save != null) save.run();
} catch (JSONException e) {
e.printStackTrace();
log.error("Unhandled exception", e);
}
}

Some files were not shown because too many files have changed in this diff Show more