Merge pull request #429 from MilosKozak/dev

1.53 release
This commit is contained in:
Milos Kozak 2017-09-24 20:31:21 +02:00 committed by GitHub
commit 79ba8b9c3b
120 changed files with 1429 additions and 1851 deletions

View file

@ -44,7 +44,7 @@ android {
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 23 targetSdkVersion 23
versionCode 1500 versionCode 1500
version "1.51" version "1.53"
buildConfigField "String", "VERSION", '"' + version + '"' buildConfigField "String", "VERSION", '"' + version + '"'
buildConfigField "String", "BUILDVERSION", generateGitBuild() 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); final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
if (ev.lock) { if (ev.lock) {
mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "AAPS"); mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "AAPS");
mWakeLock.acquire(); if (!mWakeLock.isHeld())
mWakeLock.acquire();
} else { } else {
if (mWakeLock != null) if (mWakeLock != null && mWakeLock.isHeld())
mWakeLock.release(); mWakeLock.release();
} }
} }
@ -113,7 +114,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
try { // activity may be destroyed try { // activity may be destroyed
setUpTabs(true); setUpTabs(true);
} catch (IllegalStateException e) { } catch (IllegalStateException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
boolean lockScreen = BuildConfig.NSCLIENTOLNY && SP.getBoolean("lockscreen", false); boolean lockScreen = BuildConfig.NSCLIENTOLNY && SP.getBoolean("lockscreen", false);
if (lockScreen) if (lockScreen)
@ -206,7 +207,8 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
@Override @Override
public void onDestroy() { public void onDestroy() {
if (mWakeLock != null) if (mWakeLock != null)
mWakeLock.release(); if (mWakeLock.isHeld())
mWakeLock.release();
super.onDestroy(); super.onDestroy();
} }

View file

@ -4,6 +4,7 @@ import android.app.Application;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.res.Resources; import android.content.res.Resources;
import android.os.SystemClock;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.v4.content.LocalBroadcastManager; 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.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.ConstraintsObjectives.ObjectivesFragment; import info.nightscout.androidaps.plugins.ConstraintsObjectives.ObjectivesFragment;
import info.nightscout.androidaps.plugins.ConstraintsSafety.SafetyPlugin; import info.nightscout.androidaps.plugins.ConstraintsSafety.SafetyPlugin;
import info.nightscout.androidaps.plugins.InsulinFastacting.InsulinFastactingFragment; import info.nightscout.androidaps.plugins.Insulin.InsulinFastactingPlugin;
import info.nightscout.androidaps.plugins.InsulinFastactingProlonged.InsulinFastactingProlongedFragment; import info.nightscout.androidaps.plugins.Insulin.InsulinFastactingProlongedPlugin;
import info.nightscout.androidaps.plugins.InsulinOrefCurves.InsulinOrefFreePeakFragment; import info.nightscout.androidaps.plugins.Insulin.InsulinOrefFreePeakPlugin;
import info.nightscout.androidaps.plugins.InsulinOrefCurves.InsulinOrefRapidActingFragment; import info.nightscout.androidaps.plugins.Insulin.InsulinOrefRapidActingPlugin;
import info.nightscout.androidaps.plugins.InsulinOrefCurves.InsulinOrefUltraRapidActingFragment; import info.nightscout.androidaps.plugins.Insulin.InsulinOrefUltraRapidActingPlugin;
import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin; import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin;
import info.nightscout.androidaps.plugins.Loop.LoopFragment; import info.nightscout.androidaps.plugins.Loop.LoopFragment;
import info.nightscout.androidaps.plugins.NSClientInternal.NSClientInternalFragment; import info.nightscout.androidaps.plugins.NSClientInternal.NSClientInternalFragment;
@ -47,11 +48,11 @@ import info.nightscout.androidaps.plugins.ProfileCircadianPercentage.CircadianPe
import info.nightscout.androidaps.plugins.ProfileLocal.LocalProfileFragment; import info.nightscout.androidaps.plugins.ProfileLocal.LocalProfileFragment;
import info.nightscout.androidaps.plugins.ProfileNS.NSProfileFragment; import info.nightscout.androidaps.plugins.ProfileNS.NSProfileFragment;
import info.nightscout.androidaps.plugins.ProfileSimple.SimpleProfileFragment; import info.nightscout.androidaps.plugins.ProfileSimple.SimpleProfileFragment;
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.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.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.PumpDanaRv2.services.DanaRv2ExecutionService;
import info.nightscout.androidaps.plugins.PumpMDI.MDIPlugin; import info.nightscout.androidaps.plugins.PumpMDI.MDIPlugin;
import info.nightscout.androidaps.plugins.PumpVirtual.VirtualPumpPlugin; import info.nightscout.androidaps.plugins.PumpVirtual.VirtualPumpPlugin;
@ -112,17 +113,17 @@ public class MainApp extends Application {
pluginsList.add(OverviewFragment.getPlugin()); pluginsList.add(OverviewFragment.getPlugin());
pluginsList.add(IobCobCalculatorPlugin.getPlugin()); pluginsList.add(IobCobCalculatorPlugin.getPlugin());
if (Config.ACTION) pluginsList.add(ActionsFragment.getPlugin()); if (Config.ACTION) pluginsList.add(ActionsFragment.getPlugin());
pluginsList.add(InsulinFastactingFragment.getPlugin()); pluginsList.add(InsulinFastactingPlugin.getPlugin());
pluginsList.add(InsulinFastactingProlongedFragment.getPlugin()); pluginsList.add(InsulinFastactingProlongedPlugin.getPlugin());
pluginsList.add(InsulinOrefRapidActingFragment.getPlugin()); pluginsList.add(InsulinOrefRapidActingPlugin.getPlugin());
pluginsList.add(InsulinOrefUltraRapidActingFragment.getPlugin()); pluginsList.add(InsulinOrefUltraRapidActingPlugin.getPlugin());
pluginsList.add(InsulinOrefFreePeakFragment.getPlugin()); pluginsList.add(InsulinOrefFreePeakPlugin.getPlugin());
pluginsList.add(SensitivityOref0Plugin.getPlugin()); pluginsList.add(SensitivityOref0Plugin.getPlugin());
//pluginsList.add(SensitivityAAPSPlugin.getPlugin()); pluginsList.add(SensitivityAAPSPlugin.getPlugin());
//pluginsList.add(SensitivityWeightedAveragePlugin.getPlugin()); pluginsList.add(SensitivityWeightedAveragePlugin.getPlugin());
if (Config.DANAR) pluginsList.add(DanaRFragment.getPlugin()); if (Config.DANAR) pluginsList.add(DanaRPlugin.getPlugin());
if (Config.DANAR) pluginsList.add(DanaRKoreanFragment.getPlugin()); if (Config.DANAR) pluginsList.add(DanaRKoreanPlugin.getPlugin());
if (Config.DANARv2) pluginsList.add(DanaRv2Fragment.getPlugin()); if (Config.DANARv2) pluginsList.add(DanaRv2Plugin.getPlugin());
pluginsList.add(CareportalFragment.getPlugin()); pluginsList.add(CareportalFragment.getPlugin());
if (Config.MDI) pluginsList.add(MDIPlugin.getPlugin()); if (Config.MDI) pluginsList.add(MDIPlugin.getPlugin());
if (Config.VIRTUALPUMP) pluginsList.add(VirtualPumpPlugin.getInstance()); if (Config.VIRTUALPUMP) pluginsList.add(VirtualPumpPlugin.getInstance());
@ -167,10 +168,7 @@ public class MainApp extends Application {
Thread t = new Thread(new Runnable() { Thread t = new Thread(new Runnable() {
@Override @Override
public void run() { public void run() {
try { SystemClock.sleep(5000);
Thread.sleep(5000);
} catch (InterruptedException e) {
}
PumpInterface pump = MainApp.getConfigBuilder(); PumpInterface pump = MainApp.getConfigBuilder();
if (pump != null) if (pump != null)
pump.refreshDataFromPump("Initialization"); pump.refreshDataFromPump("Initialization");

View file

@ -10,11 +10,12 @@ import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment; import android.preference.PreferenceFragment;
import android.preference.PreferenceGroup; import android.preference.PreferenceGroup;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.text.TextUtils;
import info.nightscout.androidaps.events.EventPreferenceChange; import info.nightscout.androidaps.events.EventPreferenceChange;
import info.nightscout.androidaps.events.EventRefreshGui; import info.nightscout.androidaps.events.EventRefreshGui;
import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.plugins.InsulinOrefCurves.InsulinOrefFreePeakPlugin; import info.nightscout.androidaps.plugins.Insulin.InsulinOrefFreePeakPlugin;
import info.nightscout.androidaps.plugins.PumpDanaR.BluetoothDevicePreference; import info.nightscout.androidaps.plugins.PumpDanaR.BluetoothDevicePreference;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRPlugin; import info.nightscout.androidaps.plugins.PumpDanaR.DanaRPlugin;
import info.nightscout.androidaps.plugins.PumpDanaRKorean.DanaRKoreanPlugin; import info.nightscout.androidaps.plugins.PumpDanaRKorean.DanaRKoreanPlugin;
@ -73,7 +74,10 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre
((EditTextPreference) pref).setDialogMessage(editTextPref.getDialogMessage()); ((EditTextPreference) pref).setDialogMessage(editTextPref.getDialogMessage());
pref.setSummary(editTextPref.getText()); pref.setSummary(editTextPref.getText());
} }
} else if(pref.getKey().contains("smscommunicator_allowednumbers") && TextUtils.isEmpty(editTextPref.getText().toString().trim())){
pref.setSummary(MainApp.sResources.getString(R.string.smscommunicator_allowednumbers_summary));
}
}
if (pref instanceof MultiSelectListPreference) { if (pref instanceof MultiSelectListPreference) {
EditTextPreference editTextPref = (EditTextPreference) pref; EditTextPreference editTextPref = (EditTextPreference) pref;
pref.setSummary(editTextPref.getText()); pref.setSummary(editTextPref.getText());

View file

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

View file

@ -244,7 +244,7 @@ public class DataService extends IntentService {
MainApp.bus().post(new EventDismissNotification(Notification.OLD_NSCLIENT)); MainApp.bus().post(new EventDismissNotification(Notification.OLD_NSCLIENT));
} }
} catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
if (ConfigBuilderPlugin.nightscoutVersionCode < Config.SUPPORTEDNSVERSION) { if (ConfigBuilderPlugin.nightscoutVersionCode < Config.SUPPORTEDNSVERSION) {
Notification notification = new Notification(Notification.OLD_NS, MainApp.sResources.getString(R.string.unsupportednsversion), Notification.URGENT); 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) if (targetlow != null)
OverviewPlugin.bgTargetLow = targetlow; OverviewPlugin.bgTargetLow = targetlow;
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
} }
} }
@ -298,7 +298,7 @@ public class DataService extends IntentService {
} }
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
} }
// Handle profile // Handle profile
@ -313,7 +313,7 @@ public class DataService extends IntentService {
if (Config.logIncommingData) if (Config.logIncommingData)
log.debug("Received profileStore: " + activeProfile + " " + profile); log.debug("Received profileStore: " + activeProfile + " " + profile);
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
} }
if (intent.getAction().equals(Intents.ACTION_NEW_TREATMENT)) { if (intent.getAction().equals(Intents.ACTION_NEW_TREATMENT)) {
@ -332,7 +332,7 @@ public class DataService extends IntentService {
} }
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
} }
@ -353,7 +353,7 @@ public class DataService extends IntentService {
} }
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
} }
@ -376,7 +376,7 @@ public class DataService extends IntentService {
} }
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
} }
@ -401,7 +401,7 @@ public class DataService extends IntentService {
} }
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
} }
@ -430,7 +430,7 @@ public class DataService extends IntentService {
} }
} }
} catch (Exception e) { } 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.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Date; import java.util.Date;
@ -9,6 +11,8 @@ import info.nightscout.utils.DateUtil;
import info.nightscout.utils.Round; import info.nightscout.utils.Round;
public class IobTotal { public class IobTotal {
private static Logger log = LoggerFactory.getLogger(IobTotal.class);
public double iob; public double iob;
public double activity; public double activity;
public double bolussnooze; public double bolussnooze;
@ -86,7 +90,7 @@ public class IobTotal {
json.put("activity", activity); json.put("activity", activity);
json.put("time", DateUtil.toISOString(new Date())); json.put("time", DateUtil.toISOString(new Date()));
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
return json; return json;
} }
@ -100,7 +104,7 @@ public class IobTotal {
json.put("activity", activity); json.put("activity", activity);
json.put("time", DateUtil.toISOString(new Date(time))); json.put("time", DateUtil.toISOString(new Date(time)));
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
return json; return json;
} }

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -21,6 +21,9 @@ import android.widget.TextView;
import com.crashlytics.android.answers.Answers; import com.crashlytics.android.answers.Answers;
import com.crashlytics.android.answers.CustomEvent; import com.crashlytics.android.answers.CustomEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import info.nightscout.androidaps.Constants; 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.db.Source;
import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; 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.DecimalFormatter;
import info.nightscout.utils.PlusMinusEditText; import info.nightscout.utils.PlusMinusEditText;
import info.nightscout.utils.SP; import info.nightscout.utils.SP;
import info.nightscout.utils.SafeParse; import info.nightscout.utils.SafeParse;
public class FillDialog extends DialogFragment implements OnClickListener { public class FillDialog extends DialogFragment implements OnClickListener {
private static Logger log = LoggerFactory.getLogger(FillDialog.class);
Button deliverButton; Button deliverButton;
TextView insulin; 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) detailedBolusInfo.isValid = false; // do not count it in IOB (for pump history)
PumpEnactResult result = pump.deliverTreatment(detailedBolusInfo); PumpEnactResult result = pump.deliverTreatment(detailedBolusInfo);
if (!result.success) { if (!result.success) {
AlertDialog.Builder builder = new AlertDialog.Builder(context); try {
builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror)); AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage(result.comment); builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror));
builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null); builder.setMessage(result.comment);
builder.show(); builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null);
builder.show();
} catch (WindowManager.BadTokenException | NullPointerException 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.setNegativeButton(getString(R.string.cancel), null);
builder.show(); builder.show();
dismiss(); dismiss();
} catch (Exception e) { } catch (RuntimeException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
} }

View file

@ -10,6 +10,7 @@ import android.support.v7.app.AlertDialog;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.RadioButton; import android.widget.RadioButton;
@ -17,6 +18,9 @@ import android.widget.RadioButton;
import com.crashlytics.android.answers.Answers; import com.crashlytics.android.answers.Answers;
import com.crashlytics.android.answers.CustomEvent; import com.crashlytics.android.answers.CustomEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.Constants;
@ -24,10 +28,13 @@ import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.interfaces.PumpInterface; 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.PlusMinusEditText;
import info.nightscout.utils.SafeParse; import info.nightscout.utils.SafeParse;
public class NewExtendedBolusDialog extends DialogFragment implements View.OnClickListener { public class NewExtendedBolusDialog extends DialogFragment implements View.OnClickListener {
private static Logger log = LoggerFactory.getLogger(NewExtendedBolusDialog.class);
PlusMinusEditText editInsulin; PlusMinusEditText editInsulin;
PlusMinusEditText editDuration; PlusMinusEditText editDuration;
@ -99,11 +106,17 @@ public class NewExtendedBolusDialog extends DialogFragment implements View.OnCli
public void run() { public void run() {
PumpEnactResult result = pump.setExtendedBolus(finalInsulin, finalDurationInMinutes); PumpEnactResult result = pump.setExtendedBolus(finalInsulin, finalDurationInMinutes);
if (!result.success) { if (!result.success) {
try {
AlertDialog.Builder builder = new AlertDialog.Builder(context); AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(context.getString(R.string.treatmentdeliveryerror)); builder.setTitle(context.getString(R.string.treatmentdeliveryerror));
builder.setMessage(result.comment); builder.setMessage(result.comment);
builder.setPositiveButton(context.getString(R.string.ok), null); builder.setPositiveButton(context.getString(R.string.ok), null);
builder.show(); builder.show();
} catch (WindowManager.BadTokenException | NullPointerException 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(); dismiss();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
break; break;
case R.id.cancel: 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.Answers;
import com.crashlytics.android.answers.CustomEvent; import com.crashlytics.android.answers.CustomEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
@ -32,6 +35,7 @@ import info.nightscout.utils.PlusMinusEditText;
import info.nightscout.utils.SafeParse; import info.nightscout.utils.SafeParse;
public class NewTempBasalDialog extends DialogFragment implements View.OnClickListener, RadioGroup.OnCheckedChangeListener { public class NewTempBasalDialog extends DialogFragment implements View.OnClickListener, RadioGroup.OnCheckedChangeListener {
private static Logger log = LoggerFactory.getLogger(NewTempBasalDialog.class);
RadioButton percentRadio; RadioButton percentRadio;
RadioButton absoluteRadio; RadioButton absoluteRadio;
@ -180,7 +184,7 @@ public class NewTempBasalDialog extends DialogFragment implements View.OnClickLi
dismiss(); dismiss();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
break; break;
case R.id.cancel: case R.id.cancel:

View file

@ -9,6 +9,7 @@ import android.text.Layout;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.squareup.otto.Subscribe; import com.squareup.otto.Subscribe;
@ -16,10 +17,13 @@ import com.squareup.otto.Subscribe;
import info.nightscout.androidaps.BuildConfig; import info.nightscout.androidaps.BuildConfig;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.ProfileStore;
import info.nightscout.androidaps.db.CareportalEvent; import info.nightscout.androidaps.db.CareportalEvent;
import info.nightscout.androidaps.events.EventCareportalEventChange; import info.nightscout.androidaps.events.EventCareportalEventChange;
import info.nightscout.androidaps.plugins.Careportal.Dialogs.NewNSTreatmentDialog; import info.nightscout.androidaps.plugins.Careportal.Dialogs.NewNSTreatmentDialog;
import info.nightscout.androidaps.plugins.Common.SubscriberFragment; import info.nightscout.androidaps.plugins.Common.SubscriberFragment;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.Overview.OverviewFragment; import info.nightscout.androidaps.plugins.Overview.OverviewFragment;
public class CareportalFragment extends SubscriberFragment implements View.OnClickListener { public class CareportalFragment extends SubscriberFragment implements View.OnClickListener {
@ -32,6 +36,8 @@ public class CareportalFragment extends SubscriberFragment implements View.OnCli
TextView pbage; TextView pbage;
View statsLayout; View statsLayout;
LinearLayout butonsLayout;
View noProfileView;
static public CareportalPlugin getPlugin() { static public CareportalPlugin getPlugin() {
if (careportalPlugin == null) { if (careportalPlugin == null) {
@ -95,6 +101,18 @@ public class CareportalFragment extends SubscriberFragment implements View.OnCli
statsLayout = (View) view.findViewById(R.id.careportal_stats); 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) if (BuildConfig.NSCLIENTOLNY)
statsLayout.setVisibility(View.GONE); // visible on overview 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); data.put("relative", enteredInsulin * (100 - SafeParse.stringToDouble(editSplit.getText())) / 100 / SafeParse.stringToDouble(editDuration.getText()) * 60);
} }
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
return data; return data;
} }
@ -577,7 +577,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
ret += "\n"; ret += "\n";
} }
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
return ret; return ret;
@ -596,7 +596,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
try { try {
doProfileSwitch(profileStore, data.getString("profile"), data.getInt("duration")); doProfileSwitch(profileStore, data.getString("profile"), data.getInt("duration"));
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
} }
} else if (options.executeTempTarget) { } else if (options.executeTempTarget) {
@ -623,13 +623,13 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
NSUpload.uploadCareportalEntryToNS(data); NSUpload.uploadCareportalEntryToNS(data);
Answers.getInstance().logCustom(new CustomEvent("TempTarget")); Answers.getInstance().logCustom(new CustomEvent("TempTarget"));
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
} }
}); });
} }
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
} else { } else {
NSUpload.uploadCareportalEntryToNS(data); NSUpload.uploadCareportalEntryToNS(data);

View file

@ -2,10 +2,8 @@ package info.nightscout.androidaps.plugins.ConfigBuilder;
import android.content.Context; import android.content.Context;
import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.util.DisplayMetrics;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -22,7 +20,6 @@ import com.crashlytics.android.answers.CustomEvent;
import java.util.ArrayList; import java.util.ArrayList;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.events.EventConfigBuilderChange; 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.ProfileInterface;
import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.interfaces.SensitivityInterface; 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.ProfileNS.NSProfilePlugin;
import info.nightscout.androidaps.plugins.PumpVirtual.VirtualPumpPlugin; import info.nightscout.androidaps.plugins.PumpVirtual.VirtualPumpPlugin;
import info.nightscout.androidaps.plugins.SensitivityOref0.SensitivityOref0Plugin; import info.nightscout.androidaps.plugins.SensitivityOref0.SensitivityOref0Plugin;
@ -58,8 +55,6 @@ public class ConfigBuilderFragment extends Fragment {
TextView pumpLabel; TextView pumpLabel;
ListView loopListView; ListView loopListView;
TextView loopLabel; TextView loopLabel;
ListView treatmentsListView;
TextView treatmentsLabel;
ListView profileListView; ListView profileListView;
TextView profileLabel; TextView profileLabel;
ListView apsListView; ListView apsListView;
@ -76,27 +71,16 @@ public class ConfigBuilderFragment extends Fragment {
PluginCustomAdapter bgsourceDataAdapter = null; PluginCustomAdapter bgsourceDataAdapter = null;
PluginCustomAdapter pumpDataAdapter = null; PluginCustomAdapter pumpDataAdapter = null;
PluginCustomAdapter loopDataAdapter = null; PluginCustomAdapter loopDataAdapter = null;
PluginCustomAdapter treatmentsDataAdapter = null;
PluginCustomAdapter profileDataAdapter = null; PluginCustomAdapter profileDataAdapter = null;
PluginCustomAdapter apsDataAdapter = null; PluginCustomAdapter apsDataAdapter = null;
PluginCustomAdapter constraintsDataAdapter = null; PluginCustomAdapter constraintsDataAdapter = null;
PluginCustomAdapter generalDataAdapter = null; PluginCustomAdapter generalDataAdapter = null;
boolean smallWidth;
// TODO: sorting
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.configbuilder_fragment, container, false); 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); insulinListView = (ListView) view.findViewById(R.id.configbuilder_insulinlistview);
sensitivityListView = (ListView) view.findViewById(R.id.configbuilder_sensitivitylistview); sensitivityListView = (ListView) view.findViewById(R.id.configbuilder_sensitivitylistview);
bgsourceListView = (ListView) view.findViewById(R.id.configbuilder_bgsourcelistview); 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); pumpLabel = (TextView) view.findViewById(R.id.configbuilder_pumplabel);
loopListView = (ListView) view.findViewById(R.id.configbuilder_looplistview); loopListView = (ListView) view.findViewById(R.id.configbuilder_looplistview);
loopLabel = (TextView) view.findViewById(R.id.configbuilder_looplabel); 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); profileListView = (ListView) view.findViewById(R.id.configbuilder_profilelistview);
profileLabel = (TextView) view.findViewById(R.id.configbuilder_profilelabel); profileLabel = (TextView) view.findViewById(R.id.configbuilder_profilelabel);
apsListView = (ListView) view.findViewById(R.id.configbuilder_apslistview); apsListView = (ListView) view.findViewById(R.id.configbuilder_apslistview);
@ -141,48 +123,43 @@ public class ConfigBuilderFragment extends Fragment {
} }
void setViews() { 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); insulinListView.setAdapter(insulinDataAdapter);
setListViewHeightBasedOnChildren(insulinListView); 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); bgsourceListView.setAdapter(bgsourceDataAdapter);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.BGSOURCE).size() == 0) if (MainApp.getSpecificPluginsVisibleInList(PluginBase.BGSOURCE).size() == 0)
bgsourceLabel.setVisibility(View.GONE); bgsourceLabel.setVisibility(View.GONE);
setListViewHeightBasedOnChildren(bgsourceListView); 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); pumpListView.setAdapter(pumpDataAdapter);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.PUMP).size() == 0) if (MainApp.getSpecificPluginsVisibleInList(PluginBase.PUMP).size() == 0)
pumpLabel.setVisibility(View.GONE); pumpLabel.setVisibility(View.GONE);
setListViewHeightBasedOnChildren(pumpListView); 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); loopListView.setAdapter(loopDataAdapter);
setListViewHeightBasedOnChildren(loopListView); setListViewHeightBasedOnChildren(loopListView);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.LOOP).size() == 0) if (MainApp.getSpecificPluginsVisibleInList(PluginBase.LOOP).size() == 0)
loopLabel.setVisibility(View.GONE); loopLabel.setVisibility(View.GONE);
treatmentsDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.TREATMENT), PluginBase.TREATMENT); profileDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(ProfileInterface.class, PluginBase.PROFILE), PluginBase.PROFILE);
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);
profileListView.setAdapter(profileDataAdapter); profileListView.setAdapter(profileDataAdapter);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.PROFILE).size() == 0) if (MainApp.getSpecificPluginsVisibleInList(PluginBase.PROFILE).size() == 0)
profileLabel.setVisibility(View.GONE); profileLabel.setVisibility(View.GONE);
setListViewHeightBasedOnChildren(profileListView); 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); apsListView.setAdapter(apsDataAdapter);
setListViewHeightBasedOnChildren(apsListView); setListViewHeightBasedOnChildren(apsListView);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.APS).size() == 0) if (MainApp.getSpecificPluginsVisibleInList(PluginBase.APS).size() == 0)
apsLabel.setVisibility(View.GONE); 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); sensitivityListView.setAdapter(sensivityDataAdapter);
setListViewHeightBasedOnChildren(sensitivityListView); 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); constraintsListView.setAdapter(constraintsDataAdapter);
setListViewHeightBasedOnChildren(constraintsListView); setListViewHeightBasedOnChildren(constraintsListView);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.CONSTRAINTS).size() == 0) if (MainApp.getSpecificPluginsVisibleInList(PluginBase.CONSTRAINTS).size() == 0)
constraintsLabel.setVisibility(View.GONE); 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); generalListView.setAdapter(generalDataAdapter);
setListViewHeightBasedOnChildren(generalListView); setListViewHeightBasedOnChildren(generalListView);
@ -217,7 +194,7 @@ public class ConfigBuilderFragment extends Fragment {
PluginViewHolder holder = null; PluginViewHolder holder = null;
if (view == 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 = new PluginViewHolder();
holder.name = (TextView) view.findViewById(R.id.configbuilder_simpleitem_name); 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; return view;
} }

View file

@ -185,7 +185,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
if (SP.contains(settingVisible)) if (SP.contains(settingVisible))
p.setFragmentVisible(type, SP.getBoolean(settingVisible, true) && SP.getBoolean(settingEnabled, true)); p.setFragmentVisible(type, SP.getBoolean(settingVisible, true) && SP.getBoolean(settingEnabled, true));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
} }
} }
@ -890,6 +890,12 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
return newRecordCreated; return newRecordCreated;
} }
@Override
@Nullable
public TempTarget getTempTargetFromHistory() {
return activeTreatments.getTempTargetFromHistory(System.currentTimeMillis());
}
@Override @Override
@Nullable @Nullable
public TempTarget getTempTargetFromHistory(long time) { public TempTarget getTempTargetFromHistory(long time) {
@ -989,7 +995,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
MainApp.bus().post(new EventNewNotification(notarget)); 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\"}}")); 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) { } catch (JSONException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
return null; return null;
} }

View file

@ -227,7 +227,7 @@ public class ObjectivesPlugin implements PluginBase, ConstraintsInterface {
o.started = new Date(SP.getLong("Objectives" + num + "started", 0L)); o.started = new Date(SP.getLong("Objectives" + num + "started", 0L));
o.accomplished = new Date(SP.getLong("Objectives" + num + "accomplished", 0L)); o.accomplished = new Date(SP.getLong("Objectives" + num + "accomplished", 0L));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
} }
bgIsAvailableInNS = SP.getBoolean("Objectives" + "bgIsAvailableInNS", false); bgIsAvailableInNS = SP.getBoolean("Objectives" + "bgIsAvailableInNS", false);
@ -235,7 +235,7 @@ public class ObjectivesPlugin implements PluginBase, ConstraintsInterface {
try { try {
manualEnacts = SP.getInt("Objectives" + "manualEnacts", 0); manualEnacts = SP.getInt("Objectives" + "manualEnacts", 0);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
if (Config.logPrefsChange) if (Config.logPrefsChange)
log.debug("Objectives loaded"); 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.content.Context;
import android.graphics.Color; 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.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
@ -17,6 +17,14 @@ public class InsulinFastactingPlugin implements PluginBase, InsulinInterface {
private static boolean fragmentEnabled = true; private static boolean fragmentEnabled = true;
private static boolean fragmentVisible = false; private static boolean fragmentVisible = false;
private static InsulinFastactingPlugin plugin = null;
public static InsulinFastactingPlugin getPlugin() {
if (plugin == null)
plugin = new InsulinFastactingPlugin();
return plugin;
}
@Override @Override
public int getType() { public int getType() {
return INSULIN; return INSULIN;
@ -24,7 +32,7 @@ public class InsulinFastactingPlugin implements PluginBase, InsulinInterface {
@Override @Override
public String getFragmentClass() { public String getFragmentClass() {
return InsulinFastactingFragment.class.getName(); return InsulinFragment.class.getName();
} }
@Override @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.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
@ -17,6 +17,14 @@ public class InsulinFastactingProlongedPlugin implements PluginBase, InsulinInte
private static boolean fragmentEnabled = false; private static boolean fragmentEnabled = false;
private static boolean fragmentVisible = false; private static boolean fragmentVisible = false;
private static InsulinFastactingProlongedPlugin plugin = null;
public static InsulinFastactingProlongedPlugin getPlugin() {
if (plugin == null)
plugin = new InsulinFastactingProlongedPlugin();
return plugin;
}
@Override @Override
public int getType() { public int getType() {
return INSULIN; return INSULIN;
@ -24,7 +32,7 @@ public class InsulinFastactingProlongedPlugin implements PluginBase, InsulinInte
@Override @Override
public String getFragmentClass() { public String getFragmentClass() {
return InsulinFastactingProlongedFragment.class.getName(); return InsulinFragment.class.getName();
} }
@Override @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.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
@ -14,13 +14,7 @@ import info.nightscout.androidaps.R;
* Created by mike on 17.04.2017. * Created by mike on 17.04.2017.
*/ */
public class InsulinFastactingFragment extends Fragment { public class InsulinFragment extends Fragment {
static InsulinFastactingPlugin insulinFastactingPlugin = new InsulinFastactingPlugin();
static public InsulinFastactingPlugin getPlugin() {
return insulinFastactingPlugin;
}
TextView insulinName; TextView insulinName;
TextView insulinComment; TextView insulinComment;
TextView insulinDia; TextView insulinDia;
@ -47,10 +41,10 @@ public class InsulinFastactingFragment extends Fragment {
} }
private void updateGUI() { private void updateGUI() {
insulinName.setText(insulinFastactingPlugin.getFriendlyName()); insulinName.setText(MainApp.getConfigBuilder().getActiveInsulin().getFriendlyName());
insulinComment.setText(insulinFastactingPlugin.getComment()); insulinComment.setText(MainApp.getConfigBuilder().getActiveInsulin().getComment());
insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + Double.toString(insulinFastactingPlugin.getDia()) + "h"); insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + Double.toString(MainApp.getConfigBuilder().getActiveInsulin().getDia()) + "h");
insulinGraph.show(insulinFastactingPlugin); 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.Constants;
import info.nightscout.androidaps.MainApp; 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.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
@ -13,6 +13,14 @@ public class InsulinOrefFreePeakPlugin extends InsulinOrefBasePlugin {
private static boolean fragmentEnabled = false; private static boolean fragmentEnabled = false;
private static boolean fragmentVisible = 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; public static final int DEFAULT_PEAK = 75;
@Override @Override
@ -27,7 +35,7 @@ public class InsulinOrefFreePeakPlugin extends InsulinOrefBasePlugin {
@Override @Override
public String getFragmentClass() { public String getFragmentClass() {
return InsulinOrefFreePeakFragment.class.getName(); return InsulinFragment.class.getName();
} }
@Override @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.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
@ -12,6 +12,14 @@ public class InsulinOrefRapidActingPlugin extends InsulinOrefBasePlugin {
private static boolean fragmentEnabled = false; private static boolean fragmentEnabled = false;
private static boolean fragmentVisible = 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; public static final int PEAK = 75;
@Override @Override
@ -26,7 +34,7 @@ public class InsulinOrefRapidActingPlugin extends InsulinOrefBasePlugin {
@Override @Override
public String getFragmentClass() { public String getFragmentClass() {
return InsulinOrefRapidActingFragment.class.getName(); return InsulinFragment.class.getName();
} }
@Override @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.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
@ -12,6 +12,14 @@ public class InsulinOrefUltraRapidActingPlugin extends InsulinOrefBasePlugin {
private static boolean fragmentEnabled = false; private static boolean fragmentEnabled = false;
private static boolean fragmentVisible = 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; public static final int PEAK = 55;
@Override @Override
@ -26,7 +34,7 @@ public class InsulinOrefUltraRapidActingPlugin extends InsulinOrefBasePlugin {
@Override @Override
public String getFragmentClass() { public String getFragmentClass() {
return InsulinOrefUltraRapidActingFragment.class.getName(); return InsulinFragment.class.getName();
} }
@Override @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.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** /**
* Created by mike on 06.01.2017. * Created by mike on 06.01.2017.
*/ */
public class AutosensResult { public class AutosensResult {
private static Logger log = LoggerFactory.getLogger(AutosensResult.class);
//default values to show when autosens algorithm is not called //default values to show when autosens algorithm is not called
public double ratio = 1d; public double ratio = 1d;
@ -24,7 +27,7 @@ public class AutosensResult {
ret.put("sensResult", sensResult); ret.put("sensResult", sensResult);
ret.put("ratio", ratio); ret.put("ratio", ratio);
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
return ret; return ret;
} }

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -112,7 +112,7 @@ public class OpenAPSAMAFragment extends SubscriberFragment implements View.OnCli
JSONArray iobArray = new JSONArray(determineBasalAdapterAMAJS.getIobDataParam()); 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))); iobDataView.setText(String.format(MainApp.sResources.getString(R.string.array_of_elements), iobArray.length()) + "\n" + JSONFormatter.format(iobArray.getString(0)));
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
iobDataView.setText("JSONException"); iobDataView.setText("JSONException");
} }
profileView.setText(JSONFormatter.format(determineBasalAdapterAMAJS.getProfileParam())); 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 maxIob = SP.getDouble("openapsma_max_iob", 1.5d);
double maxBasal = SP.getDouble("openapsma_max_basal", 1d); double maxBasal = SP.getDouble("openapsma_max_basal", 1d);
double minBg = Profile.toMgdl(profile.getTargetLow(), units); double minBg = Profile.toMgdl(profile.getTargetLow(), units);
double maxBg = Profile.toMgdl(profile.getTargetHigh(), units); double maxBg = Profile.toMgdl(profile.getTargetHigh(), units);
double targetBg = (minBg + maxBg) / 2; double targetBg = (minBg + maxBg) / 2;
minBg = Round.roundTo(minBg, 0.1d); minBg = Round.roundTo(minBg, 0.1d);
@ -242,7 +242,7 @@ public class OpenAPSAMAPlugin implements PluginBase, APSInterface {
try { try {
determineBasalResultAMA.json.put("timestamp", DateUtil.toISOString(now)); determineBasalResultAMA.json.put("timestamp", DateUtil.toISOString(now));
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
lastDetermineBasalAdapterAMAJS = determineBasalAdapterAMAJS; lastDetermineBasalAdapterAMAJS = determineBasalAdapterAMAJS;

View file

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

View file

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

View file

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

View file

@ -3,6 +3,7 @@ package info.nightscout.androidaps.plugins.Overview.Dialogs;
import android.app.Activity; import android.app.Activity;
import android.os.Bundle; import android.os.Bundle;
import android.os.SystemClock;
import android.support.v4.app.DialogFragment; import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -22,7 +23,6 @@ import info.nightscout.androidaps.events.EventPumpStatusChanged;
import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.Overview.events.EventDismissBolusprogressIfRunning; import info.nightscout.androidaps.plugins.Overview.events.EventDismissBolusprogressIfRunning;
import info.nightscout.androidaps.plugins.Overview.events.EventOverviewBolusProgress; import info.nightscout.androidaps.plugins.Overview.events.EventOverviewBolusProgress;
import info.nightscout.androidaps.plugins.PumpDanaR.events.EventDanaRBolusStart;
public class BolusProgressDialog extends DialogFragment implements View.OnClickListener { public class BolusProgressDialog extends DialogFragment implements View.OnClickListener {
private static Logger log = LoggerFactory.getLogger(BolusProgressDialog.class); 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 bolusEnded = false;
public static boolean running = true; public static boolean running = true;
boolean started = false;
public BolusProgressDialog() { public BolusProgressDialog() {
super(); super();
} }
@ -123,11 +121,6 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL
} }
} }
@Subscribe
public void onStatusEvent(final EventDanaRBolusStart ev) {
started = true;
}
@Subscribe @Subscribe
public void onStatusEvent(final EventDismissBolusprogressIfRunning ev) { public void onStatusEvent(final EventDismissBolusprogressIfRunning ev) {
if(BolusProgressDialog.running){ if(BolusProgressDialog.running){
@ -156,11 +149,7 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL
Thread t = new Thread(new Runnable() { Thread t = new Thread(new Runnable() {
@Override @Override
public void run() { public void run() {
try { SystemClock.sleep(5000);
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
BolusProgressDialog.bolusEnded = true; BolusProgressDialog.bolusEnded = true;
Activity activity = getActivity(); Activity activity = getActivity();
if (activity != null) { if (activity != null) {
@ -171,7 +160,7 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL
try { try {
dismiss(); dismiss();
} catch (Exception e) { } 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 android.widget.Spinner;
import org.json.JSONException; import org.json.JSONException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
@ -27,6 +29,7 @@ import info.nightscout.utils.DateUtil;
import info.nightscout.utils.SafeParse; import info.nightscout.utils.SafeParse;
public class EditQuickWizardDialog extends DialogFragment implements View.OnClickListener { public class EditQuickWizardDialog extends DialogFragment implements View.OnClickListener {
private static Logger log = LoggerFactory.getLogger(EditQuickWizardDialog.class);
QuickWizard.QuickWizardEntry entry = new QuickWizard().newEmptyItem(); QuickWizard.QuickWizardEntry entry = new QuickWizard().newEmptyItem();
QuickWizard quickWizard = MainApp.getSpecificPlugin(OverviewPlugin.class).quickWizard; 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()); int validToInt = DateUtil.toSeconds(toSpinner.getSelectedItem().toString());
entry.storage.put("validTo", validToInt); entry.storage.put("validTo", validToInt);
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
quickWizard.addOrUpdate(entry); quickWizard.addOrUpdate(entry);
dismiss(); dismiss();

View file

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

View file

@ -9,6 +9,7 @@ import android.os.HandlerThread;
import android.support.v4.app.DialogFragment; import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog; import android.support.v7.app.AlertDialog;
import android.text.Editable; import android.text.Editable;
import android.text.Html;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; 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.CareportalEvent;
import info.nightscout.androidaps.db.DatabaseHelper; import info.nightscout.androidaps.db.DatabaseHelper;
import info.nightscout.androidaps.db.Source; import info.nightscout.androidaps.db.Source;
import info.nightscout.androidaps.db.TempTarget;
import info.nightscout.androidaps.events.EventNewBG; import info.nightscout.androidaps.events.EventNewBG;
import info.nightscout.androidaps.events.EventRefreshOverview; import info.nightscout.androidaps.events.EventRefreshOverview;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.Loop.LoopPlugin; import info.nightscout.androidaps.plugins.Loop.LoopPlugin;
import info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin; import info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin;
import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateGui; 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.BolusWizard;
import info.nightscout.utils.DateUtil; import info.nightscout.utils.DateUtil;
import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.DecimalFormatter;
@ -73,6 +77,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
TextView bgInsulin; TextView bgInsulin;
TextView bgUnits; TextView bgUnits;
CheckBox bgCheckbox; CheckBox bgCheckbox;
CheckBox ttCheckbox;
TextView carbs; TextView carbs;
TextView carbsInsulin; TextView carbsInsulin;
TextView bolusIobInsulin; TextView bolusIobInsulin;
@ -216,17 +221,21 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
cobInsulin = (TextView) view.findViewById(R.id.treatments_wizard_cobinsulin); cobInsulin = (TextView) view.findViewById(R.id.treatments_wizard_cobinsulin);
bgCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_bgcheckbox); 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); bolusIobCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_bolusiobcheckbox);
basalIobCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_basaliobcheckbox); basalIobCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_basaliobcheckbox);
superbolusCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_sbcheckbox); superbolusCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_sbcheckbox);
bgtrendCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_bgtrendcheckbox); loadCheckedStates();
cobCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_cobcheckbox);
bgCheckbox.setOnCheckedChangeListener(this); bgCheckbox.setOnCheckedChangeListener(this);
ttCheckbox.setOnCheckedChangeListener(this);
bgtrendCheckbox.setOnCheckedChangeListener(this);
cobCheckbox.setOnCheckedChangeListener(this);
basalIobCheckbox.setOnCheckedChangeListener(this); basalIobCheckbox.setOnCheckedChangeListener(this);
bolusIobCheckbox.setOnCheckedChangeListener(this); bolusIobCheckbox.setOnCheckedChangeListener(this);
superbolusCheckbox.setOnCheckedChangeListener(this); superbolusCheckbox.setOnCheckedChangeListener(this);
bgtrendCheckbox.setOnCheckedChangeListener(this);
cobCheckbox.setOnCheckedChangeListener(this);
profileSpinner = (Spinner) view.findViewById(R.id.treatments_wizard_profile); profileSpinner = (Spinner) view.findViewById(R.id.treatments_wizard_profile);
profileSpinner.setOnItemSelectedListener(this); profileSpinner.setOnItemSelectedListener(this);
@ -253,9 +262,27 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
@Override @Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
saveCheckedStates();
ttCheckbox.setEnabled(bgCheckbox.isChecked() && MainApp.getConfigBuilder().getTempTargetFromHistory() != null);
calculateInsulin(); 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 @Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
calculateInsulin(); calculateInsulin();
@ -274,13 +301,15 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
case R.id.ok: case R.id.ok:
if (calculatedTotalInsulin > 0d || calculatedCarbs > 0d) { if (calculatedTotalInsulin > 0d || calculatedCarbs > 0d) {
DecimalFormat formatNumber2decimalplaces = new DecimalFormat("0.00"); DecimalFormat formatNumber2decimalplaces = new DecimalFormat("0.00");
String confirmMessage = getString(R.string.entertreatmentquestion); String confirmMessage = getString(R.string.entertreatmentquestion);
Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(calculatedTotalInsulin); Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(calculatedTotalInsulin);
Integer carbsAfterConstraints = MainApp.getConfigBuilder().applyCarbsConstraints(calculatedCarbs); Integer carbsAfterConstraints = MainApp.getConfigBuilder().applyCarbsConstraints(calculatedCarbs);
confirmMessage += "\n" + getString(R.string.bolus) + ": " + formatNumber2decimalplaces.format(insulinAfterConstraints) + "U"; confirmMessage += "<br/>" + getString(R.string.bolus) + ": " + "<font color='" + MainApp.sResources.getColor(R.color.bolus) + "'>" + formatNumber2decimalplaces.format(insulinAfterConstraints) + "U" + "</font>";
confirmMessage += "\n" + getString(R.string.carbs) + ": " + carbsAfterConstraints + "g"; confirmMessage += "<br/>" + getString(R.string.carbs) + ": " + carbsAfterConstraints + "g";
if (insulinAfterConstraints - calculatedTotalInsulin != 0 || !carbsAfterConstraints.equals(calculatedCarbs)) { if (insulinAfterConstraints - calculatedTotalInsulin != 0 || !carbsAfterConstraints.equals(calculatedCarbs)) {
AlertDialog.Builder builder = new AlertDialog.Builder(context); 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); AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(MainApp.sResources.getString(R.string.confirmation)); 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() { builder.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) { public void onClick(DialogInterface dialog, int id) {
if (finalInsulinAfterConstraints > 0 || finalCarbsAfterConstraints > 0) { if (finalInsulinAfterConstraints > 0 || finalCarbsAfterConstraints > 0) {
@ -332,7 +361,17 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
detailedBolusInfo.source = Source.USER; detailedBolusInfo.source = Source.USER;
result = pump.deliverTreatment(detailedBolusInfo); result = pump.deliverTreatment(detailedBolusInfo);
if (!result.success) { 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 | NullPointerException 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(); BgReading lastBg = DatabaseHelper.actualBg();
if (lastBg != null) { 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); editBg.removeTextChangedListener(textWatcher);
//bgInput.setText(lastBg.valueToUnitsToString(units)); //bgInput.setText(lastBg.valueToUnitsToString(units));
editBg.setValue(lastBg.valueToUnits(units)); editBg.setValue(lastBg.valueToUnits(units));
editBg.addTextChangedListener(textWatcher); editBg.addTextChangedListener(textWatcher);
} else { } else {
bg.setText("");
bgInsulin.setText("");
editBg.removeTextChangedListener(textWatcher); editBg.removeTextChangedListener(textWatcher);
//bgInput.setText(""); //bgInput.setText("");
editBg.setValue(0d); editBg.setValue(0d);
editBg.addTextChangedListener(textWatcher); editBg.addTextChangedListener(textWatcher);
} }
ttCheckbox.setEnabled(MainApp.getConfigBuilder().getTempTargetFromHistory() != null);
// IOB calculation // IOB calculation
MainApp.getConfigBuilder().updateTotalIOBTreatments(); MainApp.getConfigBuilder().updateTotalIOBTreatments();
@ -458,6 +483,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
} }
c_bg = bgCheckbox.isChecked() ? c_bg : 0d; c_bg = bgCheckbox.isChecked() ? c_bg : 0d;
TempTarget tempTarget = ttCheckbox.isChecked() ? MainApp.getConfigBuilder().getTempTargetFromHistory() : null;
// COB // COB
Double c_cob = 0d; Double c_cob = 0d;
@ -466,12 +492,13 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
try { try {
c_cob = SafeParse.stringToDouble(ConfigBuilderPlugin.getActiveAPS().getLastAPSResult().json().getString("COB")); c_cob = SafeParse.stringToDouble(ConfigBuilderPlugin.getActiveAPS().getLastAPSResult().json().getString("COB"));
} catch (JSONException e) { } catch (JSONException e) {
log.error("Unhandled exception", e);
} }
} }
} }
BolusWizard wizard = new BolusWizard(); 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)); bg.setText(c_bg + " ISF: " + DecimalFormatter.to1Decimal(wizard.sens));
bgInsulin.setText(DecimalFormatter.to2Decimal(wizard.insulinFromBG) + "U"); 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); total.setText(getString(R.string.result) + ": " + insulinText + " " + carbsText);
okButton.setVisibility(View.VISIBLE); okButton.setVisibility(View.VISIBLE);
} else { } 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"); total.setText(getString(R.string.missing) + " " + DecimalFormatter.to0Decimal(wizard.carbsEquivalent) + "g");
okButton.setVisibility(View.INVISIBLE); okButton.setVisibility(View.INVISIBLE);
} }
@ -550,7 +579,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
boluscalcJSON.put("insulintrend", wizard.insulinFromTrend); boluscalcJSON.put("insulintrend", wizard.insulinFromTrend);
boluscalcJSON.put("insulin", calculatedTotalInsulin); boluscalcJSON.put("insulin", calculatedTotalInsulin);
} catch (JSONException e) { } 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 NSURGENTALARM = 20;
public static final int SHORT_DIA = 21; public static final int SHORT_DIA = 21;
public static final int TOAST_ALARM = 22; public static final int TOAST_ALARM = 22;
public static final int BOLUS_DELIVERY_ERROR = 24;
public int id; public int id;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -69,6 +69,14 @@ public class DanaRPlugin implements PluginBase, PumpInterface, DanaRInterface, C
private static DanaRPump pump = DanaRPump.getInstance(); private static DanaRPump pump = DanaRPump.getInstance();
private static boolean useExtendedBoluses = false; 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 static PumpDescription pumpDescription = new PumpDescription();
public DanaRPlugin() { public DanaRPlugin() {
@ -80,7 +88,7 @@ public class DanaRPlugin implements PluginBase, PumpInterface, DanaRInterface, C
MainApp.bus().register(this); MainApp.bus().register(this);
pumpDescription.isBolusCapable = true; pumpDescription.isBolusCapable = true;
pumpDescription.bolusStep = 0.1d; pumpDescription.bolusStep = 0.05d;
pumpDescription.isExtendedBolusCapable = true; pumpDescription.isExtendedBolusCapable = true;
pumpDescription.extendedBolusStep = 0.05d; pumpDescription.extendedBolusStep = 0.05d;
@ -695,7 +703,7 @@ public class DanaRPlugin implements PluginBase, PumpInterface, DanaRInterface, C
pumpjson.put("reservoir", (int) pump.reservoirRemainingUnits); pumpjson.put("reservoir", (int) pump.reservoirRemainingUnits);
pumpjson.put("clock", DateUtil.toISOString(new Date())); pumpjson.put("clock", DateUtil.toISOString(new Date()));
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
return pumpjson; return pumpjson;
} }

View file

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

View file

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

View file

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

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

View file

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

View file

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

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.Context;
import android.content.Intent; import android.content.Intent;
import android.content.ServiceConnection; import android.content.ServiceConnection;
import android.content.SharedPreferences;
import android.os.IBinder; import android.os.IBinder;
import android.preference.PreferenceManager;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import com.squareup.otto.Subscribe; import com.squareup.otto.Subscribe;
@ -25,6 +23,8 @@ import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.DetailedBolusInfo; 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.data.PumpEnactResult;
import info.nightscout.androidaps.db.ExtendedBolus; import info.nightscout.androidaps.db.ExtendedBolus;
import info.nightscout.androidaps.db.TemporaryBasal; 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.PumpDescription;
import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; 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.ConfigBuilder.DetailedBolusInfoStorage;
import info.nightscout.androidaps.plugins.Overview.Notification; import info.nightscout.androidaps.plugins.Overview.Notification;
import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification; import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification;
import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
import info.nightscout.androidaps.plugins.ProfileNS.NSProfilePlugin; 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.PumpDanaR.DanaRPump;
import info.nightscout.androidaps.plugins.PumpDanaRv2.services.DanaRv2ExecutionService; import info.nightscout.androidaps.plugins.PumpDanaRv2.services.DanaRv2ExecutionService;
import info.nightscout.utils.DateUtil; import info.nightscout.utils.DateUtil;
@ -58,7 +57,7 @@ public class DanaRv2Plugin implements PluginBase, PumpInterface, DanaRInterface,
@Override @Override
public String getFragmentClass() { public String getFragmentClass() {
return DanaRv2Fragment.class.getName(); return DanaRFragment.class.getName();
} }
static boolean fragmentPumpEnabled = false; static boolean fragmentPumpEnabled = false;
@ -68,6 +67,14 @@ public class DanaRv2Plugin implements PluginBase, PumpInterface, DanaRInterface,
public static DanaRv2ExecutionService sExecutionService; 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(); private static DanaRPump pump = DanaRPump.getInstance();
public static PumpDescription pumpDescription = new PumpDescription(); public static PumpDescription pumpDescription = new PumpDescription();
@ -79,7 +86,7 @@ public class DanaRv2Plugin implements PluginBase, PumpInterface, DanaRInterface,
MainApp.bus().register(this); MainApp.bus().register(this);
pumpDescription.isBolusCapable = true; pumpDescription.isBolusCapable = true;
pumpDescription.bolusStep = 0.1d; pumpDescription.bolusStep = 0.05d;
pumpDescription.isExtendedBolusCapable = true; pumpDescription.isExtendedBolusCapable = true;
pumpDescription.extendedBolusStep = 0.05d; pumpDescription.extendedBolusStep = 0.05d;
@ -625,7 +632,7 @@ public class DanaRv2Plugin implements PluginBase, PumpInterface, DanaRInterface,
pumpjson.put("reservoir", (int) pump.reservoirRemainingUnits); pumpjson.put("reservoir", (int) pump.reservoirRemainingUnits);
pumpjson.put("clock", DateUtil.toISOString(new Date())); pumpjson.put("clock", DateUtil.toISOString(new Date()));
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
return pumpjson; return pumpjson;
} }

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -85,15 +85,15 @@ public class DateUtil {
} }
public static int toSeconds(String hh_colon_mm) { 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); Matcher m = p.matcher(hh_colon_mm);
int retval = 0; int retval = 0;
if (m.find()) { if (m.find()) {
retval = SafeParse.stringToInt(m.group(1)) * 60 * 60 + SafeParse.stringToInt(m.group(2)) * 60; 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; 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; retval += 12 * 60 * 60;
} }
return retval; return retval;

View file

@ -76,9 +76,9 @@ public class ImportExportPrefs {
ToastUtils.showToastInUiThread(c, MainApp.sResources.getString(R.string.exported)); ToastUtils.showToastInUiThread(c, MainApp.sResources.getString(R.string.exported));
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
ToastUtils.showToastInUiThread(c, MainApp.sResources.getString(R.string.filenotfound) + " " + file); ToastUtils.showToastInUiThread(c, MainApp.sResources.getString(R.string.filenotfound) + " " + file);
e.printStackTrace(); log.error("Unhandled exception", e);
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
} }
} }
}) })
@ -127,9 +127,9 @@ public class ImportExportPrefs {
}); });
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
ToastUtils.showToastInUiThread(c, MainApp.sResources.getString(R.string.filenotfound) + " " + file); ToastUtils.showToastInUiThread(c, MainApp.sResources.getString(R.string.filenotfound) + " " + file);
e.printStackTrace(); log.error("Unhandled exception", e);
} catch (IOException 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.JSONArray;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Iterator; import java.util.Iterator;
@ -13,6 +15,7 @@ import java.util.Iterator;
* Created by mike on 11.07.2016. * Created by mike on 11.07.2016.
*/ */
public class JSONFormatter { public class JSONFormatter {
private static Logger log = LoggerFactory.getLogger(JSONFormatter.class);
public static Spanned format(final String jsonString) { public static Spanned format(final String jsonString) {
final JsonVisitor visitor = new JsonVisitor(4, ' '); final JsonVisitor visitor = new JsonVisitor(4, ' ');
@ -24,7 +27,7 @@ public class JSONFormatter {
else else
return Html.fromHtml(visitor.visit(new JSONObject(jsonString), 0)); return Html.fromHtml(visitor.visit(new JSONObject(jsonString), 0));
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
return Html.fromHtml(""); return Html.fromHtml("");
} }
} }
@ -34,7 +37,7 @@ public class JSONFormatter {
try { try {
return Html.fromHtml(visitor.visit(object, 0)); return Html.fromHtml(visitor.visit(object, 0));
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); log.error("Unhandled exception", e);
return Html.fromHtml(""); return Html.fromHtml("");
} }
} }

View file

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

View file

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

View file

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

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