diff --git a/app/build.gradle b/app/build.gradle
index 73a9dc5ac3..82ac0b83f7 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -209,7 +209,7 @@ dependencies {
implementation("com.google.android:flexbox:0.3.0") {
exclude group: "com.android.support"
}
- implementation("io.socket:socket.io-client:0.8.3") {
+ implementation("io.socket:socket.io-client:1.0.0") {
// excluding org.json which is provided by Android
exclude group: "org.json", module: "json"
}
diff --git a/app/libs/sightparser-release.aar b/app/libs/sightparser-release.aar
index 0d656738d2..302b9e836d 100644
Binary files a/app/libs/sightparser-release.aar and b/app/libs/sightparser-release.aar differ
diff --git a/app/src/main/java/info/nightscout/androidaps/MainActivity.java b/app/src/main/java/info/nightscout/androidaps/MainActivity.java
index 440024f853..9a80c61904 100644
--- a/app/src/main/java/info/nightscout/androidaps/MainActivity.java
+++ b/app/src/main/java/info/nightscout/androidaps/MainActivity.java
@@ -247,7 +247,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
if (!pm.isIgnoringBatteryOptimizations(packageName)) {
log.debug("Requesting ignore battery optimization");
- OKDialog.show(this, getString(R.string.pleaseallowpermission), String.format(getString(R.string.needwhitelisting), getString(R.string.app_name)), new Runnable() {
+ OKDialog.show(this, MainApp.gs(R.string.pleaseallowpermission), String.format(MainApp.gs(R.string.needwhitelisting), MainApp.gs(R.string.app_name)), new Runnable() {
@Override
public void run() {
@@ -260,7 +260,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
startActivity(intent);
} catch (ActivityNotFoundException e) {
- final String msg = getString(R.string.batteryoptimalizationerror);
+ final String msg = MainApp.gs(R.string.batteryoptimalizationerror);
ToastUtils.showToastInUiThread(getApplicationContext(), msg);
log.error(msg);
}
@@ -399,21 +399,21 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
break;
case R.id.nav_about:
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
- builder.setTitle(getString(R.string.app_name) + " " + BuildConfig.VERSION);
+ builder.setTitle(MainApp.gs(R.string.app_name) + " " + BuildConfig.VERSION);
if (Config.NSCLIENT || Config.G5UPLOADER)
builder.setIcon(R.mipmap.yellowowl);
else
builder.setIcon(R.mipmap.blueowl);
String message = "Build: " + BuildConfig.BUILDVERSION + "\n";
message += "Flavor: " + BuildConfig.FLAVOR + BuildConfig.BUILD_TYPE + "\n";
- message += getString(R.string.configbuilder_nightscoutversion_label) + " " + ConfigBuilderPlugin.nightscoutVersionName;
+ message += MainApp.gs(R.string.configbuilder_nightscoutversion_label) + " " + ConfigBuilderPlugin.nightscoutVersionName;
if (MainApp.engineeringMode)
message += "\n" + MainApp.gs(R.string.engineering_mode_enabled);
- message += getString(R.string.about_link_urls);
+ message += MainApp.gs(R.string.about_link_urls);
final SpannableString messageSpanned = new SpannableString(message);
Linkify.addLinks(messageSpanned, Linkify.WEB_URLS);
builder.setMessage(messageSpanned);
- builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null);
+ builder.setPositiveButton(MainApp.gs(R.string.ok), null);
AlertDialog alertDialog = builder.create();
alertDialog.show();
((TextView)alertDialog.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());
diff --git a/app/src/main/java/info/nightscout/androidaps/MainApp.java b/app/src/main/java/info/nightscout/androidaps/MainApp.java
index 5456da1805..45aff91654 100644
--- a/app/src/main/java/info/nightscout/androidaps/MainApp.java
+++ b/app/src/main/java/info/nightscout/androidaps/MainApp.java
@@ -245,12 +245,27 @@ public class MainApp extends Application {
}
}
-
public void stopKeepAliveService() {
if (keepAliveReceiver != null)
KeepAliveReceiver.cancelAlarm(this);
}
+ public static void subscribe(Object subscriber) {
+ try {
+ bus().register(subscriber);
+ } catch (IllegalArgumentException e) {
+ // already registered
+ }
+ }
+
+ public static void unsubscribe(Object subscriber) {
+ try {
+ bus().unregister(subscriber);
+ } catch (IllegalArgumentException e) {
+ // already unregistered
+ }
+ }
+
public static Bus bus() {
return sBus;
}
@@ -371,6 +386,10 @@ public class MainApp extends Application {
return engineeringMode || !devBranch;
}
+ public static boolean isDev() {
+ return devBranch;
+ }
+
public String getLogDirectory() {
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
return lc.getProperty("EXT_FILES_DIR");
diff --git a/app/src/main/java/info/nightscout/androidaps/Services/DataService.java b/app/src/main/java/info/nightscout/androidaps/Services/DataService.java
index 17dea50108..881f2e3bac 100644
--- a/app/src/main/java/info/nightscout/androidaps/Services/DataService.java
+++ b/app/src/main/java/info/nightscout/androidaps/Services/DataService.java
@@ -304,7 +304,7 @@ public class DataService extends IntentService {
log.debug("Got versions: NSClient: " + ConfigBuilderPlugin.nsClientVersionName + " Nightscout: " + ConfigBuilderPlugin.nightscoutVersionName);
try {
if (ConfigBuilderPlugin.nsClientVersionCode < MainApp.instance().getPackageManager().getPackageInfo(MainApp.instance().getPackageName(), 0).versionCode) {
- Notification notification = new Notification(Notification.OLD_NSCLIENT, MainApp.sResources.getString(R.string.unsupportedclientver), Notification.URGENT);
+ Notification notification = new Notification(Notification.OLD_NSCLIENT, MainApp.gs(R.string.unsupportedclientver), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
} else {
MainApp.bus().post(new EventDismissNotification(Notification.OLD_NSCLIENT));
@@ -313,13 +313,13 @@ public class DataService extends IntentService {
log.error("Unhandled exception", e);
}
if (ConfigBuilderPlugin.nightscoutVersionCode < Config.SUPPORTEDNSVERSION) {
- Notification notification = new Notification(Notification.OLD_NS, MainApp.sResources.getString(R.string.unsupportednsversion), Notification.NORMAL);
+ Notification notification = new Notification(Notification.OLD_NS, MainApp.gs(R.string.unsupportednsversion), Notification.NORMAL);
MainApp.bus().post(new EventNewNotification(notification));
} else {
MainApp.bus().post(new EventDismissNotification(Notification.OLD_NS));
}
} else {
- Notification notification = new Notification(Notification.OLD_NSCLIENT, MainApp.sResources.getString(R.string.unsupportedclientver), Notification.URGENT);
+ Notification notification = new Notification(Notification.OLD_NSCLIENT, MainApp.gs(R.string.unsupportedclientver), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
}
if (bundles.containsKey("status")) {
diff --git a/app/src/main/java/info/nightscout/androidaps/TDDStatsActivity.java b/app/src/main/java/info/nightscout/androidaps/TDDStatsActivity.java
index 369b2f42b5..7bc3ee31c5 100644
--- a/app/src/main/java/info/nightscout/androidaps/TDDStatsActivity.java
+++ b/app/src/main/java/info/nightscout/androidaps/TDDStatsActivity.java
@@ -141,27 +141,27 @@ public class TDDStatsActivity extends Activity {
TableLayout.LayoutParams.WRAP_CONTENT));
TextView label_date = new TextView(this);
- label_date.setText(getString(R.string.danar_stats_date));
+ label_date.setText(MainApp.gs(R.string.danar_stats_date));
label_date.setTextColor(Color.WHITE);
tr_head.addView(label_date);
TextView label_basalrate = new TextView(this);
- label_basalrate.setText(getString(R.string.danar_stats_basalrate));
+ label_basalrate.setText(MainApp.gs(R.string.danar_stats_basalrate));
label_basalrate.setTextColor(Color.WHITE);
tr_head.addView(label_basalrate);
TextView label_bolus = new TextView(this);
- label_bolus.setText(getString(R.string.danar_stats_bolus));
+ label_bolus.setText(MainApp.gs(R.string.danar_stats_bolus));
label_bolus.setTextColor(Color.WHITE);
tr_head.addView(label_bolus);
TextView label_tdd = new TextView(this);
- label_tdd.setText(getString(R.string.danar_stats_tdd));
+ label_tdd.setText(MainApp.gs(R.string.danar_stats_tdd));
label_tdd.setTextColor(Color.WHITE);
tr_head.addView(label_tdd);
TextView label_ratio = new TextView(this);
- label_ratio.setText(getString(R.string.danar_stats_ratio));
+ label_ratio.setText(MainApp.gs(R.string.danar_stats_ratio));
label_ratio.setTextColor(Color.WHITE);
tr_head.addView(label_ratio);
@@ -179,17 +179,17 @@ public class TDDStatsActivity extends Activity {
TableLayout.LayoutParams.WRAP_CONTENT));
TextView label_cum_amount_days = new TextView(this);
- label_cum_amount_days.setText(getString(R.string.danar_stats_amount_days));
+ label_cum_amount_days.setText(MainApp.gs(R.string.danar_stats_amount_days));
label_cum_amount_days.setTextColor(Color.WHITE);
ctr_head.addView(label_cum_amount_days);
TextView label_cum_tdd = new TextView(this);
- label_cum_tdd.setText(getString(R.string.danar_stats_tdd));
+ label_cum_tdd.setText(MainApp.gs(R.string.danar_stats_tdd));
label_cum_tdd.setTextColor(Color.WHITE);
ctr_head.addView(label_cum_tdd);
TextView label_cum_ratio = new TextView(this);
- label_cum_ratio.setText(getString(R.string.danar_stats_ratio));
+ label_cum_ratio.setText(MainApp.gs(R.string.danar_stats_ratio));
label_cum_ratio.setTextColor(Color.WHITE);
ctr_head.addView(label_cum_ratio);
@@ -207,17 +207,17 @@ public class TDDStatsActivity extends Activity {
TableLayout.LayoutParams.WRAP_CONTENT));
TextView label_exp_weight = new TextView(this);
- label_exp_weight.setText(getString(R.string.danar_stats_weight));
+ label_exp_weight.setText(MainApp.gs(R.string.danar_stats_weight));
label_exp_weight.setTextColor(Color.WHITE);
etr_head.addView(label_exp_weight);
TextView label_exp_tdd = new TextView(this);
- label_exp_tdd.setText(getString(R.string.danar_stats_tdd));
+ label_exp_tdd.setText(MainApp.gs(R.string.danar_stats_tdd));
label_exp_tdd.setTextColor(Color.WHITE);
etr_head.addView(label_exp_tdd);
TextView label_exp_ratio = new TextView(this);
- label_exp_ratio.setText(getString(R.string.danar_stats_ratio));
+ label_exp_ratio.setText(MainApp.gs(R.string.danar_stats_ratio));
label_exp_ratio.setTextColor(Color.WHITE);
etr_head.addView(label_exp_ratio);
@@ -235,7 +235,7 @@ public class TDDStatsActivity extends Activity {
reloadButton.setVisibility(View.GONE);
statusView.setVisibility(View.VISIBLE);
statsMessage.setVisibility(View.VISIBLE);
- statsMessage.setText(getString(R.string.danar_stats_warning_Message));
+ statsMessage.setText(MainApp.gs(R.string.danar_stats_warning_Message));
}
});
ConfigBuilderPlugin.getCommandQueue().loadTDDs( new Callback() {
@@ -441,7 +441,7 @@ public class TDDStatsActivity extends Activity {
if (isOldData(historyList) && ConfigBuilderPlugin.getActivePump().getPumpDescription().needsManualTDDLoad) {
statsMessage.setVisibility(View.VISIBLE);
- statsMessage.setText(getString(R.string.danar_stats_olddata_Message));
+ statsMessage.setText(MainApp.gs(R.string.danar_stats_olddata_Message));
} else {
tl.setBackgroundColor(Color.TRANSPARENT);
diff --git a/app/src/main/java/info/nightscout/androidaps/db/BgReading.java b/app/src/main/java/info/nightscout/androidaps/db/BgReading.java
index 20b9040065..ef0277d170 100644
--- a/app/src/main/java/info/nightscout/androidaps/db/BgReading.java
+++ b/app/src/main/java/info/nightscout/androidaps/db/BgReading.java
@@ -1,5 +1,7 @@
package info.nightscout.androidaps.db;
+import android.content.res.Resources;
+
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
@@ -211,7 +213,7 @@ public class BgReading implements DataPointWithLabelInterface {
}
int color = MainApp.sResources.getColor(R.color.inrange);
if (isPrediction())
- color = MainApp.sResources.getColor(R.color.prediction);
+ return getPredectionColor();
else if (valueToUnits(units) < lowLine)
color = MainApp.sResources.getColor(R.color.low);
else if (valueToUnits(units) > highLine)
@@ -219,8 +221,7 @@ public class BgReading implements DataPointWithLabelInterface {
return color;
}
- @Override
- public int getSecondColor() {
+ public int getPredectionColor() {
if (isIOBPrediction)
return MainApp.sResources.getColor(R.color.iob);
if (isCOBPrediction)
diff --git a/app/src/main/java/info/nightscout/androidaps/db/CareportalEvent.java b/app/src/main/java/info/nightscout/androidaps/db/CareportalEvent.java
index b0f69144c5..755005cdae 100644
--- a/app/src/main/java/info/nightscout/androidaps/db/CareportalEvent.java
+++ b/app/src/main/java/info/nightscout/androidaps/db/CareportalEvent.java
@@ -95,7 +95,7 @@ public class CareportalEvent implements DataPointWithLabelInterface {
if (OverviewFragment.shorttextmode)
return diff.get(TimeUnit.DAYS) +"d" + diff.get(TimeUnit.HOURS) + "h";
else
- return diff.get(TimeUnit.DAYS) + " " + MainApp.sResources.getString(R.string.days) + " " + diff.get(TimeUnit.HOURS) + " " + MainApp.sResources.getString(R.string.hours);
+ return diff.get(TimeUnit.DAYS) + " " + MainApp.gs(R.string.days) + " " + diff.get(TimeUnit.HOURS) + " " + MainApp.gs(R.string.hours);
}
public boolean isOlderThan(double hours) {
@@ -263,9 +263,4 @@ public class CareportalEvent implements DataPointWithLabelInterface {
return Color.GRAY;
}
- @Override
- public int getSecondColor() {
- return 0;
- }
-
}
diff --git a/app/src/main/java/info/nightscout/androidaps/db/ExtendedBolus.java b/app/src/main/java/info/nightscout/androidaps/db/ExtendedBolus.java
index 418de86c6c..1123cb58df 100644
--- a/app/src/main/java/info/nightscout/androidaps/db/ExtendedBolus.java
+++ b/app/src/main/java/info/nightscout/androidaps/db/ExtendedBolus.java
@@ -297,8 +297,4 @@ public class ExtendedBolus implements Interval, DataPointWithLabelInterface {
return Color.CYAN;
}
- @Override
- public int getSecondColor() {
- return 0;
- }
}
diff --git a/app/src/main/java/info/nightscout/androidaps/db/ProfileSwitch.java b/app/src/main/java/info/nightscout/androidaps/db/ProfileSwitch.java
index 9dca91c595..40c8e50c6d 100644
--- a/app/src/main/java/info/nightscout/androidaps/db/ProfileSwitch.java
+++ b/app/src/main/java/info/nightscout/androidaps/db/ProfileSwitch.java
@@ -263,11 +263,6 @@ public class ProfileSwitch implements Interval, DataPointWithLabelInterface {
return Color.CYAN;
}
- @Override
- public int getSecondColor() {
- return 0;
- }
-
public String toString() {
return "ProfileSwitch{" +
"date=" + date +
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventChargingState.java b/app/src/main/java/info/nightscout/androidaps/events/EventChargingState.java
new file mode 100644
index 0000000000..bcd9061133
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventChargingState.java
@@ -0,0 +1,13 @@
+package info.nightscout.androidaps.events;
+
+public class EventChargingState {
+
+ public boolean isCharging = false;
+
+ public EventChargingState() {}
+
+ public EventChargingState(boolean isCharging) {
+ this.isCharging = isCharging;
+ }
+
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventNetworkChange.java b/app/src/main/java/info/nightscout/androidaps/events/EventNetworkChange.java
index ed639d643d..03df71f31b 100644
--- a/app/src/main/java/info/nightscout/androidaps/events/EventNetworkChange.java
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventNetworkChange.java
@@ -5,6 +5,10 @@ public class EventNetworkChange extends Event {
public boolean mobileConnected = false;
public boolean wifiConnected = false;
- public String ssid;
+ public String ssid = "";
public boolean roaming = false;
+
+ public String getSsid() {
+ return ssid.replace("SSID: ","").replaceAll("\"","");
+ }
}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventPreferenceChange.java b/app/src/main/java/info/nightscout/androidaps/events/EventPreferenceChange.java
index f99cb54568..f23d4e802a 100644
--- a/app/src/main/java/info/nightscout/androidaps/events/EventPreferenceChange.java
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventPreferenceChange.java
@@ -12,11 +12,11 @@ public class EventPreferenceChange extends Event {
}
public EventPreferenceChange(int resourceID) {
- changedKey = MainApp.sResources.getString(resourceID);
+ changedKey = MainApp.gs(resourceID);
}
public boolean isChanged(int id) {
- return changedKey.equals(MainApp.sResources.getString(id));
+ return changedKey.equals(MainApp.gs(id));
}
public boolean isChanged(String id) {
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventPumpStatusChanged.java b/app/src/main/java/info/nightscout/androidaps/events/EventPumpStatusChanged.java
index 52c3183821..7d810702b9 100644
--- a/app/src/main/java/info/nightscout/androidaps/events/EventPumpStatusChanged.java
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventPumpStatusChanged.java
@@ -46,13 +46,13 @@ public class EventPumpStatusChanged extends Event {
public String textStatus() {
if (sStatus == CONNECTING)
- return String.format(MainApp.sResources.getString(R.string.danar_history_connectingfor), sSecondsElapsed);
+ return String.format(MainApp.gs(R.string.danar_history_connectingfor), sSecondsElapsed);
else if (sStatus == CONNECTED)
- return MainApp.sResources.getString(R.string.connected);
+ return MainApp.gs(R.string.connected);
else if (sStatus == PERFORMING)
return sPerfomingAction;
else if (sStatus == DISCONNECTING)
- return MainApp.sResources.getString(R.string.disconnecting);
+ return MainApp.gs(R.string.disconnecting);
else if (sStatus == DISCONNECTED)
return "";
return "";
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsFragment.java
index cc73571b9d..84086d6117 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsFragment.java
@@ -158,7 +158,7 @@ public class ActionsFragment extends SubscriberFragment implements View.OnClickL
if (activeExtendedBolus != null) {
extendedBolus.setVisibility(View.GONE);
extendedBolusCancel.setVisibility(View.VISIBLE);
- extendedBolusCancel.setText(MainApp.instance().getString(R.string.cancel) + " " + activeExtendedBolus.toString());
+ extendedBolusCancel.setText(MainApp.gs(R.string.cancel) + " " + activeExtendedBolus.toString());
} else {
extendedBolus.setVisibility(View.VISIBLE);
extendedBolusCancel.setVisibility(View.GONE);
@@ -174,7 +174,7 @@ public class ActionsFragment extends SubscriberFragment implements View.OnClickL
if (activeTemp != null) {
tempBasal.setVisibility(View.GONE);
tempBasalCancel.setVisibility(View.VISIBLE);
- tempBasalCancel.setText(MainApp.instance().getString(R.string.cancel) + " " + activeTemp.toStringShort());
+ tempBasalCancel.setText(MainApp.gs(R.string.cancel) + " " + activeTemp.toStringShort());
} else {
tempBasal.setVisibility(View.VISIBLE);
tempBasalCancel.setVisibility(View.GONE);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java
index 5e99a6ca17..828c7dbcc9 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java
@@ -179,10 +179,10 @@ public class FillDialog extends DialogFragment implements OnClickListener {
}
if (pumpSiteChangeCheckbox.isChecked())
- confirmMessage.add("" + "" + getString(R.string.record_pump_site_change) + "");
+ confirmMessage.add("" + "" + MainApp.gs(R.string.record_pump_site_change) + "");
if (insulinCartridgeChangeCheckbox.isChecked())
- confirmMessage.add("" + "" + getString(R.string.record_insulin_cartridge_change) + "");
+ confirmMessage.add("" + "" + MainApp.gs(R.string.record_insulin_cartridge_change) + "");
final String notes = notesEdit.getText().toString();
if (!notes.isEmpty()) {
@@ -197,7 +197,7 @@ public class FillDialog extends DialogFragment implements OnClickListener {
builder.setTitle(MainApp.gs(R.string.confirmation));
if (insulinAfterConstraints > 0 || pumpSiteChangeCheckbox.isChecked() || insulinCartridgeChangeCheckbox.isChecked()) {
builder.setMessage(Html.fromHtml(Joiner.on("
").join(confirmMessage)));
- builder.setPositiveButton(getString(R.string.primefill), (dialog, id) -> {
+ builder.setPositiveButton(MainApp.gs(R.string.primefill), (dialog, id) -> {
if (finalInsulinAfterConstraints > 0) {
DetailedBolusInfo detailedBolusInfo = new DetailedBolusInfo();
detailedBolusInfo.insulin = finalInsulinAfterConstraints;
@@ -212,7 +212,7 @@ public class FillDialog extends DialogFragment implements OnClickListener {
Intent i = new Intent(MainApp.instance(), ErrorHelperActivity.class);
i.putExtra("soundid", R.raw.boluserror);
i.putExtra("status", result.comment);
- i.putExtra("title", MainApp.sResources.getString(R.string.treatmentdeliveryerror));
+ i.putExtra("title", MainApp.gs(R.string.treatmentdeliveryerror));
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
MainApp.instance().startActivity(i);
}
@@ -228,7 +228,7 @@ public class FillDialog extends DialogFragment implements OnClickListener {
} else {
builder.setMessage(MainApp.gs(R.string.no_action_selected));
}
- builder.setNegativeButton(getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
dismiss();
} catch (RuntimeException e) {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewExtendedBolusDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewExtendedBolusDialog.java
index 04dd783b04..45b6460392 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewExtendedBolusDialog.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewExtendedBolusDialog.java
@@ -12,6 +12,7 @@ import android.view.ViewGroup;
import com.crashlytics.android.answers.CustomEvent;
+import org.mozilla.javascript.tools.jsc.Main;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,7 +40,7 @@ public class NewExtendedBolusDialog extends DialogFragment implements View.OnCli
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
- getDialog().setTitle(getString(R.string.overview_extendedbolus_button));
+ getDialog().setTitle(MainApp.gs(R.string.overview_extendedbolus_button));
View view = inflater.inflate(R.layout.overview_newextendedbolus_dialog, container, false);
@@ -68,13 +69,13 @@ public class NewExtendedBolusDialog extends DialogFragment implements View.OnCli
Double insulin = SafeParse.stringToDouble(editInsulin.getText());
int durationInMinutes = SafeParse.stringToInt(editDuration.getText());
- String confirmMessage = getString(R.string.setextendedbolusquestion);
+ String confirmMessage = MainApp.gs(R.string.setextendedbolusquestion);
Double insulinAfterConstraint = MainApp.getConstraintChecker().applyBolusConstraints(new Constraint<>(insulin)).value();
confirmMessage += " " + insulinAfterConstraint + " U ";
- confirmMessage += getString(R.string.duration) + " " + durationInMinutes + "min ?";
+ confirmMessage += MainApp.gs(R.string.duration) + " " + durationInMinutes + "min ?";
if (insulinAfterConstraint - insulin != 0d)
- confirmMessage += "\n" + getString(R.string.constraintapllied);
+ confirmMessage += "\n" + MainApp.gs(R.string.constraintapllied);
insulin = insulinAfterConstraint;
final Double finalInsulin = insulin;
@@ -82,9 +83,9 @@ public class NewExtendedBolusDialog extends DialogFragment implements View.OnCli
final Context context = getContext();
AlertDialog.Builder builder = new AlertDialog.Builder(context);
- builder.setTitle(context.getString(R.string.confirmation));
+ builder.setTitle(MainApp.gs(R.string.confirmation));
builder.setMessage(confirmMessage);
- builder.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
+ builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
ConfigBuilderPlugin.getCommandQueue().extendedBolus(finalInsulin, finalDurationInMinutes, new Callback() {
@Override
@@ -93,7 +94,7 @@ public class NewExtendedBolusDialog extends DialogFragment implements View.OnCli
Intent i = new Intent(MainApp.instance(), ErrorHelperActivity.class);
i.putExtra("soundid", R.raw.boluserror);
i.putExtra("status", result.comment);
- i.putExtra("title", MainApp.sResources.getString(R.string.treatmentdeliveryerror));
+ i.putExtra("title", MainApp.gs(R.string.treatmentdeliveryerror));
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
MainApp.instance().startActivity(i);
}
@@ -102,7 +103,7 @@ public class NewExtendedBolusDialog extends DialogFragment implements View.OnCli
FabricPrivacy.getInstance().logCustom(new CustomEvent("ExtendedBolus"));
}
});
- builder.setNegativeButton(getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
dismiss();
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java
index fb00879ae4..7a03887cf6 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java
@@ -52,7 +52,7 @@ public class NewTempBasalDialog extends DialogFragment implements View.OnClickLi
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
- getDialog().setTitle(getString(R.string.overview_tempbasal_button));
+ getDialog().setTitle(MainApp.gs(R.string.overview_tempbasal_button));
View view = inflater.inflate(R.layout.overview_newtempbasal_dialog, container, false);
@@ -122,21 +122,21 @@ public class NewTempBasalDialog extends DialogFragment implements View.OnClickLi
if (profile == null)
return;
- String confirmMessage = getString(R.string.setbasalquestion);
+ String confirmMessage = MainApp.gs(R.string.setbasalquestion);
if (setAsPercent) {
int basalPercentInput = SafeParse.stringToInt(basalPercent.getText());
percent = MainApp.getConstraintChecker().applyBasalPercentConstraints(new Constraint<>(basalPercentInput), profile).value();
confirmMessage += "\n" + percent + "% ";
- confirmMessage += "\n" + getString(R.string.duration) + " " + durationInMinutes + "min ?";
+ confirmMessage += "\n" + MainApp.gs(R.string.duration) + " " + durationInMinutes + "min ?";
if (percent != basalPercentInput)
- confirmMessage += "\n" + getString(R.string.constraintapllied);
+ confirmMessage += "\n" + MainApp.gs(R.string.constraintapllied);
} else {
Double basalAbsoluteInput = SafeParse.stringToDouble(basalAbsolute.getText());
absolute = MainApp.getConstraintChecker().applyBasalConstraints(new Constraint<>(basalAbsoluteInput), profile).value();
confirmMessage += "\n" + absolute + " U/h ";
- confirmMessage += "\n" + getString(R.string.duration) + " " + durationInMinutes + "min ?";
+ confirmMessage += "\n" + MainApp.gs(R.string.duration) + " " + durationInMinutes + "min ?";
if (absolute - basalAbsoluteInput != 0d)
- confirmMessage += "\n" + getString(R.string.constraintapllied);
+ confirmMessage += "\n" + MainApp.gs(R.string.constraintapllied);
}
final int finalBasalPercent = percent;
@@ -144,9 +144,9 @@ public class NewTempBasalDialog extends DialogFragment implements View.OnClickLi
final int finalDurationInMinutes = durationInMinutes;
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
- builder.setTitle(this.getContext().getString(R.string.confirmation));
+ builder.setTitle(MainApp.gs(R.string.confirmation));
builder.setMessage(confirmMessage);
- builder.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
+ builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Callback callback = new Callback() {
@Override
@@ -155,7 +155,7 @@ public class NewTempBasalDialog extends DialogFragment implements View.OnClickLi
Intent i = new Intent(MainApp.instance(), ErrorHelperActivity.class);
i.putExtra("soundid", R.raw.boluserror);
i.putExtra("status", result.comment);
- i.putExtra("title", MainApp.sResources.getString(R.string.tempbasaldeliveryerror));
+ i.putExtra("title", MainApp.gs(R.string.tempbasaldeliveryerror));
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
MainApp.instance().startActivity(i);
}
@@ -169,7 +169,7 @@ public class NewTempBasalDialog extends DialogFragment implements View.OnClickLi
FabricPrivacy.getInstance().logCustom(new CustomEvent("TempBasal"));
}
});
- builder.setNegativeButton(getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
dismiss();
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalFragment.java
index 4719ed525c..ac018e3101 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalFragment.java
@@ -225,7 +225,7 @@ public class CareportalFragment extends SubscriberFragment implements View.OnCli
double pbageUrgent = nsSettings.getExtendedWarnValue("pgage", "urgent", 360);
double pbageWarn = nsSettings.getExtendedWarnValue("pgage", "warn", 240);
- String notavailable = OverviewFragment.shorttextmode ? "-" : MainApp.sResources.getString(R.string.notavailable);
+ String notavailable = OverviewFragment.shorttextmode ? "-" : MainApp.gs(R.string.notavailable);
if (sage != null) {
careportalEvent = MainApp.getDbHelper().getLastCareportalEvent(CareportalEvent.SENSORCHANGE);
if (careportalEvent != null) {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java
index 56aa0158cf..46c1e3666d 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java
@@ -715,14 +715,26 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
FabricPrivacy.getInstance().logCustom(new CustomEvent("TempTarget"));
}
} else {
- NSUpload.uploadCareportalEntryToNS(data);
+ if (JsonHelper.safeGetString(data, "eventType").equals(CareportalEvent.PROFILESWITCH)) {
+ ProfileSwitch profileSwitch = prepareProfileSwitch(
+ profileStore,
+ JsonHelper.safeGetString(data, "profile"),
+ JsonHelper.safeGetInt(data, "duration"),
+ JsonHelper.safeGetInt(data, "percentage"),
+ JsonHelper.safeGetInt(data, "timeshift"),
+ eventTime.getTime()
+ );
+ NSUpload.uploadProfileSwitch(profileSwitch);
+ } else {
+ NSUpload.uploadCareportalEntryToNS(data);
+ }
FabricPrivacy.getInstance().logCustom(new CustomEvent("NSTreatment"));
}
}
- public static void doProfileSwitch(final ProfileStore profileStore, final String profileName, final int duration, final int percentage, final int timeshift) {
+ public static ProfileSwitch prepareProfileSwitch(final ProfileStore profileStore, final String profileName, final int duration, final int percentage, final int timeshift, long date) {
ProfileSwitch profileSwitch = new ProfileSwitch();
- profileSwitch.date = System.currentTimeMillis();
+ profileSwitch.date = date;
profileSwitch.source = Source.USER;
profileSwitch.profileName = profileName;
profileSwitch.profileJson = profileStore.getSpecificProfile(profileName).getData().toString();
@@ -731,6 +743,11 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
profileSwitch.isCPP = percentage != 100 || timeshift != 0;
profileSwitch.timeshift = timeshift;
profileSwitch.percentage = percentage;
+ return profileSwitch;
+ }
+
+ public static void doProfileSwitch(final ProfileStore profileStore, final String profileName, final int duration, final int percentage, final int timeshift) {
+ ProfileSwitch profileSwitch = prepareProfileSwitch(profileStore, profileName, duration, percentage, timeshift, System.currentTimeMillis());
TreatmentsPlugin.getPlugin().addToHistoryProfileSwitch(profileSwitch);
FabricPrivacy.getInstance().logCustom(new CustomEvent("ProfileSwitch"));
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java
index df5b727749..35130c5209 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java
@@ -429,17 +429,17 @@ public class ConfigBuilderPlugin extends PluginBase {
request.rate = MainApp.getConstraintChecker().applyBasalConstraints(request.rateConstraint, profile).value();
if (!pump.isInitialized()) {
- log.debug("applyAPSRequest: " + MainApp.sResources.getString(R.string.pumpNotInitialized));
+ log.debug("applyAPSRequest: " + MainApp.gs(R.string.pumpNotInitialized));
if (callback != null) {
- callback.result(new PumpEnactResult().comment(MainApp.sResources.getString(R.string.pumpNotInitialized)).enacted(false).success(false)).run();
+ callback.result(new PumpEnactResult().comment(MainApp.gs(R.string.pumpNotInitialized)).enacted(false).success(false)).run();
}
return;
}
if (pump.isSuspended()) {
- log.debug("applyAPSRequest: " + MainApp.sResources.getString(R.string.pumpsuspended));
+ log.debug("applyAPSRequest: " + MainApp.gs(R.string.pumpsuspended));
if (callback != null) {
- callback.result(new PumpEnactResult().comment(MainApp.sResources.getString(R.string.pumpsuspended)).enacted(false).success(false)).run();
+ callback.result(new PumpEnactResult().comment(MainApp.gs(R.string.pumpsuspended)).enacted(false).success(false)).run();
}
return;
}
@@ -499,17 +499,17 @@ public class ConfigBuilderPlugin extends PluginBase {
PumpInterface pump = getActivePump();
if (!pump.isInitialized()) {
- log.debug("applySMBRequest: " + MainApp.sResources.getString(R.string.pumpNotInitialized));
+ log.debug("applySMBRequest: " + MainApp.gs(R.string.pumpNotInitialized));
if (callback != null) {
- callback.result(new PumpEnactResult().comment(MainApp.sResources.getString(R.string.pumpNotInitialized)).enacted(false).success(false)).run();
+ callback.result(new PumpEnactResult().comment(MainApp.gs(R.string.pumpNotInitialized)).enacted(false).success(false)).run();
}
return;
}
if (pump.isSuspended()) {
- log.debug("applySMBRequest: " + MainApp.sResources.getString(R.string.pumpsuspended));
+ log.debug("applySMBRequest: " + MainApp.gs(R.string.pumpsuspended));
if (callback != null) {
- callback.result(new PumpEnactResult().comment(MainApp.sResources.getString(R.string.pumpsuspended)).enacted(false).success(false)).run();
+ callback.result(new PumpEnactResult().comment(MainApp.gs(R.string.pumpsuspended)).enacted(false).success(false)).run();
}
return;
}
@@ -538,7 +538,7 @@ public class ConfigBuilderPlugin extends PluginBase {
Intent i = new Intent(MainApp.instance(), ErrorHelperActivity.class);
i.putExtra("soundid", R.raw.boluserror);
i.putExtra("status", result.comment);
- i.putExtra("title", MainApp.sResources.getString(R.string.failedupdatebasalprofile));
+ i.putExtra("title", MainApp.gs(R.string.failedupdatebasalprofile));
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
MainApp.instance().startActivity(i);
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/DetailedBolusInfoStorage.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/DetailedBolusInfoStorage.java
index abe3c75c73..7a4e99b584 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/DetailedBolusInfoStorage.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/DetailedBolusInfoStorage.java
@@ -19,13 +19,13 @@ public class DetailedBolusInfoStorage {
private static Logger log = LoggerFactory.getLogger(DetailedBolusInfoStorage.class);
private static List store = new ArrayList<>();
- public static void add(DetailedBolusInfo detailedBolusInfo) {
+ public static synchronized void add(DetailedBolusInfo detailedBolusInfo) {
log.debug("Stored bolus info: " + detailedBolusInfo);
store.add(detailedBolusInfo);
}
@Nullable
- public static DetailedBolusInfo findDetailedBolusInfo(long bolustime) {
+ public static synchronized DetailedBolusInfo findDetailedBolusInfo(long bolustime) {
DetailedBolusInfo found = null;
for (int i = 0; i < store.size(); i++) {
long infoTime = store.get(i).date;
@@ -38,7 +38,7 @@ public class DetailedBolusInfoStorage {
return found;
}
- public static void remove(long bolustime) {
+ public static synchronized void remove(long bolustime) {
for (int i = 0; i < store.size(); i++) {
long infoTime = store.get(i).date;
if (bolustime > infoTime - 60 * 1000 && bolustime < infoTime + 60 * 1000) {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/ObjectivesFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/ObjectivesFragment.java
index 688c741329..1424013440 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/ObjectivesFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/ObjectivesFragment.java
@@ -26,6 +26,7 @@ import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.plugins.Common.SubscriberFragment;
import info.nightscout.utils.FabricPrivacy;
+import info.nightscout.utils.T;
public class ObjectivesFragment extends SubscriberFragment {
private static Logger log = LoggerFactory.getLogger(ObjectivesFragment.class);
@@ -58,7 +59,7 @@ public class ObjectivesFragment extends SubscriberFragment {
holder.position.setText(String.valueOf(position + 1));
holder.objective.setText(o.objective);
holder.gate.setText(o.gate);
- holder.duration.setText(context.getString(R.string.objectives_minimalduration) + " " + o.durationInDays + " " + context.getString(R.string.days));
+ holder.duration.setText(MainApp.gs(R.string.objectives_minimalduration) + " " + o.durationInDays + " " + MainApp.gs(R.string.days));
holder.progress.setText(requirementsMet.comment);
holder.started.setText(o.started.toLocaleString());
holder.accomplished.setText(o.accomplished.toLocaleString());
@@ -204,7 +205,7 @@ public class ObjectivesFragment extends SubscriberFragment {
return 1;
} else if (objectiveStartedTime > 0 && !enableFakeValue
&& objectiveAccomplishedTime == 0
- && !(objectiveStartedTime + durationInDays * 24 * 60 * 60 * 1000 >= now && requirementsMet)) {
+ && !(objectiveStartedTime + T.days(durationInDays).msecs() < now && requirementsMet)) {
return 2;
} else if (objectiveAccomplishedTime == 0) {
return 3;
@@ -240,20 +241,20 @@ public class ObjectivesFragment extends SubscriberFragment {
});
// Add correct translations to array after app is initialized
- ObjectivesPlugin.objectives.get(0).objective = MainApp.sResources.getString(R.string.objectives_0_objective);
- ObjectivesPlugin.objectives.get(1).objective = MainApp.sResources.getString(R.string.objectives_1_objective);
- ObjectivesPlugin.objectives.get(2).objective = MainApp.sResources.getString(R.string.objectives_2_objective);
- ObjectivesPlugin.objectives.get(3).objective = MainApp.sResources.getString(R.string.objectives_3_objective);
- ObjectivesPlugin.objectives.get(4).objective = MainApp.sResources.getString(R.string.objectives_4_objective);
- ObjectivesPlugin.objectives.get(5).objective = MainApp.sResources.getString(R.string.objectives_5_objective);
- ObjectivesPlugin.objectives.get(6).objective = MainApp.sResources.getString(R.string.objectives_6_objective);
- ObjectivesPlugin.objectives.get(7).objective = MainApp.sResources.getString(R.string.objectives_7_objective);
- ObjectivesPlugin.objectives.get(0).gate = MainApp.sResources.getString(R.string.objectives_0_gate);
- ObjectivesPlugin.objectives.get(1).gate = MainApp.sResources.getString(R.string.objectives_1_gate);
- ObjectivesPlugin.objectives.get(2).gate = MainApp.sResources.getString(R.string.objectives_2_gate);
- ObjectivesPlugin.objectives.get(3).gate = MainApp.sResources.getString(R.string.objectives_3_gate);
- ObjectivesPlugin.objectives.get(4).gate = MainApp.sResources.getString(R.string.objectives_4_gate);
- ObjectivesPlugin.objectives.get(5).gate = MainApp.sResources.getString(R.string.objectives_5_gate);
+ ObjectivesPlugin.objectives.get(0).objective = MainApp.gs(R.string.objectives_0_objective);
+ ObjectivesPlugin.objectives.get(1).objective = MainApp.gs(R.string.objectives_1_objective);
+ ObjectivesPlugin.objectives.get(2).objective = MainApp.gs(R.string.objectives_2_objective);
+ ObjectivesPlugin.objectives.get(3).objective = MainApp.gs(R.string.objectives_3_objective);
+ ObjectivesPlugin.objectives.get(4).objective = MainApp.gs(R.string.objectives_4_objective);
+ ObjectivesPlugin.objectives.get(5).objective = MainApp.gs(R.string.objectives_5_objective);
+ ObjectivesPlugin.objectives.get(6).objective = MainApp.gs(R.string.objectives_6_objective);
+ ObjectivesPlugin.objectives.get(7).objective = MainApp.gs(R.string.objectives_7_objective);
+ ObjectivesPlugin.objectives.get(0).gate = MainApp.gs(R.string.objectives_0_gate);
+ ObjectivesPlugin.objectives.get(1).gate = MainApp.gs(R.string.objectives_1_gate);
+ ObjectivesPlugin.objectives.get(2).gate = MainApp.gs(R.string.objectives_2_gate);
+ ObjectivesPlugin.objectives.get(3).gate = MainApp.gs(R.string.objectives_3_gate);
+ ObjectivesPlugin.objectives.get(4).gate = MainApp.gs(R.string.objectives_4_gate);
+ ObjectivesPlugin.objectives.get(5).gate = MainApp.gs(R.string.objectives_5_gate);
updateGUI();
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Food/FoodFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Food/FoodFragment.java
index 490146cc14..1acf6ea083 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Food/FoodFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Food/FoodFragment.java
@@ -54,7 +54,7 @@ public class FoodFragment extends SubscriberFragment {
ArrayList categories;
ArrayList subcategories;
- final String EMPTY = MainApp.sResources.getString(R.string.none);
+ final String EMPTY = MainApp.gs(R.string.none);
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
@@ -158,7 +158,7 @@ public class FoodFragment extends SubscriberFragment {
// make it unique
categories = new ArrayList<>(catSet);
- categories.add(0, MainApp.sResources.getString(R.string.none));
+ categories.add(0, MainApp.gs(R.string.none));
ArrayAdapter adapterCategories = new ArrayAdapter<>(getContext(),
R.layout.spinner_centered, categories);
@@ -180,7 +180,7 @@ public class FoodFragment extends SubscriberFragment {
// make it unique
subcategories = new ArrayList<>(subCatSet);
- subcategories.add(0, MainApp.sResources.getString(R.string.none));
+ subcategories.add(0, MainApp.gs(R.string.none));
ArrayAdapter adapterSubcategories = new ArrayAdapter<>(getContext(),
R.layout.spinner_centered, subcategories);
@@ -242,14 +242,14 @@ public class FoodFragment extends SubscriberFragment {
holder.ns.setVisibility(food._id != null ? View.VISIBLE : View.GONE);
holder.name.setText(food.name);
holder.portion.setText(food.portion + food.units);
- holder.carbs.setText(food.carbs + MainApp.sResources.getString(R.string.shortgramm));
- holder.fat.setText(MainApp.sResources.getString(R.string.shortfat) + ": " + food.fat + MainApp.sResources.getString(R.string.shortgramm));
+ holder.carbs.setText(food.carbs + MainApp.gs(R.string.shortgramm));
+ holder.fat.setText(MainApp.gs(R.string.shortfat) + ": " + food.fat + MainApp.gs(R.string.shortgramm));
if (food.fat == 0)
holder.fat.setVisibility(View.INVISIBLE);
- holder.protein.setText(MainApp.sResources.getString(R.string.shortprotein) + ": " + food.protein + MainApp.sResources.getString(R.string.shortgramm));
+ holder.protein.setText(MainApp.gs(R.string.shortprotein) + ": " + food.protein + MainApp.gs(R.string.shortgramm));
if (food.protein == 0)
holder.protein.setVisibility(View.INVISIBLE);
- holder.energy.setText(MainApp.sResources.getString(R.string.shortenergy) + ": " + food.energy + MainApp.sResources.getString(R.string.shortkilojoul));
+ holder.energy.setText(MainApp.gs(R.string.shortenergy) + ": " + food.energy + MainApp.gs(R.string.shortkilojoul));
if (food.energy == 0)
holder.energy.setVisibility(View.INVISIBLE);
holder.remove.setTag(food);
@@ -291,9 +291,9 @@ public class FoodFragment extends SubscriberFragment {
case R.id.food_remove:
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
- builder.setTitle(MainApp.sResources.getString(R.string.confirmation));
- builder.setMessage(MainApp.sResources.getString(R.string.removerecord) + "\n" + food.name);
- builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ builder.setTitle(MainApp.gs(R.string.confirmation));
+ builder.setMessage(MainApp.gs(R.string.removerecord) + "\n" + food.name);
+ builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
final String _id = food._id;
if (_id != null && !_id.equals("")) {
@@ -302,7 +302,7 @@ public class FoodFragment extends SubscriberFragment {
MainApp.getSpecificPlugin(FoodPlugin.class).getService().delete(food);
}
});
- builder.setNegativeButton(MainApp.sResources.getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
break;
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinOrefBasePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinOrefBasePlugin.java
index 672c5cfeb6..2c46cd7bb6 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinOrefBasePlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinOrefBasePlugin.java
@@ -56,7 +56,7 @@ public abstract class InsulinOrefBasePlugin extends PluginBase implements Insuli
}
public String getNotificationPattern() {
- return MainApp.sResources.getString(R.string.dia_too_short);
+ return MainApp.gs(R.string.dia_too_short);
}
public double getUserDefinedDia() {
@@ -98,7 +98,7 @@ public abstract class InsulinOrefBasePlugin extends PluginBase implements Insuli
String comment = commentStandardText();
double userDia = getUserDefinedDia();
if (userDia < MIN_DIA) {
- comment += "\n" + String.format(MainApp.sResources.getString(R.string.dia_too_short), userDia, MIN_DIA);
+ comment += "\n" + String.format(MainApp.gs(R.string.dia_too_short), userDia, MIN_DIA);
}
return comment;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinOrefFreePeakPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinOrefFreePeakPlugin.java
index 3a19573d71..a710f742a7 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinOrefFreePeakPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinOrefFreePeakPlugin.java
@@ -33,12 +33,12 @@ public class InsulinOrefFreePeakPlugin extends InsulinOrefBasePlugin {
}
public String getFriendlyName() {
- return MainApp.sResources.getString(R.string.free_peak_oref);
+ return MainApp.gs(R.string.free_peak_oref);
}
@Override
public String commentStandardText() {
- return MainApp.sResources.getString(R.string.insulin_peak_time) + ": " + getPeak();
+ return MainApp.gs(R.string.insulin_peak_time) + ": " + getPeak();
}
@Override
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinOrefRapidActingPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinOrefRapidActingPlugin.java
index cd7769b55b..a8f9761771 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinOrefRapidActingPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinOrefRapidActingPlugin.java
@@ -32,12 +32,12 @@ public class InsulinOrefRapidActingPlugin extends InsulinOrefBasePlugin {
@Override
public String getFriendlyName() {
- return MainApp.sResources.getString(R.string.rapid_acting_oref);
+ return MainApp.gs(R.string.rapid_acting_oref);
}
@Override
public String commentStandardText() {
- return MainApp.sResources.getString(R.string.fastactinginsulincomment);
+ return MainApp.gs(R.string.fastactinginsulincomment);
}
@Override
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinOrefUltraRapidActingPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinOrefUltraRapidActingPlugin.java
index 0e20f8dd42..ba5fc99011 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinOrefUltraRapidActingPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinOrefUltraRapidActingPlugin.java
@@ -32,17 +32,17 @@ public class InsulinOrefUltraRapidActingPlugin extends InsulinOrefBasePlugin {
@Override
public String getName() {
- return MainApp.sResources.getString(R.string.ultrarapid_oref);
+ return MainApp.gs(R.string.ultrarapid_oref);
}
@Override
public String getFriendlyName() {
- return MainApp.sResources.getString(R.string.ultrarapid_oref);
+ return MainApp.gs(R.string.ultrarapid_oref);
}
@Override
public String commentStandardText() {
- return MainApp.sResources.getString(R.string.ultrafastactinginsulincomment);
+ return MainApp.gs(R.string.ultrafastactinginsulincomment);
}
@Override
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/AutosensData.java b/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/AutosensData.java
index 693a6fad55..79ab63e2ac 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/AutosensData.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/AutosensData.java
@@ -164,9 +164,4 @@ public class AutosensData implements DataPointWithLabelInterface {
return MainApp.gc(R.color.cob);
}
- @Override
- public int getSecondColor() {
- return 0;
- }
-
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/CobInfo.java b/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/CobInfo.java
index 90b72132bd..d8b6d7674a 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/CobInfo.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/CobInfo.java
@@ -1,7 +1,10 @@
package info.nightscout.androidaps.plugins.IobCobCalculator;
+import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import info.nightscout.utils.DecimalFormatter;
+
public class CobInfo {
/** All COB up to now, including carbs not yet processed by IobCob calculation. */
@Nullable
@@ -12,4 +15,17 @@ public class CobInfo {
this.displayCob = displayCob;
this.futureCarbs = futureCarbs;
}
+
+ @NonNull
+ public String generateCOBString() {
+ String cobStringResult = "--g";
+ if (displayCob != null) {
+ cobStringResult = DecimalFormatter.to0Decimal(displayCob);
+ if (futureCarbs > 0) {
+ cobStringResult += "(" + DecimalFormatter.to0Decimal(futureCarbs) + ")";
+ }
+ cobStringResult += "g";
+ }
+ return cobStringResult;
+ }
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobCalculatorPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobCalculatorPlugin.java
index 3552931586..89d66fd891 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobCalculatorPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobCalculatorPlugin.java
@@ -1,6 +1,7 @@
package info.nightscout.androidaps.plugins.IobCobCalculator;
import android.os.SystemClock;
+import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.util.LongSparseArray;
@@ -404,6 +405,8 @@ public class IobCobCalculatorPlugin extends PluginBase {
}
}
+
+ @NonNull
public CobInfo getCobInfo(boolean _synchronized, String reason) {
AutosensData autosensData = _synchronized ? getLastAutosensDataSynchronized(reason) : getLastAutosensData(reason);
Double displayCob = null;
@@ -414,6 +417,7 @@ public class IobCobCalculatorPlugin extends PluginBase {
if (autosensData != null) {
displayCob = autosensData.cob;
for (Treatment treatment : treatments) {
+ if (!treatment.isValid) continue;
if (IobCobCalculatorPlugin.roundUpTime(treatment.date) > IobCobCalculatorPlugin.roundUpTime(autosensData.time)
&& treatment.date <= now && treatment.carbs > 0) {
displayCob += treatment.carbs;
@@ -421,6 +425,7 @@ public class IobCobCalculatorPlugin extends PluginBase {
}
}
for (Treatment treatment : treatments) {
+ if (!treatment.isValid) continue;
if (treatment.date > now && treatment.carbs > 0) {
futureCarbs += treatment.carbs;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobThread.java b/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobThread.java
index c37730b227..9818ed17e4 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobThread.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobThread.java
@@ -98,7 +98,8 @@ public class IobCobThread extends Thread {
AutosensData previous = autosensDataTable.get(prevDataTime);
// start from oldest to be able sub cob
for (int i = bucketed_data.size() - 4; i >= 0; i--) {
- MainApp.bus().post(new EventIobCalculationProgress(i + "/" + bucketed_data.size()));
+ String progress = i + (MainApp.isDev() ? " (" + from + ")" : "");
+ MainApp.bus().post(new EventIobCalculationProgress(progress));
if (iobCobCalculatorPlugin.stopCalculationTrigger) {
iobCobCalculatorPlugin.stopCalculationTrigger = false;
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/APSResult.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/APSResult.java
index 7a9c4deae9..87e55c7dc6 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/APSResult.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/APSResult.java
@@ -52,23 +52,23 @@ public class APSResult {
String ret;
// rate
if (rate == 0 && duration == 0)
- ret = MainApp.sResources.getString(R.string.canceltemp) + "\n";
+ ret = MainApp.gs(R.string.canceltemp) + "\n";
else if (rate == -1)
- ret = MainApp.sResources.getString(R.string.let_temp_basal_run) + "\n";
+ ret = MainApp.gs(R.string.let_temp_basal_run) + "\n";
else
- ret = MainApp.sResources.getString(R.string.rate) + ": " + DecimalFormatter.to2Decimal(rate) + " U/h " +
+ ret = MainApp.gs(R.string.rate) + ": " + DecimalFormatter.to2Decimal(rate) + " U/h " +
"(" + DecimalFormatter.to2Decimal(rate / pump.getBaseBasalRate() * 100) + "%) \n" +
- MainApp.sResources.getString(R.string.duration) + ": " + DecimalFormatter.to2Decimal(duration) + " min\n";
+ MainApp.gs(R.string.duration) + ": " + DecimalFormatter.to2Decimal(duration) + " min\n";
// smb
if (smb != 0)
ret += ("SMB: " + DecimalFormatter.toPumpSupportedBolus(smb) + " U\n");
// reason
- ret += MainApp.sResources.getString(R.string.reason) + ": " + reason;
+ ret += MainApp.gs(R.string.reason) + ": " + reason;
return ret;
} else
- return MainApp.sResources.getString(R.string.nochangerequested);
+ return MainApp.gs(R.string.nochangerequested);
}
public Spanned toSpanned() {
@@ -77,23 +77,23 @@ public class APSResult {
String ret;
// rate
if (rate == 0 && duration == 0)
- ret = MainApp.sResources.getString(R.string.canceltemp) + "
";
+ ret = MainApp.gs(R.string.canceltemp) + "
";
else if (rate == -1)
- ret = MainApp.sResources.getString(R.string.let_temp_basal_run) + "
";
+ ret = MainApp.gs(R.string.let_temp_basal_run) + "
";
else
- ret = "" + MainApp.sResources.getString(R.string.rate) + ": " + DecimalFormatter.to2Decimal(rate) + " U/h " +
+ ret = "" + MainApp.gs(R.string.rate) + ": " + DecimalFormatter.to2Decimal(rate) + " U/h " +
"(" + DecimalFormatter.to2Decimal(rate / pump.getBaseBasalRate() * 100) + "%)
" +
- "" + MainApp.sResources.getString(R.string.duration) + ": " + DecimalFormatter.to2Decimal(duration) + " min
";
+ "" + MainApp.gs(R.string.duration) + ": " + DecimalFormatter.to2Decimal(duration) + " min
";
// smb
if (smb != 0)
ret += ("" + "SMB" + ": " + DecimalFormatter.toPumpSupportedBolus(smb) + " U
");
// reason
- ret += "" + MainApp.sResources.getString(R.string.reason) + ": " + reason.replace("<", "<").replace(">", ">");
+ ret += "" + MainApp.gs(R.string.reason) + ": " + reason.replace("<", "<").replace(">", ">");
return Html.fromHtml(ret);
} else
- return Html.fromHtml(MainApp.sResources.getString(R.string.nochangerequested));
+ return Html.fromHtml(MainApp.gs(R.string.nochangerequested));
}
public APSResult() {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopFragment.java
index 5285dc7831..4ad35c0d02 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopFragment.java
@@ -65,7 +65,7 @@ public class LoopFragment extends SubscriberFragment {
@OnClick(R.id.loop_run)
void onRunClick() {
- lastRunView.setText(MainApp.sResources.getString(R.string.executing));
+ lastRunView.setText(MainApp.gs(R.string.executing));
new Thread(() -> LoopPlugin.getPlugin().invoke("Loop button", true)).start();
FabricPrivacy.getInstance().logCustom(new CustomEvent("Loop_Run"));
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java
index 43d00b24af..f6ec0ff7ab 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java
@@ -258,7 +258,7 @@ public class LoopPlugin extends PluginBase {
Constraint loopEnabled = MainApp.getConstraintChecker().isLoopInvokationAllowed();
if (!loopEnabled.value()) {
- String message = MainApp.sResources.getString(R.string.loopdisabled) + "\n" + loopEnabled.getReasons();
+ String message = MainApp.gs(R.string.loopdisabled) + "\n" + loopEnabled.getReasons();
log.debug(message);
MainApp.bus().post(new EventLoopSetLastRunGui(message));
return;
@@ -272,8 +272,8 @@ public class LoopPlugin extends PluginBase {
Profile profile = MainApp.getConfigBuilder().getProfile();
if (!MainApp.getConfigBuilder().isProfileValid("Loop")) {
- log.debug(MainApp.sResources.getString(R.string.noprofileselected));
- MainApp.bus().post(new EventLoopSetLastRunGui(MainApp.sResources.getString(R.string.noprofileselected)));
+ log.debug(MainApp.gs(R.string.noprofileselected));
+ MainApp.bus().post(new EventLoopSetLastRunGui(MainApp.gs(R.string.noprofileselected)));
return;
}
@@ -288,7 +288,7 @@ public class LoopPlugin extends PluginBase {
// Check if we have any result
if (result == null) {
- MainApp.bus().post(new EventLoopSetLastRunGui(MainApp.sResources.getString(R.string.noapsselected)));
+ MainApp.bus().post(new EventLoopSetLastRunGui(MainApp.gs(R.string.noapsselected)));
return;
}
@@ -317,14 +317,14 @@ public class LoopPlugin extends PluginBase {
NSUpload.uploadDeviceStatus();
if (isSuspended()) {
- log.debug(MainApp.sResources.getString(R.string.loopsuspended));
- MainApp.bus().post(new EventLoopSetLastRunGui(MainApp.sResources.getString(R.string.loopsuspended)));
+ log.debug(MainApp.gs(R.string.loopsuspended));
+ MainApp.bus().post(new EventLoopSetLastRunGui(MainApp.gs(R.string.loopsuspended)));
return;
}
if (pump.isSuspended()) {
- log.debug(MainApp.sResources.getString(R.string.pumpsuspended));
- MainApp.bus().post(new EventLoopSetLastRunGui(MainApp.sResources.getString(R.string.pumpsuspended)));
+ log.debug(MainApp.gs(R.string.pumpsuspended));
+ MainApp.bus().post(new EventLoopSetLastRunGui(MainApp.gs(R.string.pumpsuspended)));
return;
}
@@ -376,7 +376,7 @@ public class LoopPlugin extends PluginBase {
NotificationCompat.Builder builder =
new NotificationCompat.Builder(MainApp.instance().getApplicationContext(), CHANNEL_ID);
builder.setSmallIcon(R.drawable.notif_icon)
- .setContentTitle(MainApp.sResources.getString(R.string.openloop_newsuggestion))
+ .setContentTitle(MainApp.gs(R.string.openloop_newsuggestion))
.setContentText(resultAfterConstraints.toString())
.setAutoCancel(true)
.setPriority(Notification.PRIORITY_HIGH)
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientFragment.java
index 39e24f8b38..3bff1c9be3 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientFragment.java
@@ -110,16 +110,16 @@ public class NSClientFragment extends SubscriberFragment implements View.OnClick
final Context context = getContext();
AlertDialog.Builder builder = new AlertDialog.Builder(context);
- builder.setTitle(this.getContext().getString(R.string.confirmation));
+ builder.setTitle(MainApp.gs(R.string.confirmation));
builder.setMessage("Clear queue? All data in queue will be lost!");
- builder.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
+ builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
UploadQueue.clearQueue();
updateGUI();
FabricPrivacy.getInstance().logCustom(new CustomEvent("NSClientClearQueue"));
}
});
- builder.setNegativeButton(getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
break;
case R.id.nsclientinternal_showqueue:
@@ -165,7 +165,7 @@ public class NSClientFragment extends SubscriberFragment implements View.OnClick
logScrollview.fullScroll(ScrollView.FOCUS_DOWN);
}
urlTextView.setText(NSClientPlugin.getPlugin().url());
- Spanned queuetext = Html.fromHtml(MainApp.sResources.getString(R.string.queue) + " " + UploadQueue.size() + "");
+ Spanned queuetext = Html.fromHtml(MainApp.gs(R.string.queue) + " " + UploadQueue.size() + "");
queueTextView.setText(queuetext);
statusTextView.setText(NSClientPlugin.getPlugin().status);
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientPlugin.java
index 0525a3a9dd..c43297ccf6 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientPlugin.java
@@ -18,12 +18,12 @@ import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
-import info.nightscout.androidaps.BuildConfig;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.events.EventAppExit;
+import info.nightscout.androidaps.events.EventChargingState;
import info.nightscout.androidaps.events.EventNetworkChange;
import info.nightscout.androidaps.events.EventPreferenceChange;
import info.nightscout.androidaps.interfaces.PluginBase;
@@ -33,7 +33,6 @@ import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientN
import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientStatus;
import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientUpdateGUI;
import info.nightscout.androidaps.plugins.NSClientInternal.services.NSClientService;
-import info.nightscout.androidaps.receivers.NetworkChangeReceiver;
import info.nightscout.utils.SP;
import info.nightscout.utils.ToastUtils;
@@ -55,13 +54,14 @@ public class NSClientPlugin extends PluginBase {
Spanned textLog = Html.fromHtml("");
public boolean paused = false;
- public boolean allowed = true;
boolean autoscroll = true;
public String status = "";
public NSClientService nsClientService = null;
+ private NsClientReceiverDelegate nsClientReceiverDelegate;
+
private NSClientPlugin() {
super(new PluginDescription()
.mainType(PluginType.GENERAL)
@@ -82,8 +82,16 @@ public class NSClientPlugin extends PluginBase {
handlerThread.start();
handler = new Handler(handlerThread.getLooper());
}
+
+ nsClientReceiverDelegate =
+ new NsClientReceiverDelegate(MainApp.instance().getApplicationContext(), MainApp.bus());
}
+ public boolean isAllowed() {
+ return nsClientReceiverDelegate.allowed;
+ }
+
+
@Override
protected void onStart() {
MainApp.bus().register(this);
@@ -92,9 +100,7 @@ public class NSClientPlugin extends PluginBase {
context.bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
super.onStart();
- EventNetworkChange event = NetworkChangeReceiver.grabNetworkStatus();
- if (event != null)
- MainApp.bus().post(event);
+ nsClientReceiverDelegate.registerReceivers();
}
@Override
@@ -102,8 +108,26 @@ public class NSClientPlugin extends PluginBase {
MainApp.bus().unregister(this);
Context context = MainApp.instance().getApplicationContext();
context.unbindService(mConnection);
+
+ nsClientReceiverDelegate.unregisterReceivers();
}
+ @Subscribe
+ public void onStatusEvent(EventPreferenceChange ev) {
+ nsClientReceiverDelegate.onStatusEvent(ev);
+ }
+
+ @Subscribe
+ public void onStatusEvent(final EventChargingState ev) {
+ nsClientReceiverDelegate.onStatusEvent(ev);
+ }
+
+ @Subscribe
+ public void onStatusEvent(final EventNetworkChange ev) {
+ nsClientReceiverDelegate.onStatusEvent(ev);
+ }
+
+
private ServiceConnection mConnection = new ServiceConnection() {
public void onServiceDisconnected(ComponentName name) {
@@ -119,41 +143,12 @@ public class NSClientPlugin extends PluginBase {
}
};
- @Subscribe
- public void onStatusEvent(EventPreferenceChange ev) {
- if (ev.isChanged(R.string.key_ns_wifionly) ||
- ev.isChanged(R.string.key_ns_wifi_ssids) ||
- ev.isChanged(R.string.key_ns_allowroaming)
- ) {
- EventNetworkChange event = NetworkChangeReceiver.grabNetworkStatus();
- if (event != null)
- MainApp.bus().post(event);
- }
- }
-
- @Subscribe
- public void onStatusEvent(final EventNetworkChange ev) {
- boolean wifiOnly = SP.getBoolean(R.string.key_ns_wifionly, false);
- String allowedSSIDs = SP.getString(R.string.key_ns_wifi_ssids, "");
- boolean allowRoaming = SP.getBoolean(R.string.key_ns_allowroaming, true) && !wifiOnly;
-
- boolean newAllowedState = true;
-
- if (!ev.wifiConnected && wifiOnly) newAllowedState = false;
- if (ev.wifiConnected && !allowedSSIDs.isEmpty() && !allowedSSIDs.contains(ev.ssid))
- newAllowedState = false;
- if (!allowRoaming && ev.roaming) newAllowedState = false;
-
- if (newAllowedState != allowed) {
- allowed = newAllowedState;
- MainApp.bus().post(new EventPreferenceChange(R.string.key_nsclientinternal_paused));
- }
- }
-
@Subscribe
public void onStatusEvent(final EventAppExit ignored) {
- if (nsClientService != null)
+ if (nsClientService != null) {
MainApp.instance().getApplicationContext().unbindService(mConnection);
+ nsClientReceiverDelegate.unregisterReceivers();
+ }
}
@Subscribe
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NsClientReceiverDelegate.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NsClientReceiverDelegate.java
new file mode 100644
index 0000000000..04b587ca24
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NsClientReceiverDelegate.java
@@ -0,0 +1,138 @@
+package info.nightscout.androidaps.plugins.NSClientInternal;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.net.ConnectivityManager;
+import android.net.wifi.WifiManager;
+
+import com.squareup.otto.Bus;
+
+import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.events.EventChargingState;
+import info.nightscout.androidaps.events.EventNetworkChange;
+import info.nightscout.androidaps.events.EventPreferenceChange;
+import info.nightscout.androidaps.receivers.ChargingStateReceiver;
+import info.nightscout.androidaps.receivers.NetworkChangeReceiver;
+import info.nightscout.utils.SP;
+
+class NsClientReceiverDelegate {
+
+ private final Context context;
+ private final Bus bus;
+
+ private NetworkChangeReceiver networkChangeReceiver = new NetworkChangeReceiver();
+ private ChargingStateReceiver chargingStateReceiver = new ChargingStateReceiver();
+
+ private boolean allowedChargingState = true;
+ private boolean allowedNetworkState = true;
+ boolean allowed = true;
+
+ NsClientReceiverDelegate(Context context, Bus bus) {
+ this.context = context;
+ this.bus = bus;
+ }
+
+ void registerReceivers() {
+ Context context = MainApp.instance().getApplicationContext();
+ // register NetworkChangeReceiver --> https://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html
+ // Nougat is not providing Connectivity-Action anymore ;-(
+ context.registerReceiver(networkChangeReceiver,
+ new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
+ context.registerReceiver(networkChangeReceiver,
+ new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION));
+
+ EventNetworkChange event = networkChangeReceiver.grabNetworkStatus(context);
+ if (event != null)
+ bus.post(event);
+
+ context.registerReceiver(chargingStateReceiver,
+ new IntentFilter(Intent.ACTION_POWER_CONNECTED));
+ context.registerReceiver(chargingStateReceiver,
+ new IntentFilter(Intent.ACTION_POWER_DISCONNECTED));
+
+ EventChargingState eventChargingState = chargingStateReceiver.grabChargingState(context);
+ if (eventChargingState != null)
+ bus.post(eventChargingState);
+
+ }
+
+ void unregisterReceivers() {
+ context.unregisterReceiver(networkChangeReceiver);
+ context.unregisterReceiver(chargingStateReceiver);
+ }
+
+ void onStatusEvent(EventPreferenceChange ev) {
+ if (ev.isChanged(R.string.key_ns_wifionly) ||
+ ev.isChanged(R.string.key_ns_wifi_ssids) ||
+ ev.isChanged(R.string.key_ns_allowroaming)
+ ) {
+ EventNetworkChange event = networkChangeReceiver.grabNetworkStatus(MainApp.instance().getApplicationContext());
+ if (event != null)
+ bus.post(event);
+ } else if (ev.isChanged(R.string.key_ns_chargingonly)) {
+ EventChargingState event = chargingStateReceiver.grabChargingState(MainApp.instance().getApplicationContext());
+ if (event != null)
+ bus.post(event);
+ }
+ }
+
+ void onStatusEvent(final EventChargingState ev) {
+ boolean newChargingState = calculateStatus(ev);
+
+ if (newChargingState != allowedChargingState) {
+ allowedChargingState = newChargingState;
+ processStateChange();
+ }
+ }
+
+ void onStatusEvent(final EventNetworkChange ev) {
+ boolean newNetworkState = calculateStatus(ev);
+
+ if (newNetworkState != allowedNetworkState) {
+ allowedNetworkState = newNetworkState;
+ processStateChange();
+ }
+ }
+
+ void processStateChange() {
+ boolean newAllowedState = allowedChargingState && allowedNetworkState;
+ if (newAllowedState != allowed) {
+ allowed = newAllowedState;
+ bus.post(new EventPreferenceChange(R.string.key_nsclientinternal_paused));
+ }
+ }
+
+ boolean calculateStatus(final EventChargingState ev) {
+ boolean chargingOnly = SP.getBoolean(R.string.key_ns_chargingonly, false);
+
+ boolean newAllowedState = true;
+
+ if (!ev.isCharging && chargingOnly) newAllowedState = false;
+
+ return newAllowedState;
+ }
+
+ boolean calculateStatus(final EventNetworkChange ev) {
+ boolean wifiOnly = SP.getBoolean(R.string.key_ns_wifionly, false);
+ String allowedSSIDs = SP.getString(R.string.key_ns_wifi_ssids, "");
+ boolean allowRoaming = SP.getBoolean(R.string.key_ns_allowroaming, true);
+
+ boolean newAllowedState = true;
+
+ if (ev.wifiConnected) {
+ if (!allowedSSIDs.trim().isEmpty() && !allowedSSIDs.contains(ev.ssid)) {
+ newAllowedState = false;
+ }
+ } else {
+ if ((!allowRoaming && ev.roaming) || wifiOnly) {
+ newAllowedState = false;
+ }
+ }
+
+
+ return newAllowedState;
+ }
+
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/DbLogger.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/DbLogger.java
index 79a66186fb..2723fc0748 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/DbLogger.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/DbLogger.java
@@ -22,7 +22,7 @@ public class DbLogger {
public static void dbAdd(Intent intent, String data) {
List q = MainApp.instance().getApplicationContext().getPackageManager().queryBroadcastReceivers(intent, 0);
if (q.size() < 1) {
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(),MainApp.sResources.getString(R.string.nsclientnotinstalled));
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(),MainApp.gs(R.string.nsclientnotinstalled));
log.error("DBADD No receivers");
} else if (Config.logNSUpload)
log.debug("DBADD dbAdd " + q.size() + " receivers " + data);
@@ -31,7 +31,7 @@ public class DbLogger {
public static void dbRemove(Intent intent, String data) {
List q = MainApp.instance().getApplicationContext().getPackageManager().queryBroadcastReceivers(intent, 0);
if (q.size() < 1) {
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(),MainApp.sResources.getString(R.string.nsclientnotinstalled));
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(),MainApp.gs(R.string.nsclientnotinstalled));
log.error("DBREMOVE No receivers");
} else if (Config.logNSUpload)
log.debug("DBREMOVE dbRemove " + q.size() + " receivers " + data);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java
index 445bef32fe..fab9a181c4 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java
@@ -33,7 +33,6 @@ import info.nightscout.androidaps.db.DbRequest;
import info.nightscout.androidaps.events.EventAppExit;
import info.nightscout.androidaps.events.EventConfigBuilderChange;
import info.nightscout.androidaps.events.EventPreferenceChange;
-import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.plugins.NSClientInternal.NSClientPlugin;
import info.nightscout.androidaps.plugins.NSClientInternal.UploadQueue;
@@ -203,7 +202,7 @@ public class NSClientService extends Service {
nsAPIhashCode = Hashing.sha1().hashString(nsAPISecret, Charsets.UTF_8).toString();
MainApp.bus().post(new EventNSClientStatus("Initializing"));
- if (!MainApp.getSpecificPlugin(NSClientPlugin.class).allowed) {
+ if (!MainApp.getSpecificPlugin(NSClientPlugin.class).isAllowed()) {
MainApp.bus().post(new EventNSClientNewLog("NSCLIENT", "not allowed"));
MainApp.bus().post(new EventNSClientStatus("Not allowed"));
} else if (MainApp.getSpecificPlugin(NSClientPlugin.class).paused) {
@@ -251,6 +250,7 @@ public class NSClientService extends Service {
private Emitter.Listener onDisconnect = new Emitter.Listener() {
@Override
public void call(Object... args) {
+ log.debug("disconnect reason: {}", args);
MainApp.bus().post(new EventNSClientNewLog("NSCLIENT", "disconnect event"));
}
};
@@ -309,7 +309,7 @@ public class NSClientService extends Service {
MainApp.bus().post(new EventNSClientNewLog("ERROR", "Write treatment permission not granted !!!!"));
}
if (!hasWriteAuth) {
- Notification noperm = new Notification(Notification.NSCLIENT_NO_WRITE_PERMISSION, MainApp.sResources.getString(R.string.nowritepermission), Notification.URGENT);
+ Notification noperm = new Notification(Notification.NSCLIENT_NO_WRITE_PERMISSION, MainApp.gs(R.string.nowritepermission), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(noperm));
} else {
MainApp.bus().post(new EventDismissNotification(Notification.NSCLIENT_NO_WRITE_PERMISSION));
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAFragment.java
index 2e6bb277e6..f05b0ac696 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAFragment.java
@@ -107,7 +107,7 @@ public class OpenAPSAMAFragment extends SubscriberFragment implements View.OnCli
currentTempView.setText(JSONFormatter.format(determineBasalAdapterAMAJS.getCurrentTempParam()));
try {
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.gs(R.string.array_of_elements), iobArray.length()) + "\n" + JSONFormatter.format(iobArray.getString(0)));
} catch (JSONException e) {
log.error("Unhandled exception", e);
iobDataView.setText("JSONException");
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java
index 17e1dd77e9..143456f6fc 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java
@@ -104,23 +104,23 @@ public class OpenAPSAMAPlugin extends PluginBase implements APSInterface {
PumpInterface pump = ConfigBuilderPlugin.getActivePump();
if (profile == null) {
- MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.noprofileselected)));
+ MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.gs(R.string.noprofileselected)));
if (Config.logAPSResult)
- log.debug(MainApp.instance().getString(R.string.noprofileselected));
+ log.debug(MainApp.gs(R.string.noprofileselected));
return;
}
if (!isEnabled(PluginType.APS)) {
- MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_disabled)));
+ MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.gs(R.string.openapsma_disabled)));
if (Config.logAPSResult)
- log.debug(MainApp.instance().getString(R.string.openapsma_disabled));
+ log.debug(MainApp.gs(R.string.openapsma_disabled));
return;
}
if (glucoseStatus == null) {
- MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_noglucosedata)));
+ MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.gs(R.string.openapsma_noglucosedata)));
if (Config.logAPSResult)
- log.debug(MainApp.instance().getString(R.string.openapsma_noglucosedata));
+ log.debug(MainApp.gs(R.string.openapsma_noglucosedata));
return;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java
index 00f1888851..14dac65625 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java
@@ -104,23 +104,23 @@ public class OpenAPSMAPlugin extends PluginBase implements APSInterface {
PumpInterface pump = ConfigBuilderPlugin.getActivePump();
if (profile == null) {
- MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.noprofileselected)));
+ MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.gs(R.string.noprofileselected)));
if (Config.logAPSResult)
- log.debug(MainApp.instance().getString(R.string.noprofileselected));
+ log.debug(MainApp.gs(R.string.noprofileselected));
return;
}
if (!isEnabled(PluginType.APS)) {
- MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_disabled)));
+ MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.gs(R.string.openapsma_disabled)));
if (Config.logAPSResult)
- log.debug(MainApp.instance().getString(R.string.openapsma_disabled));
+ log.debug(MainApp.gs(R.string.openapsma_disabled));
return;
}
if (glucoseStatus == null) {
- MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_noglucosedata)));
+ MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.gs(R.string.openapsma_noglucosedata)));
if (Config.logAPSResult)
- log.debug(MainApp.instance().getString(R.string.openapsma_noglucosedata));
+ log.debug(MainApp.gs(R.string.openapsma_noglucosedata));
return;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBFragment.java
index 7780fcc9b4..724bfcf86c 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBFragment.java
@@ -99,7 +99,7 @@ public class OpenAPSSMBFragment extends SubscriberFragment {
currentTempView.setText(JSONFormatter.format(determineBasalAdapterSMBJS.getCurrentTempParam()).toString().trim());
try {
JSONArray iobArray = new JSONArray(determineBasalAdapterSMBJS.getIobDataParam());
- iobDataView.setText((String.format(MainApp.sResources.getString(R.string.array_of_elements), iobArray.length()) + "\n" + JSONFormatter.format(iobArray.getString(0))).trim());
+ iobDataView.setText((String.format(MainApp.gs(R.string.array_of_elements), iobArray.length()) + "\n" + JSONFormatter.format(iobArray.getString(0))).trim());
} catch (JSONException e) {
log.error("Unhandled exception", e);
iobDataView.setText("JSONException see log for details");
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBPlugin.java
index cd7872ecb1..49a81ea612 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBPlugin.java
@@ -107,23 +107,23 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface {
PumpInterface pump = ConfigBuilderPlugin.getActivePump();
if (profile == null) {
- MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.noprofileselected)));
+ MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.gs(R.string.noprofileselected)));
if (Config.logAPSResult)
- log.debug(MainApp.instance().getString(R.string.noprofileselected));
+ log.debug(MainApp.gs(R.string.noprofileselected));
return;
}
if (!isEnabled(PluginType.APS)) {
- MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_disabled)));
+ MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.gs(R.string.openapsma_disabled)));
if (Config.logAPSResult)
- log.debug(MainApp.instance().getString(R.string.openapsma_disabled));
+ log.debug(MainApp.gs(R.string.openapsma_disabled));
return;
}
if (glucoseStatus == null) {
- MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_noglucosedata)));
+ MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.gs(R.string.openapsma_noglucosedata)));
if (Config.logAPSResult)
- log.debug(MainApp.instance().getString(R.string.openapsma_noglucosedata));
+ log.debug(MainApp.gs(R.string.openapsma_noglucosedata));
return;
}
@@ -255,9 +255,9 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface {
if (newvalue < lowLimit || newvalue > highLimit) {
newvalue = Math.max(newvalue, lowLimit);
newvalue = Math.min(newvalue, highLimit);
- String msg = String.format(MainApp.sResources.getString(R.string.valueoutofrange), valueName);
+ String msg = String.format(MainApp.gs(R.string.valueoutofrange), valueName);
msg += ".\n";
- msg += String.format(MainApp.sResources.getString(R.string.valuelimitedto), value, newvalue);
+ msg += String.format(MainApp.gs(R.string.valuelimitedto), value, newvalue);
log.error(msg);
NSUpload.uploadError(msg);
ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), msg, R.raw.error);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java
index 35906187a6..8ef6ec2fc6 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java
@@ -42,7 +42,7 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL
}
public void setInsulin(double amount) {
- this.amount = amount;
+ BolusProgressDialog.amount = amount;
bolusEnded = false;
}
@@ -53,15 +53,15 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
- getDialog().setTitle(String.format(MainApp.sResources.getString(R.string.overview_bolusprogress_goingtodeliver), amount));
+ getDialog().setTitle(String.format(MainApp.gs(R.string.overview_bolusprogress_goingtodeliver), amount));
View view = inflater.inflate(R.layout.overview_bolusprogress_dialog, container, false);
- stopButton = (Button) view.findViewById(R.id.overview_bolusprogress_stop);
- statusView = (TextView) view.findViewById(R.id.overview_bolusprogress_status);
- stopPressedView = (TextView) view.findViewById(R.id.overview_bolusprogress_stoppressed);
- progressBar = (ProgressBar) view.findViewById(R.id.overview_bolusprogress_progressbar);
+ stopButton = view.findViewById(R.id.overview_bolusprogress_stop);
+ statusView = view.findViewById(R.id.overview_bolusprogress_status);
+ stopPressedView = view.findViewById(R.id.overview_bolusprogress_stoppressed);
+ progressBar = view.findViewById(R.id.overview_bolusprogress_progressbar);
stopButton.setOnClickListener(this);
progressBar.setMax(100);
- statusView.setText(MainApp.sResources.getString(R.string.waitingforpump));
+ statusView.setText(MainApp.gs(R.string.waitingforpump));
setCancelable(false);
stopPressed = false;
return view;
@@ -70,16 +70,28 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL
@Override
public void onResume() {
super.onResume();
- if (getDialog() != null)
- getDialog().getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
- MainApp.bus().register(this);
- running = true;
- if (bolusEnded) dismiss();
+ if(!ConfigBuilderPlugin.getCommandQueue().bolusInQueue()) {
+ bolusEnded = true;
+ }
+ if (bolusEnded) {
+ dismiss();
+ } else {
+ if (getDialog() != null)
+ getDialog().getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ MainApp.subscribe(this);
+ running = true;
+ }
}
@Override
public void dismiss() {
- super.dismiss();
+ try {
+ super.dismiss();
+ } catch (IllegalStateException e) {
+ // dialog not running yet. onResume will try again. Set bolusEnded to make extra
+ // sure onResume will catch this
+ bolusEnded = true;
+ }
if (helperActivity != null) {
helperActivity.finish();
}
@@ -88,7 +100,7 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL
@Override
public void onPause() {
super.onPause();
- MainApp.bus().unregister(this);
+ MainApp.unsubscribe(this);
running = false;
}
@@ -109,16 +121,13 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL
public void onStatusEvent(final EventOverviewBolusProgress ev) {
Activity activity = getActivity();
if (activity != null) {
- activity.runOnUiThread(new Runnable() {
- @Override
- public void run() {
- log.debug("Status: " + ev.status + " Percent: " + ev.percent);
- statusView.setText(ev.status);
- progressBar.setProgress(ev.percent);
- if (ev.percent == 100) {
- stopButton.setVisibility(View.INVISIBLE);
- scheduleDismiss();
- }
+ activity.runOnUiThread(() -> {
+ log.debug("Status: " + ev.status + " Percent: " + ev.percent);
+ statusView.setText(ev.status);
+ progressBar.setProgress(ev.percent);
+ if (ev.percent == 100) {
+ stopButton.setVisibility(View.INVISIBLE);
+ scheduleDismiss();
}
});
}
@@ -133,41 +142,25 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL
@Subscribe
public void onStatusEvent(final EventPumpStatusChanged c) {
-
Activity activity = getActivity();
if (activity != null) {
- activity.runOnUiThread(
- new Runnable() {
- @Override
- public void run() {
- statusView.setText(c.textStatus());
- }
- }
- );
+ activity.runOnUiThread(() -> statusView.setText(c.textStatus()));
}
-
}
private void scheduleDismiss() {
- Thread t = new Thread(new Runnable() {
- @Override
- public void run() {
- SystemClock.sleep(5000);
- BolusProgressDialog.bolusEnded = true;
- Activity activity = getActivity();
- if (activity != null) {
- activity.runOnUiThread(
- new Runnable() {
- @Override
- public void run() {
- try {
- dismiss();
- } catch (Exception e) {
- log.error("Unhandled exception", e);
- }
- }
- });
- }
+ Thread t = new Thread(() -> {
+ SystemClock.sleep(5000);
+ BolusProgressDialog.bolusEnded = true;
+ Activity activity = getActivity();
+ if (activity != null) {
+ activity.runOnUiThread(() -> {
+ try {
+ dismiss();
+ } catch (Exception e) {
+ log.error("Unhandled exception", e);
+ }
+ });
}
});
t.start();
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/EditQuickWizardDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/EditQuickWizardDialog.java
index 2751b800bc..50de25b656 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/EditQuickWizardDialog.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/EditQuickWizardDialog.java
@@ -149,13 +149,13 @@ public class EditQuickWizardDialog extends DialogFragment implements View.OnClic
int getSelection(Spinner spinner) {
String value = spinner.getSelectedItem().toString();
- if (value.equals(MainApp.sResources.getString(R.string.yes)))
+ if (value.equals(MainApp.gs(R.string.yes)))
return QuickWizardEntry.YES;
- if (value.equals(MainApp.sResources.getString(R.string.no)))
+ if (value.equals(MainApp.gs(R.string.no)))
return QuickWizardEntry.NO;
- if (value.equals(MainApp.sResources.getString(R.string.positiveonly)))
+ if (value.equals(MainApp.gs(R.string.positiveonly)))
return QuickWizardEntry.POSITIVE_ONLY;
- if (value.equals(MainApp.sResources.getString(R.string.negativeonly)))
+ if (value.equals(MainApp.gs(R.string.negativeonly)))
return QuickWizardEntry.NEGATIVE_ONLY;
return QuickWizardEntry.NO;
}
@@ -164,19 +164,19 @@ public class EditQuickWizardDialog extends DialogFragment implements View.OnClic
String selection;
switch (value) {
case QuickWizardEntry.YES:
- selection = MainApp.sResources.getString(R.string.yes);
+ selection = MainApp.gs(R.string.yes);
break;
case QuickWizardEntry.NO:
- selection = MainApp.sResources.getString(R.string.no);
+ selection = MainApp.gs(R.string.no);
break;
case QuickWizardEntry.POSITIVE_ONLY:
- selection = MainApp.sResources.getString(R.string.positiveonly);
+ selection = MainApp.gs(R.string.positiveonly);
break;
case QuickWizardEntry.NEGATIVE_ONLY:
- selection = MainApp.sResources.getString(R.string.negativeonly);
+ selection = MainApp.gs(R.string.negativeonly);
break;
default:
- selection = MainApp.sResources.getString(R.string.no);
+ selection = MainApp.gs(R.string.no);
break;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewCarbsDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewCarbsDialog.java
index 5939ab5aa3..2ebab6caab 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewCarbsDialog.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewCarbsDialog.java
@@ -1,9 +1,7 @@
package info.nightscout.androidaps.plugins.Overview.Dialogs;
-import android.content.Intent;
import android.os.Bundle;
import android.os.HandlerThread;
-import android.support.annotation.Nullable;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import android.text.Editable;
@@ -33,15 +31,13 @@ import java.util.List;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
-import info.nightscout.androidaps.data.DetailedBolusInfo;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.db.CareportalEvent;
import info.nightscout.androidaps.db.Source;
import info.nightscout.androidaps.db.TempTarget;
import info.nightscout.androidaps.interfaces.Constraint;
-import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
+import info.nightscout.androidaps.plugins.Treatments.CarbsGenerator;
import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin;
-import info.nightscout.androidaps.queue.Callback;
import info.nightscout.utils.DateUtil;
import info.nightscout.utils.DecimalFormatter;
import info.nightscout.utils.DefaultValueHelper;
@@ -364,47 +360,40 @@ public class NewCarbsDialog extends DialogFragment implements OnClickListener, C
}
accepted = true;
- if (startActivityTTCheckbox.isChecked()) {
- TempTarget tempTarget = new TempTarget()
- .date(System.currentTimeMillis())
- .duration(finalActivityTTDuration)
- .reason(MainApp.gs(R.string.activity))
- .source(Source.USER)
- .low(Profile.toMgdl(finalActivityTT, currentProfile.getUnits()))
- .high(Profile.toMgdl(finalActivityTT, currentProfile.getUnits()));
- TreatmentsPlugin.getPlugin().addToHistoryTempTarget(tempTarget);
- } else if (startEatingSoonTTCheckbox.isChecked()) {
- TempTarget tempTarget = new TempTarget()
- .date(System.currentTimeMillis())
- .duration(finalEatingSoonTTDuration)
- .reason(MainApp.gs(R.string.eatingsoon))
- .source(Source.USER)
- .low(Profile.toMgdl(finalEatigSoonTT, currentProfile.getUnits()))
- .high(Profile.toMgdl(finalEatigSoonTT, currentProfile.getUnits()));
- TreatmentsPlugin.getPlugin().addToHistoryTempTarget(tempTarget);
- } else if (startHypoTTCheckbox.isChecked()) {
- TempTarget tempTarget = new TempTarget()
- .date(System.currentTimeMillis())
- .duration(finalHypoTTDuration)
- .reason(MainApp.gs(R.string.hypo))
- .source(Source.USER)
- .low(Profile.toMgdl(finalHypoTT, currentProfile.getUnits()))
- .high(Profile.toMgdl(finalHypoTT, currentProfile.getUnits()));
- TreatmentsPlugin.getPlugin().addToHistoryTempTarget(tempTarget);
- }
+ if (startActivityTTCheckbox.isChecked()) {
+ TempTarget tempTarget = new TempTarget()
+ .date(System.currentTimeMillis())
+ .duration(finalActivityTTDuration)
+ .reason(MainApp.gs(R.string.activity))
+ .source(Source.USER)
+ .low(Profile.toMgdl(finalActivityTT, currentProfile.getUnits()))
+ .high(Profile.toMgdl(finalActivityTT, currentProfile.getUnits()));
+ TreatmentsPlugin.getPlugin().addToHistoryTempTarget(tempTarget);
+ } else if (startEatingSoonTTCheckbox.isChecked()) {
+ TempTarget tempTarget = new TempTarget()
+ .date(System.currentTimeMillis())
+ .duration(finalEatingSoonTTDuration)
+ .reason(MainApp.gs(R.string.eatingsoon))
+ .source(Source.USER)
+ .low(Profile.toMgdl(finalEatigSoonTT, currentProfile.getUnits()))
+ .high(Profile.toMgdl(finalEatigSoonTT, currentProfile.getUnits()));
+ TreatmentsPlugin.getPlugin().addToHistoryTempTarget(tempTarget);
+ } else if (startHypoTTCheckbox.isChecked()) {
+ TempTarget tempTarget = new TempTarget()
+ .date(System.currentTimeMillis())
+ .duration(finalHypoTTDuration)
+ .reason(MainApp.gs(R.string.hypo))
+ .source(Source.USER)
+ .low(Profile.toMgdl(finalHypoTT, currentProfile.getUnits()))
+ .high(Profile.toMgdl(finalHypoTT, currentProfile.getUnits()));
+ TreatmentsPlugin.getPlugin().addToHistoryTempTarget(tempTarget);
+ }
if (carbsAfterConstraints > 0) {
if (duration == 0) {
- createCarb(carbsAfterConstraints, time, notes);
+ CarbsGenerator.createCarb(carbsAfterConstraints, time, CareportalEvent.CARBCORRECTION, notes);
} else {
- long remainingCarbs = carbsAfterConstraints;
- int ticks = (duration * 4); //duration guaranteed to be integer greater zero
- for (int i = 0; i < ticks; i++){
- long carbTime = time + i * 15 * 60 * 1000;
- long smallCarbAmount = Math.round((1d * remainingCarbs) / (ticks-i)); //on last iteration (ticks-i) is 1 -> smallCarbAmount == remainingCarbs
- remainingCarbs -= smallCarbAmount;
- createCarb(smallCarbAmount, carbTime, notes);
- }
+ CarbsGenerator.generateCarbs(carbsAfterConstraints, time, duration, notes);
}
}
}
@@ -419,31 +408,4 @@ public class NewCarbsDialog extends DialogFragment implements OnClickListener, C
log.error("Unhandled exception", e);
}
}
-
- private void createCarb(long carbs, long time, @Nullable String notes) {
- DetailedBolusInfo carbInfo = new DetailedBolusInfo();
- carbInfo.date = time;
- carbInfo.eventType = CareportalEvent.CARBCORRECTION;
- carbInfo.carbs = carbs;
- carbInfo.context = getContext();
- carbInfo.source = Source.USER;
- carbInfo.notes = notes;
- if (ConfigBuilderPlugin.getActivePump().getPumpDescription().storesCarbInfo && carbInfo.date <= now()) {
- ConfigBuilderPlugin.getCommandQueue().bolus(carbInfo, new Callback() {
- @Override
- public void run() {
- if (!result.success) {
- Intent i = new Intent(MainApp.instance(), ErrorHelperActivity.class);
- i.putExtra("soundid", R.raw.boluserror);
- i.putExtra("status", result.comment);
- i.putExtra("title", MainApp.gs(R.string.treatmentdeliveryerror));
- i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- MainApp.instance().startActivity(i);
- }
- }
- });
- } else {
- TreatmentsPlugin.getPlugin().addToHistoryTreatment(carbInfo);
- }
- }
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java
index e15c34bac8..718b1c6bfa 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java
@@ -270,13 +270,13 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
}
private void saveCheckedStates() {
- 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(MainApp.gs(R.string.key_wizard_include_cob), cobCheckbox.isChecked());
+ SP.putBoolean(MainApp.gs(R.string.key_wizard_include_trend_bg), bgtrendCheckbox.isChecked());
}
private void loadCheckedStates() {
- 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));
+ bgtrendCheckbox.setChecked(SP.getBoolean(MainApp.gs(R.string.key_wizard_include_trend_bg), false));
+ cobCheckbox.setChecked(SP.getBoolean(MainApp.gs(R.string.key_wizard_include_cob), false));
}
@Override
@@ -287,7 +287,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
@Override
public void onNothingSelected(AdapterView> parent) {
- ToastUtils.showToastInUiThread(context, MainApp.sResources.getString(R.string.noprofileselected));
+ ToastUtils.showToastInUiThread(context, MainApp.gs(R.string.noprofileselected));
okButton.setVisibility(View.GONE);
}
@@ -306,20 +306,20 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
if (profile != null && (calculatedTotalInsulin > 0d || calculatedCarbs > 0d)) {
DecimalFormat formatNumber2decimalplaces = new DecimalFormat("0.00");
- String confirmMessage = getString(R.string.entertreatmentquestion);
+ String confirmMessage = MainApp.gs(R.string.entertreatmentquestion);
Double insulinAfterConstraints = MainApp.getConstraintChecker().applyBolusConstraints(new Constraint<>(calculatedTotalInsulin)).value();
Integer carbsAfterConstraints = MainApp.getConstraintChecker().applyCarbsConstraints(new Constraint<>(calculatedCarbs)).value();
- confirmMessage += "
" + getString(R.string.bolus) + ": " + "" + formatNumber2decimalplaces.format(insulinAfterConstraints) + "U" + "";
- confirmMessage += "
" + getString(R.string.carbs) + ": " + carbsAfterConstraints + "g";
+ confirmMessage += "
" + MainApp.gs(R.string.bolus) + ": " + "" + formatNumber2decimalplaces.format(insulinAfterConstraints) + "U" + "";
+ confirmMessage += "
" + MainApp.gs(R.string.carbs) + ": " + carbsAfterConstraints + "g";
if (insulinAfterConstraints - calculatedTotalInsulin != 0 || !carbsAfterConstraints.equals(calculatedCarbs)) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
- builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror));
- builder.setMessage(getString(R.string.constraints_violation) + "\n" + getString(R.string.changeyourinput));
- builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null);
+ builder.setTitle(MainApp.gs(R.string.treatmentdeliveryerror));
+ builder.setMessage(MainApp.gs(R.string.constraints_violation) + "\n" + MainApp.gs(R.string.changeyourinput));
+ builder.setPositiveButton(MainApp.gs(R.string.ok), null);
builder.show();
return;
}
@@ -332,9 +332,9 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
final String finalNotes = notesEdit.getText().toString();
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
- builder.setTitle(MainApp.sResources.getString(R.string.confirmation));
+ builder.setTitle(MainApp.gs(R.string.confirmation));
builder.setMessage(Html.fromHtml(confirmMessage));
- builder.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
+ builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
synchronized (builder) {
if (accepted) {
@@ -356,7 +356,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
Intent i = new Intent(MainApp.instance(), ErrorHelperActivity.class);
i.putExtra("soundid", R.raw.boluserror);
i.putExtra("status", result.comment);
- i.putExtra("title", MainApp.sResources.getString(R.string.tempbasaldeliveryerror));
+ i.putExtra("title", MainApp.gs(R.string.tempbasaldeliveryerror));
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
MainApp.instance().startActivity(i);
}
@@ -382,7 +382,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
Intent i = new Intent(MainApp.instance(), ErrorHelperActivity.class);
i.putExtra("soundid", R.raw.boluserror);
i.putExtra("status", result.comment);
- i.putExtra("title", MainApp.sResources.getString(R.string.treatmentdeliveryerror));
+ i.putExtra("title", MainApp.gs(R.string.treatmentdeliveryerror));
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
MainApp.instance().startActivity(i);
}
@@ -396,7 +396,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
}
}
});
- builder.setNegativeButton(getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
dismiss();
}
@@ -412,14 +412,14 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
ProfileStore profileStore = MainApp.getConfigBuilder().getActiveProfileInterface().getProfile();
if (profile == null) {
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.noprofile));
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.noprofile));
dismiss();
return;
}
ArrayList profileList;
profileList = profileStore.getProfileList();
- profileList.add(0, MainApp.sResources.getString(R.string.active));
+ profileList.add(0, MainApp.gs(R.string.active));
ArrayAdapter adapter = new ArrayAdapter<>(getContext(),
R.layout.spinner_centered, profileList);
@@ -458,7 +458,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
return; // not initialized yet
String selectedAlternativeProfile = profileSpinner.getSelectedItem().toString();
Profile specificProfile;
- if (selectedAlternativeProfile.equals(MainApp.sResources.getString(R.string.active)))
+ if (selectedAlternativeProfile.equals(MainApp.gs(R.string.active)))
specificProfile = MainApp.getConfigBuilder().getProfile();
else
specificProfile = profileStore.getSpecificProfile(selectedAlternativeProfile);
@@ -472,13 +472,13 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
c_correction = MainApp.getConstraintChecker().applyBolusConstraints(new Constraint<>(c_correction)).value();
if (c_correction - corrAfterConstraint != 0) { // c_correction != corrAfterConstraint doesn't work
editCorr.setValue(0d);
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), getString(R.string.bolusconstraintapplied));
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.bolusconstraintapplied));
return;
}
Integer carbsAfterConstraint = MainApp.getConstraintChecker().applyCarbsConstraints(new Constraint<>(c_carbs)).value();
if (c_carbs - carbsAfterConstraint != 0) {
editCarbs.setValue(0d);
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), getString(R.string.carbsconstraintapplied));
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.carbsconstraintapplied));
return;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java
index 2536e8bf5c..3d0970f8f4 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java
@@ -678,9 +678,9 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
final LoopPlugin.LastRun finalLastRun = LoopPlugin.lastRun;
if (finalLastRun != null && finalLastRun.lastAPSRun != null && finalLastRun.constraintsProcessed.isChangeRequested()) {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
- builder.setTitle(getContext().getString(R.string.confirmation));
- builder.setMessage(getContext().getString(R.string.setbasalquestion) + "\n" + finalLastRun.constraintsProcessed);
- builder.setPositiveButton(getContext().getString(R.string.ok), (dialog, id) -> {
+ builder.setTitle(MainApp.gs(R.string.confirmation));
+ builder.setMessage(MainApp.gs(R.string.setbasalquestion) + "\n" + finalLastRun.constraintsProcessed);
+ builder.setPositiveButton(MainApp.gs(R.string.ok), (dialog, id) -> {
hideTempRecommendation();
clearNotification();
MainApp.getConfigBuilder().applyTBRRequest(finalLastRun.constraintsProcessed, profile, new Callback() {
@@ -702,7 +702,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
});
FabricPrivacy.getInstance().logCustom(new CustomEvent("AcceptTemp"));
});
- builder.setNegativeButton(getContext().getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
}
}
@@ -742,18 +742,18 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
}
if (wizard.calculatedTotalInsulin > 0d && quickWizardEntry.carbs() > 0d) {
DecimalFormat formatNumber2decimalplaces = new DecimalFormat("0.00");
- String confirmMessage = getString(R.string.entertreatmentquestion);
+ String confirmMessage = MainApp.gs(R.string.entertreatmentquestion);
Double insulinAfterConstraints = MainApp.getConstraintChecker().applyBolusConstraints(new Constraint<>(wizard.calculatedTotalInsulin)).value();
Integer carbsAfterConstraints = MainApp.getConstraintChecker().applyCarbsConstraints(new Constraint<>(quickWizardEntry.carbs())).value();
- confirmMessage += "\n" + getString(R.string.bolus) + ": " + formatNumber2decimalplaces.format(insulinAfterConstraints) + "U";
- confirmMessage += "\n" + getString(R.string.carbs) + ": " + carbsAfterConstraints + "g";
+ confirmMessage += "\n" + MainApp.gs(R.string.bolus) + ": " + formatNumber2decimalplaces.format(insulinAfterConstraints) + "U";
+ confirmMessage += "\n" + MainApp.gs(R.string.carbs) + ": " + carbsAfterConstraints + "g";
if (!insulinAfterConstraints.equals(wizard.calculatedTotalInsulin) || !carbsAfterConstraints.equals(quickWizardEntry.carbs())) {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle(MainApp.gs(R.string.treatmentdeliveryerror));
- builder.setMessage(getString(R.string.constraints_violation) + "\n" + getString(R.string.changeyourinput));
+ builder.setMessage(MainApp.gs(R.string.constraints_violation) + "\n" + MainApp.gs(R.string.changeyourinput));
builder.setPositiveButton(MainApp.gs(R.string.ok), null);
builder.show();
return;
@@ -766,7 +766,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
accepted = false;
builder.setTitle(MainApp.gs(R.string.confirmation));
builder.setMessage(confirmMessage);
- builder.setPositiveButton(getString(R.string.ok), (dialog, id) -> {
+ builder.setPositiveButton(MainApp.gs(R.string.ok), (dialog, id) -> {
synchronized (builder) {
if (accepted) {
log.debug("guarding: already accepted");
@@ -822,7 +822,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
}
}
});
- builder.setNegativeButton(getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
}
}
@@ -1091,7 +1091,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
if (showAcceptButton && pump.isInitialized() && !pump.isSuspended() && LoopPlugin.getPlugin().isEnabled(PluginType.LOOP)) {
acceptTempLayout.setVisibility(View.VISIBLE);
- acceptTempButton.setText(getContext().getString(R.string.setbasalquestion) + "\n" + finalLastRun.constraintsProcessed);
+ acceptTempButton.setText(MainApp.gs(R.string.setbasalquestion) + "\n" + finalLastRun.constraintsProcessed);
} else {
acceptTempLayout.setVisibility(View.GONE);
}
@@ -1269,14 +1269,14 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
iobView.setText(iobtext);
iobView.setOnClickListener(v -> {
String iobtext1 = DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob) + "U\n"
- + getString(R.string.bolus) + ": " + DecimalFormatter.to2Decimal(bolusIob.iob) + "U\n"
- + getString(R.string.basal) + ": " + DecimalFormatter.to2Decimal(basalIob.basaliob) + "U\n";
+ + MainApp.gs(R.string.bolus) + ": " + DecimalFormatter.to2Decimal(bolusIob.iob) + "U\n"
+ + MainApp.gs(R.string.basal) + ": " + DecimalFormatter.to2Decimal(basalIob.basaliob) + "U\n";
OKDialog.show(getActivity(), MainApp.gs(R.string.iob), iobtext1, null);
});
} else if (MainApp.sResources.getBoolean(R.bool.isTablet)) {
String iobtext = DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob) + "U ("
- + getString(R.string.bolus) + ": " + DecimalFormatter.to2Decimal(bolusIob.iob) + "U "
- + getString(R.string.basal) + ": " + DecimalFormatter.to2Decimal(basalIob.basaliob) + "U)";
+ + MainApp.gs(R.string.bolus) + ": " + DecimalFormatter.to2Decimal(bolusIob.iob) + "U "
+ + MainApp.gs(R.string.basal) + ": " + DecimalFormatter.to2Decimal(basalIob.basaliob) + "U)";
iobView.setText(iobtext);
} else {
String iobtext = DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob) + "U ("
@@ -1359,7 +1359,8 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
// **** BG ****
if (predictionsAvailable && SP.getBoolean("showprediction", false))
- graphData.addBgReadings(fromTime, toTime, lowLine, highLine, finalLastRun.constraintsProcessed);
+ graphData.addBgReadings(fromTime, toTime, lowLine, highLine,
+ finalLastRun.constraintsProcessed.getPredictions());
else
graphData.addBgReadings(fromTime, toTime, lowLine, highLine, null);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphData/GraphData.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphData/GraphData.java
index 25e7cb4af8..8023e86ac0 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphData/GraphData.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphData/GraphData.java
@@ -12,6 +12,7 @@ import com.jjoe64.graphview.series.LineGraphSeries;
import com.jjoe64.graphview.series.Series;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import info.nightscout.androidaps.Constants;
@@ -61,7 +62,7 @@ public class GraphData {
this.iobCobCalculatorPlugin = iobCobCalculatorPlugin;
}
- public void addBgReadings(long fromTime, long toTime, double lowLine, double highLine, APSResult apsResult) {
+ public void addBgReadings(long fromTime, long toTime, double lowLine, double highLine, List predictions) {
double maxBgValue = 0d;
bgReadingsArray = MainApp.getDbHelper().getBgreadingsDataFromTime(fromTime, true);
List bgListArray = new ArrayList<>();
@@ -74,9 +75,12 @@ public class GraphData {
if (bg.value > maxBgValue) maxBgValue = bg.value;
bgListArray.add(bg);
}
- if (apsResult != null) {
- List predArray = apsResult.getPredictions();
- bgListArray.addAll(predArray);
+ if (predictions != null) {
+ Collections.sort(predictions, (o1, o2) -> Double.compare(o1.getX(), o2.getX()));
+ for (BgReading prediction : predictions) {
+ if (prediction.value >= 40)
+ bgListArray.add(prediction);
+ }
}
maxBgValue = Profile.fromMgdlToUnits(maxBgValue, units);
@@ -273,6 +277,7 @@ public class GraphData {
for (int tx = 0; tx < treatments.size(); tx++) {
Treatment t = treatments.get(tx);
if (t.getX() < fromTime || t.getX() > endTime) continue;
+ if (t.isSMB && !t.isValid) continue;
t.setY(getNearestBg((long) t.getX()));
filteredTreatments.add(t);
}
@@ -431,10 +436,10 @@ public class GraphData {
for (long time = fromTime; time <= toTime; time += 5 * 60 * 1000L) {
AutosensData autosensData = IobCobCalculatorPlugin.getPlugin().getAutosensData(time);
if (autosensData != null) {
- int color = Color.BLACK; // "="
- if (autosensData.pastSensitivity.equals("C")) color = Color.GRAY;
- if (autosensData.pastSensitivity.equals("+")) color = Color.GREEN;
- if (autosensData.pastSensitivity.equals("-")) color = Color.RED;
+ int color = MainApp.gc(R.color.deviationblack); // "="
+ if (autosensData.pastSensitivity.equals("C")) color = MainApp.gc(R.color.deviationgrey);
+ if (autosensData.pastSensitivity.equals("+")) color = MainApp.gc(R.color.deviationgreen);
+ if (autosensData.pastSensitivity.equals("-")) color = MainApp.gc(R.color.deviationred);
devArray.add(new DeviationDataPoint(time, autosensData.deviation, color, devScale));
maxDevValueFound = Math.max(maxDevValueFound, Math.abs(autosensData.deviation));
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphExtensions/DataPointWithLabelInterface.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphExtensions/DataPointWithLabelInterface.java
index 3f6280431c..20d478692a 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphExtensions/DataPointWithLabelInterface.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphExtensions/DataPointWithLabelInterface.java
@@ -55,5 +55,4 @@ public interface DataPointWithLabelInterface extends DataPointInterface{
PointsWithLabelGraphSeries.Shape getShape();
float getSize();
int getColor();
- int getSecondColor();
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphExtensions/PointsWithLabelGraphSeries.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphExtensions/PointsWithLabelGraphSeries.java
index 8ac3be0ad8..5f39cedafe 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphExtensions/PointsWithLabelGraphSeries.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphExtensions/PointsWithLabelGraphSeries.java
@@ -211,7 +211,6 @@ public class PointsWithLabelGraphSeries e
mPaint.setStyle(Paint.Style.FILL);
mPaint.setStrokeWidth(0);
canvas.drawCircle(endX, endY, scaledPxSize, mPaint);
- mPaint.setColor(value.getSecondColor());
mPaint.setStyle(Paint.Style.FILL);
mPaint.setStrokeWidth(0);
canvas.drawCircle(endX, endY, scaledPxSize / 3, mPaint);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/notifications/NotificationRecyclerViewAdapter.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/notifications/NotificationRecyclerViewAdapter.java
index 6087ae0210..1b1487bbaa 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/notifications/NotificationRecyclerViewAdapter.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/notifications/NotificationRecyclerViewAdapter.java
@@ -94,7 +94,7 @@ public class NotificationRecyclerViewAdapter extends RecyclerView.Adapter store = new ArrayList();
public long snoozedUntil = 0L;
+ private boolean usesChannels;
public NotificationStore() {
createNotificationChannel();
@@ -60,8 +61,14 @@ public class NotificationStore {
}
store.add(n);
- if (SP.getBoolean(MainApp.sResources.getString(R.string.key_raise_notifications_as_android_notifications), false)) {
+ if (SP.getBoolean(MainApp.gs(R.string.key_raise_notifications_as_android_notifications), false)) {
raiseSystemNotification(n);
+ if (usesChannels && n.soundId != null) {
+ Intent alarm = new Intent(MainApp.instance().getApplicationContext(), AlarmSoundService.class);
+ alarm.putExtra("soundid", n.soundId);
+ MainApp.instance().startService(alarm);
+ }
+
} else {
if (n.soundId != null) {
Intent alarm = new Intent(MainApp.instance().getApplicationContext(), AlarmSoundService.class);
@@ -105,7 +112,7 @@ public class NotificationStore {
public void unSnooze() {
if (Notification.isAlarmForStaleData()) {
- Notification notification = new Notification(Notification.NSALARM, MainApp.sResources.getString(R.string.nsalarm_staledata), Notification.URGENT);
+ Notification notification = new Notification(Notification.NSALARM, MainApp.gs(R.string.nsalarm_staledata), Notification.URGENT);
SP.putLong("snoozedTo", System.currentTimeMillis());
add(notification);
log.debug("Snoozed to current time and added back notification!");
@@ -126,11 +133,11 @@ public class NotificationStore {
.setDeleteIntent(DismissNotificationService.deleteIntent(n.id));
if (n.level == Notification.URGENT) {
notificationBuilder.setVibrate(new long[]{1000, 1000, 1000, 1000})
- .setContentTitle(MainApp.sResources.getString(R.string.urgent_alarm))
+ .setContentTitle(MainApp.gs(R.string.urgent_alarm))
.setSound(sound, AudioAttributes.USAGE_ALARM);
} else {
notificationBuilder.setVibrate(new long[]{0, 100, 50, 100, 50})
- .setContentTitle(MainApp.sResources.getString(R.string.info))
+ .setContentTitle(MainApp.gs(R.string.info))
;
}
mgr.notify(n.id, notificationBuilder.build());
@@ -138,7 +145,7 @@ public class NotificationStore {
private void createNotificationChannel() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-
+ usesChannels = true;
NotificationManager mNotificationManager =
(NotificationManager) MainApp.instance().getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
@SuppressLint("WrongConstant") NotificationChannel channel = new NotificationChannel(CHANNEL_ID,
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Persistentnotification/PersistentNotificationPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Persistentnotification/PersistentNotificationPlugin.java
index 789c9df143..ed57652d1f 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Persistentnotification/PersistentNotificationPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Persistentnotification/PersistentNotificationPlugin.java
@@ -35,6 +35,8 @@ import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
+import info.nightscout.androidaps.plugins.IobCobCalculator.CobInfo;
+import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin;
import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin;
import info.nightscout.utils.DecimalFormatter;
@@ -92,7 +94,7 @@ public class PersistentNotificationPlugin extends PluginBase {
return;
}
- String line1 = ctx.getString(R.string.noprofile);
+ String line1 = "";
if (MainApp.getConfigBuilder().getActiveProfileInterface() == null || !MainApp.getConfigBuilder().isProfileValid("Notificiation"))
return;
@@ -109,9 +111,11 @@ public class PersistentNotificationPlugin extends PluginBase {
+ " avgÎ" + deltastring(glucoseStatus.avgdelta, glucoseStatus.avgdelta * Constants.MGDL_TO_MMOLL, units);
} else {
line1 += " " +
- ctx.getString(R.string.old_data) +
+ MainApp.gs(R.string.old_data) +
" ";
}
+ } else {
+ line1 = MainApp.gs(R.string.missed_bg_readings);
}
TemporaryBasal activeTemp = TreatmentsPlugin.getPlugin().getTempBasalFromHistory(System.currentTimeMillis());
@@ -125,11 +129,9 @@ public class PersistentNotificationPlugin extends PluginBase {
IobTotal bolusIob = TreatmentsPlugin.getPlugin().getLastCalculationTreatments().round();
IobTotal basalIob = TreatmentsPlugin.getPlugin().getLastCalculationTempBasals().round();
- String line2 = ctx.getString(R.string.treatments_iob_label_string) + " " + DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob) + "U ("
- + ctx.getString(R.string.bolus) + ": " + DecimalFormatter.to2Decimal(bolusIob.iob) + "U "
- + ctx.getString(R.string.basal) + ": " + DecimalFormatter.to2Decimal(basalIob.basaliob) + "U)";
-
+ String line2 = MainApp.gs(R.string.treatments_iob_label_string) + " " + DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob) + "U " + MainApp.gs(R.string.cob)+": " + IobCobCalculatorPlugin.getPlugin().getCobInfo(false, "PersistentNotificationPlugin").generateCOBString();;
+
String line3 = DecimalFormatter.to2Decimal(ConfigBuilderPlugin.getActivePump().getBaseBasalRate()) + " U/h";
@@ -138,6 +140,7 @@ public class PersistentNotificationPlugin extends PluginBase {
NotificationCompat.Builder builder = new NotificationCompat.Builder(ctx, CHANNEL_ID);
builder.setOngoing(true);
+ builder.setOnlyAlertOnce(true);
builder.setCategory(NotificationCompat.CATEGORY_STATUS);
builder.setSmallIcon(R.drawable.ic_notification);
Bitmap largeIcon = BitmapFactory.decodeResource(ctx.getResources(), R.mipmap.blueowl);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ProfileLocal/LocalProfileFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/ProfileLocal/LocalProfileFragment.java
index a325f08ad2..6c22a2e9ce 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/ProfileLocal/LocalProfileFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/ProfileLocal/LocalProfileFragment.java
@@ -57,7 +57,7 @@ public class LocalProfileFragment extends SubscriberFragment {
Runnable save = () -> {
doEdit();
if (basalView != null) {
- basalView.updateLabel(MainApp.sResources.getString(R.string.nsprofileview_basal_label) + ": " + getSumLabel());
+ basalView.updateLabel(MainApp.gs(R.string.nsprofileview_basal_label) + ": " + getSumLabel());
}
};
@@ -91,10 +91,10 @@ public class LocalProfileFragment extends SubscriberFragment {
diaView.setParams(LocalProfilePlugin.getPlugin().dia, 2d, 48d, 0.1d, new DecimalFormat("0.0"), false, textWatch);
mgdlView = (RadioButton) layout.findViewById(R.id.localprofile_mgdl);
mmolView = (RadioButton) layout.findViewById(R.id.localprofile_mmol);
- icView = new TimeListEdit(getContext(), layout, R.id.localprofile_ic, MainApp.sResources.getString(R.string.nsprofileview_ic_label) + ":", LocalProfilePlugin.getPlugin().ic, null, 0.5, 50d, 0.1d, new DecimalFormat("0.0"), save);
- isfView = new TimeListEdit(getContext(), layout, R.id.localprofile_isf, MainApp.sResources.getString(R.string.nsprofileview_isf_label) + ":", LocalProfilePlugin.getPlugin().isf, null, 0.5, 500d, 0.1d, new DecimalFormat("0.0"), save);
- basalView = new TimeListEdit(getContext(), layout, R.id.localprofile_basal, MainApp.sResources.getString(R.string.nsprofileview_basal_label) + ": " + getSumLabel(), LocalProfilePlugin.getPlugin().basal, null, pumpDescription.basalMinimumRate, 10, 0.01d, new DecimalFormat("0.00"), save);
- targetView = new TimeListEdit(getContext(), layout, R.id.localprofile_target, MainApp.sResources.getString(R.string.nsprofileview_target_label) + ":", LocalProfilePlugin.getPlugin().targetLow, LocalProfilePlugin.getPlugin().targetHigh, 3d, 200, 0.1d, new DecimalFormat("0.0"), save);
+ icView = new TimeListEdit(getContext(), layout, R.id.localprofile_ic, MainApp.gs(R.string.nsprofileview_ic_label) + ":", LocalProfilePlugin.getPlugin().ic, null, 0.5, 50d, 0.1d, new DecimalFormat("0.0"), save);
+ isfView = new TimeListEdit(getContext(), layout, R.id.localprofile_isf, MainApp.gs(R.string.nsprofileview_isf_label) + ":", LocalProfilePlugin.getPlugin().isf, null, 0.5, 500d, 0.1d, new DecimalFormat("0.0"), save);
+ basalView = new TimeListEdit(getContext(), layout, R.id.localprofile_basal, MainApp.gs(R.string.nsprofileview_basal_label) + ": " + getSumLabel(), LocalProfilePlugin.getPlugin().basal, null, pumpDescription.basalMinimumRate, 10, 0.01d, new DecimalFormat("0.00"), save);
+ targetView = new TimeListEdit(getContext(), layout, R.id.localprofile_target, MainApp.gs(R.string.nsprofileview_target_label) + ":", LocalProfilePlugin.getPlugin().targetLow, LocalProfilePlugin.getPlugin().targetHigh, 3d, 200, 0.1d, new DecimalFormat("0.0"), save);
profileswitchButton = (Button) layout.findViewById(R.id.localprofile_profileswitch);
resetButton = (Button) layout.findViewById(R.id.localprofile_reset);
saveButton = (Button) layout.findViewById(R.id.localprofile_save);
@@ -144,10 +144,10 @@ public class LocalProfileFragment extends SubscriberFragment {
mgdlView.setChecked(LocalProfilePlugin.getPlugin().mgdl);
mmolView.setChecked(LocalProfilePlugin.getPlugin().mmol);
diaView.setParams(LocalProfilePlugin.getPlugin().dia, 2d, 48d, 0.1d, new DecimalFormat("0.0"), false, textWatch);
- icView = new TimeListEdit(getContext(), layout, R.id.localprofile_ic, MainApp.sResources.getString(R.string.nsprofileview_ic_label) + ":", LocalProfilePlugin.getPlugin().ic, null, 0.5, 50d, 0.1d, new DecimalFormat("0.0"), save);
- isfView = new TimeListEdit(getContext(), layout, R.id.localprofile_isf, MainApp.sResources.getString(R.string.nsprofileview_isf_label) + ":", LocalProfilePlugin.getPlugin().isf, null, 0.5, 500d, 0.1d, new DecimalFormat("0.0"), save);
- basalView = new TimeListEdit(getContext(), layout, R.id.localprofile_basal, MainApp.sResources.getString(R.string.nsprofileview_basal_label) + ": " + getSumLabel(), LocalProfilePlugin.getPlugin().basal, null, pumpDescription.basalMinimumRate, 10, 0.01d, new DecimalFormat("0.00"), save);
- targetView = new TimeListEdit(getContext(), layout, R.id.localprofile_target, MainApp.sResources.getString(R.string.nsprofileview_target_label) + ":", LocalProfilePlugin.getPlugin().targetLow, LocalProfilePlugin.getPlugin().targetHigh, 3d, 200, 0.1d, new DecimalFormat("0.0"), save);
+ icView = new TimeListEdit(getContext(), layout, R.id.localprofile_ic, MainApp.gs(R.string.nsprofileview_ic_label) + ":", LocalProfilePlugin.getPlugin().ic, null, 0.5, 50d, 0.1d, new DecimalFormat("0.0"), save);
+ isfView = new TimeListEdit(getContext(), layout, R.id.localprofile_isf, MainApp.gs(R.string.nsprofileview_isf_label) + ":", LocalProfilePlugin.getPlugin().isf, null, 0.5, 500d, 0.1d, new DecimalFormat("0.0"), save);
+ basalView = new TimeListEdit(getContext(), layout, R.id.localprofile_basal, MainApp.gs(R.string.nsprofileview_basal_label) + ": " + getSumLabel(), LocalProfilePlugin.getPlugin().basal, null, pumpDescription.basalMinimumRate, 10, 0.01d, new DecimalFormat("0.00"), save);
+ targetView = new TimeListEdit(getContext(), layout, R.id.localprofile_target, MainApp.gs(R.string.nsprofileview_target_label) + ":", LocalProfilePlugin.getPlugin().targetLow, LocalProfilePlugin.getPlugin().targetHigh, 3d, 200, 0.1d, new DecimalFormat("0.0"), save);
updateGUI();
});
@@ -199,22 +199,14 @@ public class LocalProfileFragment extends SubscriberFragment {
if (isValid) {
invalidProfile.setVisibility(View.GONE); //show invalid profile
- if (isEdited || !ConfigBuilderPlugin.getActivePump().isInitialized() || ConfigBuilderPlugin.getActivePump().isSuspended()) {
+ if (isEdited) {
//edited profile -> save first
- //pump not initialized -> don't update profile yet
profileswitchButton.setVisibility(View.GONE);
- } else {
- profileswitchButton.setVisibility(View.VISIBLE);
- }
-
- if(isEdited){
saveButton.setVisibility(View.VISIBLE);
} else {
+ profileswitchButton.setVisibility(View.VISIBLE);
saveButton.setVisibility(View.GONE);
-
}
-
-
} else {
invalidProfile.setVisibility(View.VISIBLE);
profileswitchButton.setVisibility(View.GONE);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboFragment.java
index 14fdd3c219..455f1f7015 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboFragment.java
@@ -120,12 +120,18 @@ public class ComboFragment extends SubscriberFragment implements View.OnClickLis
// activity
String activity = plugin.getPump().activity;
- if (StringUtils.isNotEmpty(activity)) {
+ if (activity != null) {
+ activityView.setTextColor(Color.WHITE);
activityView.setTextSize(14);
activityView.setText(activity);
- } else {
+ } else if (plugin.isInitialized()){
+ activityView.setTextColor(Color.WHITE);
activityView.setTextSize(20);
activityView.setText("{fa-bed}");
+ } else {
+ activityView.setTextColor(Color.RED);
+ activityView.setTextSize(14);
+ activityView.setText(MainApp.gs(R.string.pump_unreachable));
}
if (plugin.isInitialized()) {
@@ -145,7 +151,7 @@ public class ComboFragment extends SubscriberFragment implements View.OnClickLis
// reservoir
int reservoirLevel = plugin.getPump().reservoirLevel;
if (reservoirLevel != -1) {
- reservoirView.setText(reservoirLevel + " " + MainApp.sResources.getString(R.string.insulin_unit_shortname));
+ reservoirView.setText(reservoirLevel + " " + MainApp.gs(R.string.insulin_unit_shortname));
} else if (ps.insulinState == PumpState.LOW) {
reservoirView.setText(MainApp.gs(R.string.combo_reservoir_low));
} else if (ps.insulinState == PumpState.EMPTY) {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java
index 68db1658f6..3cf4557e54 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java
@@ -458,7 +458,7 @@ public class ComboPlugin extends PluginBase implements PumpInterface, Constraint
log.error("deliverTreatment: Invalid input");
return new PumpEnactResult().success(false).enacted(false)
.bolusDelivered(0d).carbsDelivered(0d)
- .comment(MainApp.instance().getString(R.string.danar_invalidinput));
+ .comment(MainApp.gs(R.string.danar_invalidinput));
} else if (detailedBolusInfo.insulin > 0) {
// bolus needed, ask pump to deliver it
return deliverBolus(detailedBolusInfo);
@@ -474,7 +474,7 @@ public class ComboPlugin extends PluginBase implements PumpInterface, Constraint
return new PumpEnactResult().success(true).enacted(true)
.bolusDelivered(0d).carbsDelivered(detailedBolusInfo.carbs)
- .comment(MainApp.instance().getString(R.string.virtualpump_resultok));
+ .comment(MainApp.gs(R.string.virtualpump_resultok));
}
} finally {
MainApp.bus().post(new EventComboPumpUpdateGUI());
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/AbstractDanaRPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/AbstractDanaRPlugin.java
index ea83e6d4d6..903be558b9 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/AbstractDanaRPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/AbstractDanaRPlugin.java
@@ -95,22 +95,22 @@ public abstract class AbstractDanaRPlugin extends PluginBase implements PumpInte
}
if (!isInitialized()) {
log.error("setNewBasalProfile not initialized");
- Notification notification = new Notification(Notification.PROFILE_NOT_SET_NOT_INITIALIZED, MainApp.sResources.getString(R.string.pumpNotInitializedProfileNotSet), Notification.URGENT);
+ Notification notification = new Notification(Notification.PROFILE_NOT_SET_NOT_INITIALIZED, MainApp.gs(R.string.pumpNotInitializedProfileNotSet), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
- result.comment = MainApp.sResources.getString(R.string.pumpNotInitializedProfileNotSet);
+ result.comment = MainApp.gs(R.string.pumpNotInitializedProfileNotSet);
return result;
} else {
MainApp.bus().post(new EventDismissNotification(Notification.PROFILE_NOT_SET_NOT_INITIALIZED));
}
if (!sExecutionService.updateBasalsInPump(profile)) {
- Notification notification = new Notification(Notification.FAILED_UDPATE_PROFILE, MainApp.sResources.getString(R.string.failedupdatebasalprofile), Notification.URGENT);
+ Notification notification = new Notification(Notification.FAILED_UDPATE_PROFILE, MainApp.gs(R.string.failedupdatebasalprofile), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
- result.comment = MainApp.sResources.getString(R.string.failedupdatebasalprofile);
+ result.comment = MainApp.gs(R.string.failedupdatebasalprofile);
return result;
} else {
MainApp.bus().post(new EventDismissNotification(Notification.PROFILE_NOT_SET_NOT_INITIALIZED));
MainApp.bus().post(new EventDismissNotification(Notification.FAILED_UDPATE_PROFILE));
- Notification notification = new Notification(Notification.PROFILE_SET_OK, MainApp.sResources.getString(R.string.profile_set_ok), Notification.INFO, 60);
+ Notification notification = new Notification(Notification.PROFILE_SET_OK, MainApp.gs(R.string.profile_set_ok), Notification.INFO, 60);
MainApp.bus().post(new EventNewNotification(notification));
result.success = true;
result.enacted = true;
@@ -166,7 +166,7 @@ public abstract class AbstractDanaRPlugin extends PluginBase implements PumpInte
result.isTempCancel = false;
result.enacted = false;
result.success = false;
- result.comment = MainApp.instance().getString(R.string.danar_invalidinput);
+ result.comment = MainApp.gs(R.string.danar_invalidinput);
log.error("setTempBasalPercent: Invalid input");
return result;
}
@@ -178,7 +178,7 @@ public abstract class AbstractDanaRPlugin extends PluginBase implements PumpInte
result.enacted = false;
result.success = true;
result.isTempCancel = false;
- result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
+ result.comment = MainApp.gs(R.string.virtualpump_resultok);
result.duration = pump.tempBasalRemainingMin;
result.percent = pump.tempBasalPercent;
result.isPercent = true;
@@ -191,7 +191,7 @@ public abstract class AbstractDanaRPlugin extends PluginBase implements PumpInte
if (connectionOK && pump.isTempBasalInProgress && pump.tempBasalPercent == percent) {
result.enacted = true;
result.success = true;
- result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
+ result.comment = MainApp.gs(R.string.virtualpump_resultok);
result.isTempCancel = false;
result.duration = pump.tempBasalRemainingMin;
result.percent = pump.tempBasalPercent;
@@ -202,7 +202,7 @@ public abstract class AbstractDanaRPlugin extends PluginBase implements PumpInte
}
result.enacted = false;
result.success = false;
- result.comment = MainApp.instance().getString(R.string.tempbasaldeliveryerror);
+ result.comment = MainApp.gs(R.string.tempbasaldeliveryerror);
log.error("setTempBasalPercent: Failed to set temp basal");
return result;
}
@@ -219,7 +219,7 @@ public abstract class AbstractDanaRPlugin extends PluginBase implements PumpInte
if (runningEB != null && Math.abs(runningEB.insulin - insulin) < getPumpDescription().extendedBolusStep) {
result.enacted = false;
result.success = true;
- result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
+ result.comment = MainApp.gs(R.string.virtualpump_resultok);
result.duration = pump.extendedBolusRemainingMinutes;
result.absolute = pump.extendedBolusAbsoluteRate;
result.isPercent = false;
@@ -232,7 +232,7 @@ public abstract class AbstractDanaRPlugin extends PluginBase implements PumpInte
if (connectionOK && pump.isExtendedInProgress && Math.abs(pump.extendedBolusAmount - insulin) < getPumpDescription().extendedBolusStep) {
result.enacted = true;
result.success = true;
- result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
+ result.comment = MainApp.gs(R.string.virtualpump_resultok);
result.isTempCancel = false;
result.duration = pump.extendedBolusRemainingMinutes;
result.absolute = pump.extendedBolusAbsoluteRate;
@@ -245,7 +245,7 @@ public abstract class AbstractDanaRPlugin extends PluginBase implements PumpInte
}
result.enacted = false;
result.success = false;
- result.comment = MainApp.instance().getString(R.string.danar_valuenotsetproperly);
+ result.comment = MainApp.gs(R.string.danar_valuenotsetproperly);
log.error("setExtendedBolus: Failed to extended bolus");
return result;
}
@@ -261,13 +261,13 @@ public abstract class AbstractDanaRPlugin extends PluginBase implements PumpInte
}
if (!pump.isExtendedInProgress) {
result.success = true;
- result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
+ result.comment = MainApp.gs(R.string.virtualpump_resultok);
if (Config.logPumpActions)
log.debug("cancelExtendedBolus: OK");
return result;
} else {
result.success = false;
- result.comment = MainApp.instance().getString(R.string.danar_valuenotsetproperly);
+ result.comment = MainApp.gs(R.string.danar_valuenotsetproperly);
log.error("cancelExtendedBolus: Failed to cancel extended bolus");
return result;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/DanaRFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/DanaRFragment.java
index 7ef3d6a987..b8afdaf15a 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/DanaRFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/DanaRFragment.java
@@ -206,7 +206,7 @@ public class DanaRFragment extends SubscriberFragment {
if (pump.lastConnection != 0) {
Long agoMsec = System.currentTimeMillis() - pump.lastConnection;
int agoMin = (int) (agoMsec / 60d / 1000d);
- lastConnectionView.setText(DateUtil.timeString(pump.lastConnection) + " (" + String.format(MainApp.sResources.getString(R.string.minago), agoMin) + ")");
+ lastConnectionView.setText(DateUtil.timeString(pump.lastConnection) + " (" + String.format(MainApp.gs(R.string.minago), agoMin) + ")");
SetWarnColor.setColor(lastConnectionView, agoMin, 16d, 31d);
}
if (pump.lastBolusTime.getTime() != 0) {
@@ -247,7 +247,7 @@ public class DanaRFragment extends SubscriberFragment {
SetWarnColor.setColorInverse(batteryView, pump.batteryRemaining, 51d, 26d);
iobView.setText(pump.iob + " U");
if (pump.model != 0 || pump.protocol != 0 || pump.productCode != 0) {
- firmwareView.setText(String.format(MainApp.sResources.getString(R.string.danar_model), pump.model, pump.protocol, pump.productCode));
+ firmwareView.setText(String.format(MainApp.gs(R.string.danar_model), pump.model, pump.protocol, pump.productCode));
} else {
firmwareView.setText("OLD");
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/DanaRPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/DanaRPlugin.java
index 7a91437f17..279a93340f 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/DanaRPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/DanaRPlugin.java
@@ -159,7 +159,7 @@ public class DanaRPlugin extends AbstractDanaRPlugin {
if (detailedBolusInfo.insulin > 0 || detailedBolusInfo.carbs > 0)
connectionOK = sExecutionService.bolus(detailedBolusInfo.insulin, (int) detailedBolusInfo.carbs, detailedBolusInfo.carbTime, t);
PumpEnactResult result = new PumpEnactResult();
- result.success = connectionOK && detailedBolusInfo.insulin == t.insulin;
+ result.success = connectionOK && Math.abs(detailedBolusInfo.insulin - t.insulin) < pumpDescription.bolusStep;
result.bolusDelivered = t.insulin;
result.carbsDelivered = detailedBolusInfo.carbs;
if (!result.success)
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/activities/DanaRHistoryActivity.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/activities/DanaRHistoryActivity.java
index 7f90fb190b..97c5569b4b 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/activities/DanaRHistoryActivity.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/activities/DanaRHistoryActivity.java
@@ -122,20 +122,20 @@ public class DanaRHistoryActivity extends Activity {
// Types
ArrayList typeList = new ArrayList<>();
- typeList.add(new TypeList(RecordTypes.RECORD_TYPE_ALARM, getString(R.string.danar_history_alarm)));
- typeList.add(new TypeList(RecordTypes.RECORD_TYPE_BASALHOUR, getString(R.string.danar_history_basalhours)));
- typeList.add(new TypeList(RecordTypes.RECORD_TYPE_BOLUS, getString(R.string.danar_history_bolus)));
- typeList.add(new TypeList(RecordTypes.RECORD_TYPE_CARBO, getString(R.string.danar_history_carbohydrates)));
- typeList.add(new TypeList(RecordTypes.RECORD_TYPE_DAILY, getString(R.string.danar_history_dailyinsulin)));
- typeList.add(new TypeList(RecordTypes.RECORD_TYPE_GLUCOSE, getString(R.string.danar_history_glucose)));
+ typeList.add(new TypeList(RecordTypes.RECORD_TYPE_ALARM, MainApp.gs(R.string.danar_history_alarm)));
+ typeList.add(new TypeList(RecordTypes.RECORD_TYPE_BASALHOUR, MainApp.gs(R.string.danar_history_basalhours)));
+ typeList.add(new TypeList(RecordTypes.RECORD_TYPE_BOLUS, MainApp.gs(R.string.danar_history_bolus)));
+ typeList.add(new TypeList(RecordTypes.RECORD_TYPE_CARBO, MainApp.gs(R.string.danar_history_carbohydrates)));
+ typeList.add(new TypeList(RecordTypes.RECORD_TYPE_DAILY, MainApp.gs(R.string.danar_history_dailyinsulin)));
+ typeList.add(new TypeList(RecordTypes.RECORD_TYPE_GLUCOSE, MainApp.gs(R.string.danar_history_glucose)));
if (!isKorean && !isRS) {
- typeList.add(new TypeList(RecordTypes.RECORD_TYPE_ERROR, getString(R.string.danar_history_errors)));
+ typeList.add(new TypeList(RecordTypes.RECORD_TYPE_ERROR, MainApp.gs(R.string.danar_history_errors)));
}
if (isRS)
- typeList.add(new TypeList(RecordTypes.RECORD_TYPE_PRIME, getString(R.string.danar_history_prime)));
+ typeList.add(new TypeList(RecordTypes.RECORD_TYPE_PRIME, MainApp.gs(R.string.danar_history_prime)));
if (!isKorean) {
- typeList.add(new TypeList(RecordTypes.RECORD_TYPE_REFILL, getString(R.string.danar_history_refill)));
- typeList.add(new TypeList(RecordTypes.RECORD_TYPE_SUSPEND, getString(R.string.danar_history_syspend)));
+ typeList.add(new TypeList(RecordTypes.RECORD_TYPE_REFILL, MainApp.gs(R.string.danar_history_refill)));
+ typeList.add(new TypeList(RecordTypes.RECORD_TYPE_SUSPEND, MainApp.gs(R.string.danar_history_syspend)));
}
ArrayAdapter spinnerAdapter = new ArrayAdapter<>(this,
R.layout.spinner_centered, typeList);
@@ -215,7 +215,7 @@ public class DanaRHistoryActivity extends Activity {
});
profile = MainApp.getConfigBuilder().getProfile();
if (profile == null) {
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.noprofile));
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.noprofile));
finish();
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/activities/DanaRNSHistorySync.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/activities/DanaRNSHistorySync.java
index e7813fac10..d505443c1d 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/activities/DanaRNSHistorySync.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/activities/DanaRNSHistorySync.java
@@ -57,7 +57,7 @@ public class DanaRNSHistorySync {
if (record._id != null) continue;
//log.debug(record.bytes);
JSONObject nsrec = new JSONObject();
- ev.message = MainApp.sResources.getString(R.string.uploading) + " " + processing + "/" + records + " "; // TODO: translations
+ ev.message = MainApp.gs(R.string.uploading) + " " + processing + "/" + records + " "; // TODO: translations
switch (record.recordCode) {
case RecordTypes.RECORD_TYPE_BOLUS:
if ((what & SYNC_BOLUS) == 0) break;
@@ -68,10 +68,10 @@ public class DanaRNSHistorySync {
nsrec.put("eventType", "Meal Bolus");
nsrec.put("insulin", record.recordValue);
nsrec.put("created_at", DateUtil.toISOString(record.recordDate));
- nsrec.put("enteredBy", "openaps://" + MainApp.sResources.getString(R.string.app_name));
+ nsrec.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name));
NSUpload.uploadCareportalEntryToNS(nsrec);
uploaded++;
- ev.message += MainApp.sResources.getString(R.string.danar_sbolus);
+ ev.message += MainApp.gs(R.string.danar_sbolus);
break;
case "E":
if (record.recordDuration > 0) {
@@ -86,10 +86,10 @@ public class DanaRNSHistorySync {
cal.setTimeInMillis(record.recordDate);
cal.add(Calendar.MINUTE, -1 * record.recordDuration);
nsrec.put("created_at", DateUtil.toISOString(cal.getTime()));
- nsrec.put("enteredBy", "openaps://" + MainApp.sResources.getString(R.string.app_name));
+ nsrec.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name));
NSUpload.uploadCareportalEntryToNS(nsrec);
uploaded++;
- ev.message += MainApp.sResources.getString(R.string.danar_ebolus);
+ ev.message += MainApp.gs(R.string.danar_ebolus);
} else {
log.debug("NOT Syncing extended bolus record " + record.recordValue + "U " + DateUtil.toISOString(record.recordDate) + " zero duration");
}
@@ -102,10 +102,10 @@ public class DanaRNSHistorySync {
nsrec.put("splitNow", 100);
nsrec.put("splitExt", 0);
nsrec.put("created_at", DateUtil.toISOString(record.recordDate));
- nsrec.put("enteredBy", "openaps://" + MainApp.sResources.getString(R.string.app_name));
+ nsrec.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name));
NSUpload.uploadCareportalEntryToNS(nsrec);
uploaded++;
- ev.message += MainApp.sResources.getString(R.string.danar_dsbolus);
+ ev.message += MainApp.gs(R.string.danar_dsbolus);
break;
case "DE":
log.debug("Syncing dual(E) bolus record " + record.recordValue + "U " + DateUtil.toISOString(record.recordDate));
@@ -118,10 +118,10 @@ public class DanaRNSHistorySync {
cal.setTimeInMillis(record.recordDate);
cal.add(Calendar.MINUTE, -1 * record.recordDuration);
nsrec.put("created_at", DateUtil.toISOString(cal.getTime()));
- nsrec.put("enteredBy", "openaps://" + MainApp.sResources.getString(R.string.app_name));
+ nsrec.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name));
NSUpload.uploadCareportalEntryToNS(nsrec);
uploaded++;
- ev.message += MainApp.sResources.getString(R.string.danar_debolus);
+ ev.message += MainApp.gs(R.string.danar_debolus);
break;
default:
log.debug("Unknown bolus record");
@@ -135,10 +135,10 @@ public class DanaRNSHistorySync {
nsrec.put("eventType", "Note");
nsrec.put("notes", "Error");
nsrec.put("created_at", DateUtil.toISOString(record.recordDate));
- nsrec.put("enteredBy", "openaps://" + MainApp.sResources.getString(R.string.app_name));
+ nsrec.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name));
NSUpload.uploadCareportalEntryToNS(nsrec);
uploaded++;
- ev.message += MainApp.sResources.getString(R.string.danar_error);
+ ev.message += MainApp.gs(R.string.danar_error);
break;
case RecordTypes.RECORD_TYPE_REFILL:
if ((what & SYNC_REFILL) == 0) break;
@@ -147,10 +147,10 @@ public class DanaRNSHistorySync {
nsrec.put("eventType", "Insulin Change");
nsrec.put("notes", "Refill " + record.recordValue + "U");
nsrec.put("created_at", DateUtil.toISOString(record.recordDate));
- nsrec.put("enteredBy", "openaps://" + MainApp.sResources.getString(R.string.app_name));
+ nsrec.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name));
NSUpload.uploadCareportalEntryToNS(nsrec);
uploaded++;
- ev.message += MainApp.sResources.getString(R.string.danar_refill);
+ ev.message += MainApp.gs(R.string.danar_refill);
break;
case RecordTypes.RECORD_TYPE_BASALHOUR:
if ((what & SYNC_BASALHOURS) == 0) break;
@@ -160,10 +160,10 @@ public class DanaRNSHistorySync {
nsrec.put("absolute", record.recordValue);
nsrec.put("duration", 60);
nsrec.put("created_at", DateUtil.toISOString(record.recordDate));
- nsrec.put("enteredBy", "openaps://" + MainApp.sResources.getString(R.string.app_name));
+ nsrec.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name));
NSUpload.uploadCareportalEntryToNS(nsrec);
uploaded++;
- ev.message += MainApp.sResources.getString(R.string.danar_basalhour);
+ ev.message += MainApp.gs(R.string.danar_basalhour);
break;
case RecordTypes.RECORD_TYPE_TB:
//log.debug("Ignoring TB record " + record.bytes + " " + DateUtil.toISOString(record.recordDate));
@@ -176,10 +176,10 @@ public class DanaRNSHistorySync {
nsrec.put("glucose", Profile.fromMgdlToUnits(record.recordValue, MainApp.getConfigBuilder().getProfileUnits()));
nsrec.put("glucoseType", "Finger");
nsrec.put("created_at", DateUtil.toISOString(record.recordDate));
- nsrec.put("enteredBy", "openaps://" + MainApp.sResources.getString(R.string.app_name));
+ nsrec.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name));
NSUpload.uploadCareportalEntryToNS(nsrec);
uploaded++;
- ev.message += MainApp.sResources.getString(R.string.danar_glucose);
+ ev.message += MainApp.gs(R.string.danar_glucose);
break;
case RecordTypes.RECORD_TYPE_CARBO:
if ((what & SYNC_CARBO) == 0) break;
@@ -188,10 +188,10 @@ public class DanaRNSHistorySync {
nsrec.put("eventType", "Meal Bolus");
nsrec.put("carbs", record.recordValue);
nsrec.put("created_at", DateUtil.toISOString(record.recordDate));
- nsrec.put("enteredBy", "openaps://" + MainApp.sResources.getString(R.string.app_name));
+ nsrec.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name));
NSUpload.uploadCareportalEntryToNS(nsrec);
uploaded++;
- ev.message += MainApp.sResources.getString(R.string.danar_carbohydrate);
+ ev.message += MainApp.gs(R.string.danar_carbohydrate);
break;
case RecordTypes.RECORD_TYPE_ALARM:
if ((what & SYNC_ALARM) == 0) break;
@@ -200,10 +200,10 @@ public class DanaRNSHistorySync {
nsrec.put("eventType", "Note");
nsrec.put("notes", "Alarm: " + record.recordAlarm);
nsrec.put("created_at", DateUtil.toISOString(record.recordDate));
- nsrec.put("enteredBy", "openaps://" + MainApp.sResources.getString(R.string.app_name));
+ nsrec.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name));
NSUpload.uploadCareportalEntryToNS(nsrec);
uploaded++;
- ev.message += MainApp.sResources.getString(R.string.danar_alarm);
+ ev.message += MainApp.gs(R.string.danar_alarm);
break;
case RecordTypes.RECORD_TYPE_SUSPEND: // TODO: this too
case RecordTypes.RECORD_TYPE_DAILY:
@@ -216,7 +216,7 @@ public class DanaRNSHistorySync {
}
MainApp.bus().post(ev);
}
- ev.message = String.format(MainApp.sResources.getString(R.string.danar_totaluploaded), uploaded);
+ ev.message = String.format(MainApp.gs(R.string.danar_totaluploaded), uploaded);
MainApp.bus().post(ev);
} catch (JSONException e) {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgBolusProgress.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgBolusProgress.java
index 79358526fa..cb01a7d901 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgBolusProgress.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgBolusProgress.java
@@ -36,7 +36,7 @@ public class MsgBolusProgress extends MessageBase {
Double done = (amount * 100 - progress) / 100d;
t.insulin = done;
EventOverviewBolusProgress bolusingEvent = EventOverviewBolusProgress.getInstance();
- bolusingEvent.status = String.format(MainApp.sResources.getString(R.string.bolusdelivering), done);
+ bolusingEvent.status = String.format(MainApp.gs(R.string.bolusdelivering), done);
bolusingEvent.t = t;
bolusingEvent.percent = Math.min((int) (done / amount * 100), 100);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgBolusStop.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgBolusStop.java
index 6718d76194..5c677b813e 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgBolusStop.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgBolusStop.java
@@ -34,10 +34,10 @@ public class MsgBolusStop extends MessageBase {
stopped = true;
if (!forced) {
t.insulin = amount;
- bolusingEvent.status = MainApp.sResources.getString(R.string.overview_bolusprogress_delivered);
+ bolusingEvent.status = MainApp.gs(R.string.overview_bolusprogress_delivered);
bolusingEvent.percent = 100;
} else {
- bolusingEvent.status = MainApp.sResources.getString(R.string.overview_bolusprogress_stoped);
+ bolusingEvent.status = MainApp.gs(R.string.overview_bolusprogress_stoped);
}
MainApp.bus().post(bolusingEvent);
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgError.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgError.java
index b180d4107b..e42327c3b0 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgError.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgError.java
@@ -25,19 +25,19 @@ public class MsgError extends MessageBase {
case 1:
case 2:
case 3: // Pump error
- errorString = MainApp.sResources.getString(R.string.pumperror) + " " + errorCode;
+ errorString = MainApp.gs(R.string.pumperror) + " " + errorCode;
break;
case 4: // Shutdown
- errorString = MainApp.sResources.getString(R.string.pumpshutdown);
+ errorString = MainApp.gs(R.string.pumpshutdown);
break;
case 5: // Occlusion
- errorString = MainApp.sResources.getString(R.string.occlusion);
+ errorString = MainApp.gs(R.string.occlusion);
break;
case 7: // Low Battery
- errorString = MainApp.sResources.getString(R.string.lowbattery);
+ errorString = MainApp.gs(R.string.lowbattery);
break;
case 8: // Battery 0%
- errorString = MainApp.sResources.getString(R.string.batterydischarged);
+ errorString = MainApp.gs(R.string.batterydischarged);
break;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgInitConnStatusBolus.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgInitConnStatusBolus.java
index 83bd9dc77d..4fc9844b0d 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgInitConnStatusBolus.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgInitConnStatusBolus.java
@@ -41,7 +41,7 @@ public class MsgInitConnStatusBolus extends MessageBase {
}
if (!pump.isExtendedBolusEnabled) {
- Notification notification = new Notification(Notification.EXTENDED_BOLUS_DISABLED, MainApp.sResources.getString(R.string.danar_enableextendedbolus), Notification.URGENT);
+ Notification notification = new Notification(Notification.EXTENDED_BOLUS_DISABLED, MainApp.gs(R.string.danar_enableextendedbolus), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
} else {
MainApp.bus().post(new EventDismissNotification(Notification.EXTENDED_BOLUS_DISABLED));
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgInitConnStatusTime.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgInitConnStatusTime.java
index 642f539f6c..84d9c413bf 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgInitConnStatusTime.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgInitConnStatusTime.java
@@ -27,7 +27,7 @@ public class MsgInitConnStatusTime extends MessageBase {
@Override
public void handleMessage(byte[] bytes) {
if (bytes.length - 10 > 7) {
- Notification notification = new Notification(Notification.WRONG_DRIVER, MainApp.sResources.getString(R.string.pumpdrivercorrected), Notification.NORMAL);
+ Notification notification = new Notification(Notification.WRONG_DRIVER, MainApp.gs(R.string.pumpdrivercorrected), Notification.NORMAL);
MainApp.bus().post(new EventNewNotification(notification));
MainApp.getSpecificPlugin(DanaRPlugin.class).disconnect("Wrong Model");
log.debug("Wrong model selected. Switching to Korean DanaR");
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgSetBasalProfile.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgSetBasalProfile.java
index 01c80bc255..9f945e8b26 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgSetBasalProfile.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgSetBasalProfile.java
@@ -33,12 +33,12 @@ public class MsgSetBasalProfile extends MessageBase {
if (result != 1) {
failed = true;
log.debug("Set basal profile result: " + result + " FAILED!!!");
- Notification reportFail = new Notification(Notification.PROFILE_SET_FAILED, MainApp.sResources.getString(R.string.profile_set_failed), Notification.URGENT);
+ Notification reportFail = new Notification(Notification.PROFILE_SET_FAILED, MainApp.gs(R.string.profile_set_failed), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(reportFail));
} else {
if (Config.logDanaMessageDetail)
log.debug("Set basal profile result: " + result);
- Notification reportOK = new Notification(Notification.PROFILE_SET_OK, MainApp.sResources.getString(R.string.profile_set_ok), Notification.INFO, 60);
+ Notification reportOK = new Notification(Notification.PROFILE_SET_OK, MainApp.gs(R.string.profile_set_ok), Notification.INFO, 60);
MainApp.bus().post(new EventNewNotification(reportOK));
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgSetSingleBasalProfile.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgSetSingleBasalProfile.java
index 1c79080093..7dd9ca522b 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgSetSingleBasalProfile.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgSetSingleBasalProfile.java
@@ -32,12 +32,12 @@ public class MsgSetSingleBasalProfile extends MessageBase {
if (result != 1) {
failed = true;
log.debug("Set basal profile result: " + result + " FAILED!!!");
- Notification reportFail = new Notification(Notification.PROFILE_SET_FAILED, MainApp.sResources.getString(R.string.profile_set_failed), Notification.URGENT);
+ Notification reportFail = new Notification(Notification.PROFILE_SET_FAILED, MainApp.gs(R.string.profile_set_failed), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(reportFail));
} else {
if (Config.logDanaMessageDetail)
log.debug("Set basal profile result: " + result);
- Notification reportOK = new Notification(Notification.PROFILE_SET_OK, MainApp.sResources.getString(R.string.profile_set_ok), Notification.INFO, 60);
+ Notification reportOK = new Notification(Notification.PROFILE_SET_OK, MainApp.gs(R.string.profile_set_ok), Notification.INFO, 60);
MainApp.bus().post(new EventNewNotification(reportOK));
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgSettingMeal.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgSettingMeal.java
index 6f87803868..8d94a1784d 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgSettingMeal.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/comm/MsgSettingMeal.java
@@ -48,14 +48,14 @@ public class MsgSettingMeal extends MessageBase {
}
if (pump.basalStep != 0.01d) {
- Notification notification = new Notification(Notification.WRONGBASALSTEP, MainApp.sResources.getString(R.string.danar_setbasalstep001), Notification.URGENT);
+ Notification notification = new Notification(Notification.WRONGBASALSTEP, MainApp.gs(R.string.danar_setbasalstep001), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
} else {
MainApp.bus().post(new EventDismissNotification(Notification.WRONGBASALSTEP));
}
if (pump.isConfigUD) {
- Notification notification = new Notification(Notification.UD_MODE_ENABLED, MainApp.sResources.getString(R.string.danar_switchtouhmode), Notification.URGENT);
+ Notification notification = new Notification(Notification.UD_MODE_ENABLED, MainApp.gs(R.string.danar_switchtouhmode), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
} else {
MainApp.bus().post(new EventDismissNotification(Notification.UD_MODE_ENABLED));
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/services/AbstractDanaRExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/services/AbstractDanaRExecutionService.java
index 5524cf5c5c..b7201c1163 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/services/AbstractDanaRExecutionService.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/services/AbstractDanaRExecutionService.java
@@ -134,7 +134,7 @@ public abstract class AbstractDanaRExecutionService extends Service {
}
protected void getBTSocketForSelectedPump() {
- mDevName = SP.getString(MainApp.sResources.getString(R.string.key_danar_bt_name), "");
+ mDevName = SP.getString(MainApp.gs(R.string.key_danar_bt_name), "");
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter != null) {
@@ -152,10 +152,10 @@ public abstract class AbstractDanaRExecutionService extends Service {
}
}
} else {
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.nobtadapter));
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.nobtadapter));
}
if (mBTDevice == null) {
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.devicenotfound));
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.devicenotfound));
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/services/DanaRExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/services/DanaRExecutionService.java
index 944931569b..65a5d22d36 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/services/DanaRExecutionService.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/services/DanaRExecutionService.java
@@ -97,7 +97,7 @@ public class DanaRExecutionService extends AbstractDanaRExecutionService{
public void connect() {
if (mDanaRPump.password != -1 && mDanaRPump.password != SP.getInt(R.string.key_danar_password, -1)) {
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.wrongpumppassword), R.raw.error);
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.wrongpumppassword), R.raw.error);
return;
}
@@ -138,7 +138,7 @@ public class DanaRExecutionService extends AbstractDanaRExecutionService{
public void getPumpStatus() {
try {
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingpumpstatus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingpumpstatus)));
MsgStatus statusMsg = new MsgStatus();
MsgStatusBasic statusBasicMsg = new MsgStatusBasic();
MsgStatusTempBasal tempStatusMsg = new MsgStatusTempBasal();
@@ -154,15 +154,15 @@ public class DanaRExecutionService extends AbstractDanaRExecutionService{
mSerialIOThread.sendMessage(statusMsg);
mSerialIOThread.sendMessage(statusBasicMsg);
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingtempbasalstatus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingtempbasalstatus)));
mSerialIOThread.sendMessage(tempStatusMsg);
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingextendedbolusstatus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingextendedbolusstatus)));
mSerialIOThread.sendMessage(exStatusMsg);
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingbolusstatus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingbolusstatus)));
long now = System.currentTimeMillis();
if (mDanaRPump.lastSettingsRead + 60 * 60 * 1000L < now || !MainApp.getSpecificPlugin(DanaRPlugin.class).isInitialized()) {
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingpumpsettings)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingpumpsettings)));
mSerialIOThread.sendMessage(new MsgSettingShippingInfo());
mSerialIOThread.sendMessage(new MsgSettingActiveProfile());
mSerialIOThread.sendMessage(new MsgSettingMeal());
@@ -173,7 +173,7 @@ public class DanaRExecutionService extends AbstractDanaRExecutionService{
mSerialIOThread.sendMessage(new MsgSettingActiveProfile());
mSerialIOThread.sendMessage(new MsgSettingProfileRatios());
mSerialIOThread.sendMessage(new MsgSettingProfileRatiosAll());
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingpumptime)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingpumptime)));
mSerialIOThread.sendMessage(new MsgSettingPumpTime());
long timeDiff = (mDanaRPump.pumpTime.getTime() - System.currentTimeMillis()) / 1000L;
log.debug("Pump time difference: " + timeDiff + " seconds");
@@ -192,9 +192,9 @@ public class DanaRExecutionService extends AbstractDanaRExecutionService{
NSUpload.uploadDeviceStatus();
if (mDanaRPump.dailyTotalUnits > mDanaRPump.maxDailyTotalUnits * Constants.dailyLimitWarning) {
log.debug("Approaching daily limit: " + mDanaRPump.dailyTotalUnits + "/" + mDanaRPump.maxDailyTotalUnits);
- Notification reportFail = new Notification(Notification.APPROACHING_DAILY_LIMIT, MainApp.sResources.getString(R.string.approachingdailylimit), Notification.URGENT);
+ Notification reportFail = new Notification(Notification.APPROACHING_DAILY_LIMIT, MainApp.gs(R.string.approachingdailylimit), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(reportFail));
- NSUpload.uploadError(MainApp.sResources.getString(R.string.approachingdailylimit) + ": " + mDanaRPump.dailyTotalUnits + "/" + mDanaRPump.maxDailyTotalUnits + "U");
+ NSUpload.uploadError(MainApp.gs(R.string.approachingdailylimit) + ": " + mDanaRPump.dailyTotalUnits + "/" + mDanaRPump.maxDailyTotalUnits + "U");
}
} catch (Exception e) {
log.error("Unhandled exception", e);
@@ -204,11 +204,11 @@ public class DanaRExecutionService extends AbstractDanaRExecutionService{
public boolean tempBasal(int percent, int durationInHours) {
if (!isConnected()) return false;
if (mDanaRPump.isTempBasalInProgress) {
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.stoppingtempbasal)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.stoppingtempbasal)));
mSerialIOThread.sendMessage(new MsgSetTempBasalStop());
SystemClock.sleep(500);
}
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.settingtempbasal)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.settingtempbasal)));
mSerialIOThread.sendMessage(new MsgSetTempBasalStart(percent, durationInHours));
mSerialIOThread.sendMessage(new MsgStatusTempBasal());
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING));
@@ -217,7 +217,7 @@ public class DanaRExecutionService extends AbstractDanaRExecutionService{
public boolean tempBasalStop() {
if (!isConnected()) return false;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.stoppingtempbasal)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.stoppingtempbasal)));
mSerialIOThread.sendMessage(new MsgSetTempBasalStop());
mSerialIOThread.sendMessage(new MsgStatusTempBasal());
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING));
@@ -226,7 +226,7 @@ public class DanaRExecutionService extends AbstractDanaRExecutionService{
public boolean extendedBolus(double insulin, int durationInHalfHours) {
if (!isConnected()) return false;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.settingextendedbolus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.settingextendedbolus)));
mSerialIOThread.sendMessage(new MsgSetExtendedBolusStart(insulin, (byte) (durationInHalfHours & 0xFF)));
mSerialIOThread.sendMessage(new MsgStatusBolusExtended());
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING));
@@ -235,7 +235,7 @@ public class DanaRExecutionService extends AbstractDanaRExecutionService{
public boolean extendedBolusStop() {
if (!isConnected()) return false;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.stoppingextendedbolus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.stoppingextendedbolus)));
mSerialIOThread.sendMessage(new MsgSetExtendedBolusStop());
mSerialIOThread.sendMessage(new MsgStatusBolusExtended());
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING));
@@ -310,7 +310,7 @@ public class DanaRExecutionService extends AbstractDanaRExecutionService{
while (System.currentTimeMillis() < expectedEnd) {
long waitTime = expectedEnd - System.currentTimeMillis();
- bolusingEvent.status = String.format(MainApp.sResources.getString(R.string.waitingforestimatedbolusend), waitTime / 1000);
+ bolusingEvent.status = String.format(MainApp.gs(R.string.waitingforestimatedbolusend), waitTime / 1000);
MainApp.bus().post(bolusingEvent);
SystemClock.sleep(1000);
}
@@ -363,7 +363,7 @@ public class DanaRExecutionService extends AbstractDanaRExecutionService{
public boolean updateBasalsInPump(final Profile profile) {
if (!isConnected()) return false;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.updatingbasalrates)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.updatingbasalrates)));
double[] basal = DanaRPump.buildDanaRProfileRecord(profile);
MsgSetBasalProfile msgSet = new MsgSetBasalProfile((byte) 0, basal);
mSerialIOThread.sendMessage(msgSet);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/DanaRKoreanPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/DanaRKoreanPlugin.java
index 03d60ad605..092febec61 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/DanaRKoreanPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/DanaRKoreanPlugin.java
@@ -160,7 +160,7 @@ public class DanaRKoreanPlugin extends AbstractDanaRPlugin {
if (detailedBolusInfo.insulin > 0 || detailedBolusInfo.carbs > 0)
connectionOK = sExecutionService.bolus(detailedBolusInfo.insulin, (int) detailedBolusInfo.carbs, detailedBolusInfo.carbTime, t);
PumpEnactResult result = new PumpEnactResult();
- result.success = connectionOK && detailedBolusInfo.insulin == t.insulin;
+ result.success = connectionOK && Math.abs(detailedBolusInfo.insulin - t.insulin) < pumpDescription.bolusStep;
result.bolusDelivered = t.insulin;
result.carbsDelivered = detailedBolusInfo.carbs;
if (!result.success)
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/comm/MsgInitConnStatusBasic_k.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/comm/MsgInitConnStatusBasic_k.java
index 82beecc5e9..fa28e664ed 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/comm/MsgInitConnStatusBasic_k.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/comm/MsgInitConnStatusBasic_k.java
@@ -39,7 +39,7 @@ public class MsgInitConnStatusBasic_k extends MessageBase {
}
if (pump.isEasyModeEnabled) {
- Notification notification = new Notification(Notification.EASYMODE_ENABLED, MainApp.sResources.getString(R.string.danar_disableeasymode), Notification.URGENT);
+ Notification notification = new Notification(Notification.EASYMODE_ENABLED, MainApp.gs(R.string.danar_disableeasymode), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
} else {
MainApp.bus().post(new EventDismissNotification(Notification.EASYMODE_ENABLED));
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/comm/MsgInitConnStatusBolus_k.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/comm/MsgInitConnStatusBolus_k.java
index bf105b8db0..552511cf7c 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/comm/MsgInitConnStatusBolus_k.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/comm/MsgInitConnStatusBolus_k.java
@@ -44,7 +44,7 @@ public class MsgInitConnStatusBolus_k extends MessageBase {
}
if (!pump.isExtendedBolusEnabled) {
- Notification notification = new Notification(Notification.EXTENDED_BOLUS_DISABLED, MainApp.sResources.getString(R.string.danar_enableextendedbolus), Notification.URGENT);
+ Notification notification = new Notification(Notification.EXTENDED_BOLUS_DISABLED, MainApp.gs(R.string.danar_enableextendedbolus), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
} else {
MainApp.bus().post(new EventDismissNotification(Notification.EXTENDED_BOLUS_DISABLED));
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/comm/MsgInitConnStatusTime_k.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/comm/MsgInitConnStatusTime_k.java
index 2028411791..7553b0cc37 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/comm/MsgInitConnStatusTime_k.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/comm/MsgInitConnStatusTime_k.java
@@ -29,7 +29,7 @@ public class MsgInitConnStatusTime_k extends MessageBase {
public void handleMessage(byte[] bytes) {
if (bytes.length - 10 < 10) {
- Notification notification = new Notification(Notification.WRONG_DRIVER, MainApp.sResources.getString(R.string.pumpdrivercorrected), Notification.NORMAL);
+ Notification notification = new Notification(Notification.WRONG_DRIVER, MainApp.gs(R.string.pumpdrivercorrected), Notification.NORMAL);
MainApp.bus().post(new EventNewNotification(notification));
DanaRKoreanPlugin.getPlugin().disconnect("Wrong Model");
log.debug("Wrong model selected. Switching to export DanaR");
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/services/DanaRKoreanExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/services/DanaRKoreanExecutionService.java
index 106074ca3c..b9cc704aba 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/services/DanaRKoreanExecutionService.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/services/DanaRKoreanExecutionService.java
@@ -105,7 +105,7 @@ public class DanaRKoreanExecutionService extends AbstractDanaRExecutionService {
public void connect() {
if (mDanaRPump.password != -1 && mDanaRPump.password != SP.getInt(R.string.key_danar_password, -1)) {
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.wrongpumppassword), R.raw.error);
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.wrongpumppassword), R.raw.error);
return;
}
@@ -146,7 +146,7 @@ public class DanaRKoreanExecutionService extends AbstractDanaRExecutionService {
public void getPumpStatus() {
try {
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingpumpstatus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingpumpstatus)));
//MsgStatus_k statusMsg = new MsgStatus_k();
MsgStatusBasic_k statusBasicMsg = new MsgStatusBasic_k();
MsgStatusTempBasal tempStatusMsg = new MsgStatusTempBasal();
@@ -162,15 +162,15 @@ public class DanaRKoreanExecutionService extends AbstractDanaRExecutionService {
//mSerialIOThread.sendMessage(statusMsg);
mSerialIOThread.sendMessage(statusBasicMsg);
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingtempbasalstatus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingtempbasalstatus)));
mSerialIOThread.sendMessage(tempStatusMsg);
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingextendedbolusstatus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingextendedbolusstatus)));
mSerialIOThread.sendMessage(exStatusMsg);
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingbolusstatus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingbolusstatus)));
long now = System.currentTimeMillis();
if (mDanaRPump.lastSettingsRead + 60 * 60 * 1000L < now || !MainApp.getSpecificPlugin(DanaRKoreanPlugin.class).isInitialized()) {
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingpumpsettings)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingpumpsettings)));
mSerialIOThread.sendMessage(new MsgSettingShippingInfo());
mSerialIOThread.sendMessage(new MsgSettingMeal());
mSerialIOThread.sendMessage(new MsgSettingBasal_k());
@@ -178,7 +178,7 @@ public class DanaRKoreanExecutionService extends AbstractDanaRExecutionService {
mSerialIOThread.sendMessage(new MsgSettingMaxValues());
mSerialIOThread.sendMessage(new MsgSettingGlucose());
mSerialIOThread.sendMessage(new MsgSettingProfileRatios());
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingpumptime)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingpumptime)));
mSerialIOThread.sendMessage(new MsgSettingPumpTime());
long timeDiff = (mDanaRPump.pumpTime.getTime() - System.currentTimeMillis()) / 1000L;
log.debug("Pump time difference: " + timeDiff + " seconds");
@@ -197,9 +197,9 @@ public class DanaRKoreanExecutionService extends AbstractDanaRExecutionService {
NSUpload.uploadDeviceStatus();
if (mDanaRPump.dailyTotalUnits > mDanaRPump.maxDailyTotalUnits * Constants.dailyLimitWarning) {
log.debug("Approaching daily limit: " + mDanaRPump.dailyTotalUnits + "/" + mDanaRPump.maxDailyTotalUnits);
- Notification reportFail = new Notification(Notification.APPROACHING_DAILY_LIMIT, MainApp.sResources.getString(R.string.approachingdailylimit), Notification.URGENT);
+ Notification reportFail = new Notification(Notification.APPROACHING_DAILY_LIMIT, MainApp.gs(R.string.approachingdailylimit), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(reportFail));
- NSUpload.uploadError(MainApp.sResources.getString(R.string.approachingdailylimit) + ": " + mDanaRPump.dailyTotalUnits + "/" + mDanaRPump.maxDailyTotalUnits + "U");
+ NSUpload.uploadError(MainApp.gs(R.string.approachingdailylimit) + ": " + mDanaRPump.dailyTotalUnits + "/" + mDanaRPump.maxDailyTotalUnits + "U");
}
} catch (Exception e) {
log.error("Unhandled exception", e);
@@ -209,11 +209,11 @@ public class DanaRKoreanExecutionService extends AbstractDanaRExecutionService {
public boolean tempBasal(int percent, int durationInHours) {
if (!isConnected()) return false;
if (mDanaRPump.isTempBasalInProgress) {
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.stoppingtempbasal)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.stoppingtempbasal)));
mSerialIOThread.sendMessage(new MsgSetTempBasalStop());
SystemClock.sleep(500);
}
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.settingtempbasal)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.settingtempbasal)));
mSerialIOThread.sendMessage(new MsgSetTempBasalStart(percent, durationInHours));
mSerialIOThread.sendMessage(new MsgStatusTempBasal());
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING));
@@ -222,7 +222,7 @@ public class DanaRKoreanExecutionService extends AbstractDanaRExecutionService {
public boolean tempBasalStop() {
if (!isConnected()) return false;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.stoppingtempbasal)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.stoppingtempbasal)));
mSerialIOThread.sendMessage(new MsgSetTempBasalStop());
mSerialIOThread.sendMessage(new MsgStatusTempBasal());
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING));
@@ -231,7 +231,7 @@ public class DanaRKoreanExecutionService extends AbstractDanaRExecutionService {
public boolean extendedBolus(double insulin, int durationInHalfHours) {
if (!isConnected()) return false;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.settingextendedbolus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.settingextendedbolus)));
mSerialIOThread.sendMessage(new MsgSetExtendedBolusStart(insulin, (byte) (durationInHalfHours & 0xFF)));
mSerialIOThread.sendMessage(new MsgStatusBolusExtended());
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING));
@@ -240,7 +240,7 @@ public class DanaRKoreanExecutionService extends AbstractDanaRExecutionService {
public boolean extendedBolusStop() {
if (!isConnected()) return false;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.stoppingextendedbolus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.stoppingextendedbolus)));
mSerialIOThread.sendMessage(new MsgSetExtendedBolusStop());
mSerialIOThread.sendMessage(new MsgStatusBolusExtended());
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING));
@@ -310,7 +310,7 @@ public class DanaRKoreanExecutionService extends AbstractDanaRExecutionService {
public boolean updateBasalsInPump(final Profile profile) {
if (!isConnected()) return false;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.updatingbasalrates)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.updatingbasalrates)));
double[] basal = DanaRPump.buildDanaRProfileRecord(profile);
MsgSetSingleBasalProfile msgSet = new MsgSetSingleBasalProfile(basal);
mSerialIOThread.sendMessage(msgSet);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/DanaRSPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/DanaRSPlugin.java
index a2ec13d184..1cbb256c1e 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/DanaRSPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/DanaRSPlugin.java
@@ -297,22 +297,22 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
}
if (!isInitialized()) {
log.error("setNewBasalProfile not initialized");
- Notification notification = new Notification(Notification.PROFILE_NOT_SET_NOT_INITIALIZED, MainApp.sResources.getString(R.string.pumpNotInitializedProfileNotSet), Notification.URGENT);
+ Notification notification = new Notification(Notification.PROFILE_NOT_SET_NOT_INITIALIZED, MainApp.gs(R.string.pumpNotInitializedProfileNotSet), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
- result.comment = MainApp.sResources.getString(R.string.pumpNotInitializedProfileNotSet);
+ result.comment = MainApp.gs(R.string.pumpNotInitializedProfileNotSet);
return result;
} else {
MainApp.bus().post(new EventDismissNotification(Notification.PROFILE_NOT_SET_NOT_INITIALIZED));
}
if (!danaRSService.updateBasalsInPump(profile)) {
- Notification notification = new Notification(Notification.FAILED_UDPATE_PROFILE, MainApp.sResources.getString(R.string.failedupdatebasalprofile), Notification.URGENT);
+ Notification notification = new Notification(Notification.FAILED_UDPATE_PROFILE, MainApp.gs(R.string.failedupdatebasalprofile), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
- result.comment = MainApp.sResources.getString(R.string.failedupdatebasalprofile);
+ result.comment = MainApp.gs(R.string.failedupdatebasalprofile);
return result;
} else {
MainApp.bus().post(new EventDismissNotification(Notification.PROFILE_NOT_SET_NOT_INITIALIZED));
MainApp.bus().post(new EventDismissNotification(Notification.FAILED_UDPATE_PROFILE));
- Notification notification = new Notification(Notification.PROFILE_SET_OK, MainApp.sResources.getString(R.string.profile_set_ok), Notification.INFO, 60);
+ Notification notification = new Notification(Notification.PROFILE_SET_OK, MainApp.gs(R.string.profile_set_ok), Notification.INFO, 60);
MainApp.bus().post(new EventNewNotification(notification));
result.success = true;
result.enacted = true;
@@ -386,7 +386,7 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
if (detailedBolusInfo.insulin > 0 || carbs > 0)
connectionOK = danaRSService.bolus(detailedBolusInfo.insulin, (int) carbs, DateUtil.now() + carbTime * 60 * 1000, t);
PumpEnactResult result = new PumpEnactResult();
- result.success = connectionOK && detailedBolusInfo.insulin == t.insulin;
+ result.success = connectionOK && Math.abs(detailedBolusInfo.insulin - t.insulin) < pumpDescription.bolusStep;
result.bolusDelivered = t.insulin;
result.carbsDelivered = detailedBolusInfo.carbs;
if (!result.success)
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/activities/PairingProgressDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/activities/PairingProgressDialog.java
index a663d14245..9f72e1d08f 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/activities/PairingProgressDialog.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/activities/PairingProgressDialog.java
@@ -51,14 +51,14 @@ public class PairingProgressDialog extends DialogFragment implements View.OnClic
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.danars_pairingprogressdialog, container, false);
- getDialog().setTitle(MainApp.sResources.getString(R.string.pairing));
+ getDialog().setTitle(MainApp.gs(R.string.pairing));
statusView = (TextView) view.findViewById(R.id.danars_paringprogress_status);
progressBar = (ProgressBar) view.findViewById(R.id.danars_paringprogress_progressbar);
button = (Button) view.findViewById(R.id.ok);
progressBar.setMax(100);
progressBar.setProgress(0);
- statusView.setText(MainApp.sResources.getString(R.string.waitingforpairing));
+ statusView.setText(MainApp.gs(R.string.waitingforpairing));
button.setVisibility(View.GONE);
button.setOnClickListener(this);
setCancelable(false);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_APS_History_Events.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_APS_History_Events.java
index a707c5e0cc..181584df8e 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_APS_History_Events.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_APS_History_Events.java
@@ -200,7 +200,7 @@ public class DanaRS_Packet_APS_History_Events extends DanaRS_Packet {
if (datetime.getTime() > lastEventTimeLoaded)
lastEventTimeLoaded = datetime.getTime();
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.processinghistory) + ": " + status));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.processinghistory) + ": " + status));
}
@Override
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Basal_Get_Basal_Rate.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Basal_Get_Basal_Rate.java
index 048912a23d..f3fef0d49d 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Basal_Get_Basal_Rate.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Basal_Get_Basal_Rate.java
@@ -53,7 +53,7 @@ public class DanaRS_Packet_Basal_Get_Basal_Rate extends DanaRS_Packet {
}
if (pump.basalStep != 0.01d) {
- Notification notification = new Notification(Notification.WRONGBASALSTEP, MainApp.sResources.getString(R.string.danar_setbasalstep001), Notification.URGENT);
+ Notification notification = new Notification(Notification.WRONGBASALSTEP, MainApp.gs(R.string.danar_setbasalstep001), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
} else {
MainApp.bus().post(new EventDismissNotification(Notification.WRONGBASALSTEP));
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Bolus_Get_Bolus_Option.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Bolus_Get_Bolus_Option.java
index eb4af6b25f..69c2f75ba6 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Bolus_Get_Bolus_Option.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Bolus_Get_Bolus_Option.java
@@ -102,7 +102,7 @@ public class DanaRS_Packet_Bolus_Get_Bolus_Option extends DanaRS_Packet {
int missedBolus04EndMin = byteArrayToInt(getBytes(data, dataIndex, dataSize));
if (!pump.isExtendedBolusEnabled) {
- Notification notification = new Notification(Notification.EXTENDED_BOLUS_DISABLED, MainApp.sResources.getString(R.string.danar_enableextendedbolus), Notification.URGENT);
+ Notification notification = new Notification(Notification.EXTENDED_BOLUS_DISABLED, MainApp.gs(R.string.danar_enableextendedbolus), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
} else {
MainApp.bus().post(new EventDismissNotification(Notification.EXTENDED_BOLUS_DISABLED));
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Bolus_Set_Step_Bolus_Start.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Bolus_Set_Step_Bolus_Start.java
index f90dd77b74..44e5d308dc 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Bolus_Set_Step_Bolus_Start.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Bolus_Set_Step_Bolus_Start.java
@@ -53,9 +53,10 @@ public class DanaRS_Packet_Bolus_Set_Step_Bolus_Start extends DanaRS_Packet {
public void handleMessage(byte[] data) {
errorCode = intFromBuff(data, 0, 1);
if (Config.logDanaMessageDetail) {
- if (errorCode == 0)
+ if (errorCode == 0) {
log.debug("Result OK");
- else {
+ failed = false;
+ } else {
failed = true;
log.error("Result Error: " + errorCode);
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Bolus_Set_Step_Bolus_Stop.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Bolus_Set_Step_Bolus_Stop.java
index 83e84e28cc..78548ecab3 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Bolus_Set_Step_Bolus_Stop.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Bolus_Set_Step_Bolus_Stop.java
@@ -47,10 +47,10 @@ public class DanaRS_Packet_Bolus_Set_Step_Bolus_Stop extends DanaRS_Packet {
stopped = true;
if (!forced) {
t.insulin = amount;
- bolusingEvent.status = MainApp.sResources.getString(R.string.overview_bolusprogress_delivered);
+ bolusingEvent.status = MainApp.gs(R.string.overview_bolusprogress_delivered);
bolusingEvent.percent = 100;
} else {
- bolusingEvent.status = MainApp.sResources.getString(R.string.overview_bolusprogress_stoped);
+ bolusingEvent.status = MainApp.gs(R.string.overview_bolusprogress_stoped);
}
MainApp.bus().post(bolusingEvent);
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_General_Get_Pump_Check.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_General_Get_Pump_Check.java
index a9bb7157af..bdc5ab8d9b 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_General_Get_Pump_Check.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_General_Get_Pump_Check.java
@@ -43,7 +43,7 @@ public class DanaRS_Packet_General_Get_Pump_Check extends DanaRS_Packet {
}
if (pump.productCode < 2) {
- MainApp.bus().post(new EventNewNotification(new Notification(Notification.UNSUPPORTED_FIRMWARE, MainApp.sResources.getString(R.string.unsupportedfirmware), Notification.URGENT)));
+ MainApp.bus().post(new EventNewNotification(new Notification(Notification.UNSUPPORTED_FIRMWARE, MainApp.gs(R.string.unsupportedfirmware), Notification.URGENT)));
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Notify_Alarm.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Notify_Alarm.java
index 88edd13a63..04737f0bdc 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Notify_Alarm.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Notify_Alarm.java
@@ -30,23 +30,23 @@ public class DanaRS_Packet_Notify_Alarm extends DanaRS_Packet {
switch (alarmCode) {
case 0x01:
// Battery 0% Alarm
- errorString = MainApp.sResources.getString(R.string.batterydischarged);
+ errorString = MainApp.gs(R.string.batterydischarged);
break;
case 0x02:
// Pump Error
- errorString = MainApp.sResources.getString(R.string.pumperror) + " " + alarmCode;
+ errorString = MainApp.gs(R.string.pumperror) + " " + alarmCode;
break;
case 0x03:
// Occlusion
- errorString = MainApp.sResources.getString(R.string.occlusion);
+ errorString = MainApp.gs(R.string.occlusion);
break;
case 0x04:
// LOW BATTERY
- errorString = MainApp.sResources.getString(R.string.lowbattery);
+ errorString = MainApp.gs(R.string.lowbattery);
break;
case 0x05:
// Shutdown
- errorString = MainApp.sResources.getString(R.string.lowbattery);
+ errorString = MainApp.gs(R.string.lowbattery);
break;
case 0x06:
// Basal Compare
@@ -54,20 +54,20 @@ public class DanaRS_Packet_Notify_Alarm extends DanaRS_Packet {
break;
case 0x09:
// Empty Reservoir
- errorString = MainApp.sResources.getString(R.string.emptyreservoir);
+ errorString = MainApp.gs(R.string.emptyreservoir);
break;
// BT
case 0x07:
case 0xFF:
// Blood sugar measurement alert
- errorString = MainApp.sResources.getString(R.string.bloodsugarmeasurementalert);
+ errorString = MainApp.gs(R.string.bloodsugarmeasurementalert);
break;
case 0x08:
case 0xFE:
// Remaining insulin level
- errorString = MainApp.sResources.getString(R.string.remaininsulinalert);
+ errorString = MainApp.gs(R.string.remaininsulinalert);
break;
case 0xFD:
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Notify_Delivery_Complete.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Notify_Delivery_Complete.java
index fb5793995c..2598c5efc9 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Notify_Delivery_Complete.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Notify_Delivery_Complete.java
@@ -39,7 +39,7 @@ public class DanaRS_Packet_Notify_Delivery_Complete extends DanaRS_Packet {
if (t != null) {
t.insulin = deliveredInsulin;
EventOverviewBolusProgress bolusingEvent = EventOverviewBolusProgress.getInstance();
- bolusingEvent.status = String.format(MainApp.sResources.getString(R.string.bolusdelivering), deliveredInsulin);
+ bolusingEvent.status = String.format(MainApp.gs(R.string.bolusdelivering), deliveredInsulin);
bolusingEvent.t = t;
bolusingEvent.percent = Math.min((int) (deliveredInsulin / amount * 100), 100);
done = true;
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Notify_Delivery_Rate_Display.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Notify_Delivery_Rate_Display.java
index 5354836375..34621d07ee 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Notify_Delivery_Rate_Display.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/comm/DanaRS_Packet_Notify_Delivery_Rate_Display.java
@@ -39,7 +39,7 @@ public class DanaRS_Packet_Notify_Delivery_Rate_Display extends DanaRS_Packet {
lastReceive = System.currentTimeMillis();
t.insulin = deliveredInsulin;
EventOverviewBolusProgress bolusingEvent = EventOverviewBolusProgress.getInstance();
- bolusingEvent.status = String.format(MainApp.sResources.getString(R.string.bolusdelivering), deliveredInsulin);
+ bolusingEvent.status = String.format(MainApp.gs(R.string.bolusdelivering), deliveredInsulin);
bolusingEvent.t = t;
bolusingEvent.percent = Math.min((int) (deliveredInsulin / amount * 100), 100);
MainApp.bus().post(bolusingEvent);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/services/BLEComm.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/services/BLEComm.java
index 2901c4b863..b552026279 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/services/BLEComm.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/services/BLEComm.java
@@ -433,7 +433,7 @@ public class BLEComm {
if (inputBuffer.length == 4 && inputBuffer[2] == 'O' && inputBuffer[3] == 'K') {
log.debug("<<<<< " + "ENCRYPTION__PUMP_CHECK (OK)" + " " + DanaRS_Packet.toHexString(inputBuffer));
// Grab pairing key from preferences if exists
- String pairingKey = SP.getString(MainApp.sResources.getString(R.string.key_danars_pairingkey) + DanaRSPlugin.mDeviceName, null);
+ String pairingKey = SP.getString(MainApp.gs(R.string.key_danars_pairingkey) + DanaRSPlugin.mDeviceName, null);
log.debug("Using stored pairing key: " + pairingKey);
if (pairingKey != null) {
byte[] encodedPairingKey = DanaRS_Packet.hexToBytes(pairingKey);
@@ -448,11 +448,11 @@ public class BLEComm {
} else if (inputBuffer.length == 6 && inputBuffer[2] == 'B' && inputBuffer[3] == 'U' && inputBuffer[4] == 'S' && inputBuffer[5] == 'Y') {
log.debug("<<<<< " + "ENCRYPTION__PUMP_CHECK (BUSY)" + " " + DanaRS_Packet.toHexString(inputBuffer));
mSendQueue.clear();
- MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTED, MainApp.sResources.getString(R.string.pumpbusy)));
+ MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTED, MainApp.gs(R.string.pumpbusy)));
} else {
log.debug("<<<<< " + "ENCRYPTION__PUMP_CHECK (ERROR)" + " " + DanaRS_Packet.toHexString(inputBuffer));
mSendQueue.clear();
- MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTED, MainApp.sResources.getString(R.string.connectionerror)));
+ MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTED, MainApp.gs(R.string.connectionerror)));
}
break;
// 2nd packet, pairing key
@@ -480,7 +480,7 @@ public class BLEComm {
SendTimeInfo();
byte[] pairingKey = {inputBuffer[2], inputBuffer[3]};
// store pairing key to preferences
- SP.putString(MainApp.sResources.getString(R.string.key_danars_pairingkey) + DanaRSPlugin.mDeviceName, DanaRS_Packet.bytesToHex(pairingKey));
+ SP.putString(MainApp.gs(R.string.key_danars_pairingkey) + DanaRSPlugin.mDeviceName, DanaRS_Packet.bytesToHex(pairingKey));
log.debug("Got pairing key: " + DanaRS_Packet.bytesToHex(pairingKey));
break;
// time and user password information. last packet in handshake
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/services/DanaRSService.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/services/DanaRSService.java
index 91859c759a..a6afd0aeb0 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/services/DanaRSService.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/services/DanaRSService.java
@@ -123,19 +123,19 @@ public class DanaRSService extends Service {
public void getPumpStatus() {
try {
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingpumpstatus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingpumpstatus)));
bleComm.sendMessage(new DanaRS_Packet_General_Initial_Screen_Information());
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingextendedbolusstatus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingextendedbolusstatus)));
bleComm.sendMessage(new DanaRS_Packet_Bolus_Get_Extended_Bolus_State());
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingbolusstatus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingbolusstatus)));
bleComm.sendMessage(new DanaRS_Packet_Bolus_Get_Step_Bolus_Information()); // last bolus, bolusStep, maxBolus
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingtempbasalstatus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingtempbasalstatus)));
bleComm.sendMessage(new DanaRS_Packet_Basal_Get_Temporary_Basal_State());
long now = System.currentTimeMillis();
if (danaRPump.lastSettingsRead + 60 * 60 * 1000L < now || !MainApp.getSpecificPlugin(DanaRSPlugin.class).isInitialized()) {
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingpumpsettings)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingpumpsettings)));
bleComm.sendMessage(new DanaRS_Packet_General_Get_Shipping_Information()); // serial no
bleComm.sendMessage(new DanaRS_Packet_General_Get_Pump_Check()); // firmware
bleComm.sendMessage(new DanaRS_Packet_Basal_Get_Profile_Number());
@@ -143,7 +143,7 @@ public class DanaRSService extends Service {
bleComm.sendMessage(new DanaRS_Packet_Basal_Get_Basal_Rate()); // basal profile, basalStep, maxBasal
bleComm.sendMessage(new DanaRS_Packet_Bolus_Get_Calculation_Information()); // target
bleComm.sendMessage(new DanaRS_Packet_Bolus_Get_CIR_CF_Array());
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingpumptime)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingpumptime)));
bleComm.sendMessage(new DanaRS_Packet_Option_Get_Pump_Time());
long timeDiff = (danaRPump.pumpTime.getTime() - System.currentTimeMillis()) / 1000L;
log.debug("Pump time difference: " + timeDiff + " seconds");
@@ -165,9 +165,9 @@ public class DanaRSService extends Service {
NSUpload.uploadDeviceStatus();
if (danaRPump.dailyTotalUnits > danaRPump.maxDailyTotalUnits * Constants.dailyLimitWarning) {
log.debug("Approaching daily limit: " + danaRPump.dailyTotalUnits + "/" + danaRPump.maxDailyTotalUnits);
- Notification reportFail = new Notification(Notification.APPROACHING_DAILY_LIMIT, MainApp.sResources.getString(R.string.approachingdailylimit), Notification.URGENT);
+ Notification reportFail = new Notification(Notification.APPROACHING_DAILY_LIMIT, MainApp.gs(R.string.approachingdailylimit), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(reportFail));
- NSUpload.uploadError(MainApp.sResources.getString(R.string.approachingdailylimit) + ": " + danaRPump.dailyTotalUnits + "/" + danaRPump.maxDailyTotalUnits + "U");
+ NSUpload.uploadError(MainApp.gs(R.string.approachingdailylimit) + ": " + danaRPump.dailyTotalUnits + "/" + danaRPump.maxDailyTotalUnits + "U");
}
} catch (Exception e) {
log.error("Unhandled exception", e);
@@ -202,7 +202,7 @@ public class DanaRSService extends Service {
if (!isConnected()) return false;
if (BolusProgressDialog.stopPressed) return false;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.startingbolus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.startingbolus)));
bolusingTreatment = t;
final int preferencesSpeed = SP.getInt(R.string.key_danars_bolusspeed, 0);
DanaRS_Packet_Bolus_Set_Step_Bolus_Start start = new DanaRS_Packet_Bolus_Set_Step_Bolus_Start(insulin, preferencesSpeed);
@@ -258,7 +258,7 @@ public class DanaRSService extends Service {
long expectedEnd = bolusStart + bolusDurationInMSec + 2000;
while (System.currentTimeMillis() < expectedEnd) {
long waitTime = expectedEnd - System.currentTimeMillis();
- bolusingEvent.status = String.format(MainApp.sResources.getString(R.string.waitingforestimatedbolusend), waitTime / 1000);
+ bolusingEvent.status = String.format(MainApp.gs(R.string.waitingforestimatedbolusend), waitTime / 1000);
MainApp.bus().post(bolusingEvent);
SystemClock.sleep(1000);
}
@@ -267,10 +267,10 @@ public class DanaRSService extends Service {
@Override
public void run() {
// reread bolus status
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingbolusstatus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingbolusstatus)));
bleComm.sendMessage(new DanaRS_Packet_Bolus_Get_Step_Bolus_Information()); // last bolus
bolusingEvent.percent = 100;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.disconnecting)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.disconnecting)));
}
});
return !start.failed;
@@ -295,11 +295,11 @@ public class DanaRSService extends Service {
public boolean tempBasal(Integer percent, int durationInHours) {
if (!isConnected()) return false;
if (danaRPump.isTempBasalInProgress) {
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.stoppingtempbasal)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.stoppingtempbasal)));
bleComm.sendMessage(new DanaRS_Packet_Basal_Set_Cancel_Temporary_Basal());
SystemClock.sleep(500);
}
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.settingtempbasal)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.settingtempbasal)));
bleComm.sendMessage(new DanaRS_Packet_Basal_Set_Temporary_Basal(percent, durationInHours));
SystemClock.sleep(200);
bleComm.sendMessage(new DanaRS_Packet_Basal_Get_Temporary_Basal_State());
@@ -310,11 +310,11 @@ public class DanaRSService extends Service {
public boolean highTempBasal(Integer percent) {
if (danaRPump.isTempBasalInProgress) {
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.stoppingtempbasal)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.stoppingtempbasal)));
bleComm.sendMessage(new DanaRS_Packet_Basal_Set_Cancel_Temporary_Basal());
SystemClock.sleep(500);
}
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.settingtempbasal)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.settingtempbasal)));
bleComm.sendMessage(new DanaRS_Packet_APS_Basal_Set_Temporary_Basal(percent));
bleComm.sendMessage(new DanaRS_Packet_Basal_Get_Temporary_Basal_State());
loadEvents();
@@ -343,7 +343,7 @@ public class DanaRSService extends Service {
public boolean tempBasalStop() {
if (!isConnected()) return false;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.stoppingtempbasal)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.stoppingtempbasal)));
bleComm.sendMessage(new DanaRS_Packet_Basal_Set_Cancel_Temporary_Basal());
bleComm.sendMessage(new DanaRS_Packet_Basal_Get_Temporary_Basal_State());
loadEvents();
@@ -353,7 +353,7 @@ public class DanaRSService extends Service {
public boolean extendedBolus(Double insulin, int durationInHalfHours) {
if (!isConnected()) return false;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.settingextendedbolus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.settingextendedbolus)));
bleComm.sendMessage(new DanaRS_Packet_Bolus_Set_Extended_Bolus(insulin, durationInHalfHours));
SystemClock.sleep(200);
bleComm.sendMessage(new DanaRS_Packet_Bolus_Get_Extended_Bolus_State());
@@ -364,7 +364,7 @@ public class DanaRSService extends Service {
public boolean extendedBolusStop() {
if (!isConnected()) return false;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.stoppingextendedbolus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.stoppingextendedbolus)));
bleComm.sendMessage(new DanaRS_Packet_Bolus_Set_Extended_Bolus_Cancel());
bleComm.sendMessage(new DanaRS_Packet_Bolus_Get_Extended_Bolus_State());
loadEvents();
@@ -374,7 +374,7 @@ public class DanaRSService extends Service {
public boolean updateBasalsInPump(Profile profile) {
if (!isConnected()) return false;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.updatingbasalrates)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.updatingbasalrates)));
double[] basal = DanaRPump.buildDanaRProfileRecord(profile);
DanaRS_Packet_Basal_Set_Profile_Basal_Rate msgSet = new DanaRS_Packet_Basal_Set_Profile_Basal_Rate(0, basal);
bleComm.sendMessage(msgSet);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/DanaRv2Plugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/DanaRv2Plugin.java
index 0ea6f192e4..7c13707949 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/DanaRv2Plugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/DanaRv2Plugin.java
@@ -174,7 +174,7 @@ public class DanaRv2Plugin extends AbstractDanaRPlugin {
if (detailedBolusInfo.insulin > 0 || carbs > 0)
connectionOK = sExecutionService.bolus(detailedBolusInfo.insulin, (int) carbs, DateUtil.now() + carbTime * 60 * 1000, t);
PumpEnactResult result = new PumpEnactResult();
- result.success = connectionOK && detailedBolusInfo.insulin == t.insulin;
+ result.success = connectionOK && Math.abs(detailedBolusInfo.insulin - t.insulin) < pumpDescription.bolusStep;
result.bolusDelivered = t.insulin;
result.carbsDelivered = detailedBolusInfo.carbs;
if (!result.success)
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/comm/MsgCheckValue_v2.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/comm/MsgCheckValue_v2.java
index 9117ad1c98..0869844a1c 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/comm/MsgCheckValue_v2.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/comm/MsgCheckValue_v2.java
@@ -39,7 +39,7 @@ public class MsgCheckValue_v2 extends MessageBase {
pump.productCode = intFromBuff(bytes, 2, 1);
if (pump.model != DanaRPump.EXPORT_MODEL) {
pump.lastConnection = 0;
- Notification notification = new Notification(Notification.WRONG_DRIVER, MainApp.sResources.getString(R.string.pumpdrivercorrected), Notification.NORMAL);
+ Notification notification = new Notification(Notification.WRONG_DRIVER, MainApp.gs(R.string.pumpdrivercorrected), Notification.NORMAL);
MainApp.bus().post(new EventNewNotification(notification));
MainApp.getSpecificPlugin(DanaRPlugin.class).disconnect("Wrong Model");
log.debug("Wrong model selected. Switching to Korean DanaR");
@@ -64,7 +64,7 @@ public class MsgCheckValue_v2 extends MessageBase {
if (pump.protocol != 2) {
pump.lastConnection = 0;
- Notification notification = new Notification(Notification.WRONG_DRIVER, MainApp.sResources.getString(R.string.pumpdrivercorrected), Notification.NORMAL);
+ Notification notification = new Notification(Notification.WRONG_DRIVER, MainApp.gs(R.string.pumpdrivercorrected), Notification.NORMAL);
MainApp.bus().post(new EventNewNotification(notification));
DanaRKoreanPlugin.getPlugin().disconnect("Wrong Model");
log.debug("Wrong model selected. Switching to non APS DanaR");
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/comm/MsgHistoryEvents_v2.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/comm/MsgHistoryEvents_v2.java
index ac31d2df92..05c4087dcb 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/comm/MsgHistoryEvents_v2.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/comm/MsgHistoryEvents_v2.java
@@ -170,6 +170,6 @@ public class MsgHistoryEvents_v2 extends MessageBase {
if (datetime.getTime() > lastEventTimeLoaded)
lastEventTimeLoaded = datetime.getTime();
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.processinghistory) + ": " + status));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.processinghistory) + ": " + status));
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/services/DanaRv2ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/services/DanaRv2ExecutionService.java
index 25cac9da1c..b9eb8ae655 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/services/DanaRv2ExecutionService.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/services/DanaRv2ExecutionService.java
@@ -120,7 +120,7 @@ public class DanaRv2ExecutionService extends AbstractDanaRExecutionService {
public void connect() {
if (mDanaRPump.password != -1 && mDanaRPump.password != SP.getInt(R.string.key_danar_password, -1)) {
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.wrongpumppassword), R.raw.error);
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.wrongpumppassword), R.raw.error);
return;
}
@@ -161,7 +161,7 @@ public class DanaRv2ExecutionService extends AbstractDanaRExecutionService {
public void getPumpStatus() {
try {
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingpumpstatus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingpumpstatus)));
MsgStatus statusMsg = new MsgStatus();
MsgStatusBasic statusBasicMsg = new MsgStatusBasic();
MsgStatusTempBasal_v2 tempStatusMsg = new MsgStatusTempBasal_v2();
@@ -175,17 +175,17 @@ public class DanaRv2ExecutionService extends AbstractDanaRExecutionService {
}
}
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingbolusstatus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingbolusstatus)));
mSerialIOThread.sendMessage(statusMsg);
mSerialIOThread.sendMessage(statusBasicMsg);
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingtempbasalstatus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingtempbasalstatus)));
mSerialIOThread.sendMessage(tempStatusMsg);
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingextendedbolusstatus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingextendedbolusstatus)));
mSerialIOThread.sendMessage(exStatusMsg);
long now = System.currentTimeMillis();
if (mDanaRPump.lastSettingsRead + 60 * 60 * 1000L < now || !MainApp.getSpecificPlugin(DanaRv2Plugin.class).isInitialized()) {
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingpumpsettings)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingpumpsettings)));
mSerialIOThread.sendMessage(new MsgSettingShippingInfo());
mSerialIOThread.sendMessage(new MsgSettingActiveProfile());
mSerialIOThread.sendMessage(new MsgSettingMeal());
@@ -196,7 +196,7 @@ public class DanaRv2ExecutionService extends AbstractDanaRExecutionService {
mSerialIOThread.sendMessage(new MsgSettingActiveProfile());
mSerialIOThread.sendMessage(new MsgSettingProfileRatios());
mSerialIOThread.sendMessage(new MsgSettingProfileRatiosAll());
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingpumptime)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingpumptime)));
mSerialIOThread.sendMessage(new MsgSettingPumpTime());
long timeDiff = (mDanaRPump.pumpTime.getTime() - System.currentTimeMillis()) / 1000L;
log.debug("Pump time difference: " + timeDiff + " seconds");
@@ -218,9 +218,9 @@ public class DanaRv2ExecutionService extends AbstractDanaRExecutionService {
NSUpload.uploadDeviceStatus();
if (mDanaRPump.dailyTotalUnits > mDanaRPump.maxDailyTotalUnits * Constants.dailyLimitWarning) {
log.debug("Approaching daily limit: " + mDanaRPump.dailyTotalUnits + "/" + mDanaRPump.maxDailyTotalUnits);
- Notification reportFail = new Notification(Notification.APPROACHING_DAILY_LIMIT, MainApp.sResources.getString(R.string.approachingdailylimit), Notification.URGENT);
+ Notification reportFail = new Notification(Notification.APPROACHING_DAILY_LIMIT, MainApp.gs(R.string.approachingdailylimit), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(reportFail));
- NSUpload.uploadError(MainApp.sResources.getString(R.string.approachingdailylimit) + ": " + mDanaRPump.dailyTotalUnits + "/" + mDanaRPump.maxDailyTotalUnits + "U");
+ NSUpload.uploadError(MainApp.gs(R.string.approachingdailylimit) + ": " + mDanaRPump.dailyTotalUnits + "/" + mDanaRPump.maxDailyTotalUnits + "U");
}
} catch (Exception e) {
log.error("Unhandled exception", e);
@@ -231,11 +231,11 @@ public class DanaRv2ExecutionService extends AbstractDanaRExecutionService {
public boolean tempBasal(int percent, int durationInHours) {
if (!isConnected()) return false;
if (mDanaRPump.isTempBasalInProgress) {
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.stoppingtempbasal)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.stoppingtempbasal)));
mSerialIOThread.sendMessage(new MsgSetTempBasalStop());
SystemClock.sleep(500);
}
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.settingtempbasal)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.settingtempbasal)));
mSerialIOThread.sendMessage(new MsgSetTempBasalStart(percent, durationInHours));
mSerialIOThread.sendMessage(new MsgStatusTempBasal_v2());
loadEvents();
@@ -246,11 +246,11 @@ public class DanaRv2ExecutionService extends AbstractDanaRExecutionService {
public boolean highTempBasal(int percent) {
if (!isConnected()) return false;
if (mDanaRPump.isTempBasalInProgress) {
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.stoppingtempbasal)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.stoppingtempbasal)));
mSerialIOThread.sendMessage(new MsgSetTempBasalStop());
SystemClock.sleep(500);
}
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.settingtempbasal)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.settingtempbasal)));
mSerialIOThread.sendMessage(new MsgSetAPSTempBasalStart_v2(percent));
mSerialIOThread.sendMessage(new MsgStatusTempBasal_v2());
loadEvents();
@@ -280,7 +280,7 @@ public class DanaRv2ExecutionService extends AbstractDanaRExecutionService {
public boolean tempBasalStop() {
if (!isConnected()) return false;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.stoppingtempbasal)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.stoppingtempbasal)));
mSerialIOThread.sendMessage(new MsgSetTempBasalStop());
mSerialIOThread.sendMessage(new MsgStatusTempBasal_v2());
loadEvents();
@@ -290,7 +290,7 @@ public class DanaRv2ExecutionService extends AbstractDanaRExecutionService {
public boolean extendedBolus(double insulin, int durationInHalfHours) {
if (!isConnected()) return false;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.settingextendedbolus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.settingextendedbolus)));
mSerialIOThread.sendMessage(new MsgSetExtendedBolusStart(insulin, (byte) (durationInHalfHours & 0xFF)));
mSerialIOThread.sendMessage(new MsgStatusBolusExtended_v2());
loadEvents();
@@ -300,7 +300,7 @@ public class DanaRv2ExecutionService extends AbstractDanaRExecutionService {
public boolean extendedBolusStop() {
if (!isConnected()) return false;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.stoppingextendedbolus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.stoppingextendedbolus)));
mSerialIOThread.sendMessage(new MsgSetExtendedBolusStop());
mSerialIOThread.sendMessage(new MsgStatusBolusExtended_v2());
loadEvents();
@@ -312,7 +312,7 @@ public class DanaRv2ExecutionService extends AbstractDanaRExecutionService {
if (!isConnected()) return false;
if (BolusProgressDialog.stopPressed) return false;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.startingbolus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.startingbolus)));
mBolusingTreatment = t;
final int preferencesSpeed = SP.getInt(R.string.key_danars_bolusspeed, 0);
MessageBase start;
@@ -371,7 +371,7 @@ public class DanaRv2ExecutionService extends AbstractDanaRExecutionService {
long expectedEnd = bolusStart + bolusDurationInMSec + 2000;
while (System.currentTimeMillis() < expectedEnd) {
long waitTime = expectedEnd - System.currentTimeMillis();
- bolusingEvent.status = String.format(MainApp.sResources.getString(R.string.waitingforestimatedbolusend), waitTime / 1000);
+ bolusingEvent.status = String.format(MainApp.gs(R.string.waitingforestimatedbolusend), waitTime / 1000);
MainApp.bus().post(bolusingEvent);
SystemClock.sleep(1000);
}
@@ -380,10 +380,10 @@ public class DanaRv2ExecutionService extends AbstractDanaRExecutionService {
@Override
public void run() {
// load last bolus status
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingbolusstatus)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingbolusstatus)));
mSerialIOThread.sendMessage(new MsgStatus());
bolusingEvent.percent = 100;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.disconnecting)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.disconnecting)));
}
});
return !start.failed;
@@ -442,7 +442,7 @@ public class DanaRv2ExecutionService extends AbstractDanaRExecutionService {
public boolean updateBasalsInPump(final Profile profile) {
if (!isConnected()) return false;
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.updatingbasalrates)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.updatingbasalrates)));
double[] basal = DanaRPump.buildDanaRProfileRecord(profile);
MsgSetBasalProfile msgSet = new MsgSetBasalProfile((byte) 0, basal);
mSerialIOThread.sendMessage(msgSet);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/InsightPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/InsightPlugin.java
index c0e53ddaac..824a449f38 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/InsightPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/InsightPlugin.java
@@ -320,9 +320,9 @@ public class InsightPlugin extends PluginBase implements PumpInterface, Constrai
PumpEnactResult result = new PumpEnactResult();
if (!isInitialized()) {
log.error("setNewBasalProfile not initialized");
- Notification notification = new Notification(Notification.PROFILE_NOT_SET_NOT_INITIALIZED, MainApp.sResources.getString(R.string.pumpNotInitializedProfileNotSet), Notification.URGENT);
+ Notification notification = new Notification(Notification.PROFILE_NOT_SET_NOT_INITIALIZED, MainApp.gs(R.string.pumpNotInitializedProfileNotSet), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
- result.comment = MainApp.sResources.getString(R.string.pumpNotInitializedProfileNotSet);
+ result.comment = MainApp.gs(R.string.pumpNotInitializedProfileNotSet);
return result;
}
MainApp.bus().post(new EventDismissNotification(Notification.PROFILE_NOT_SET_NOT_INITIALIZED));
@@ -339,16 +339,16 @@ public class InsightPlugin extends PluginBase implements PumpInterface, Constrai
final Mstatus ms = async.busyWaitForCommandResult(uuid, BUSY_WAIT_TIME);
if (ms.success()) {
MainApp.bus().post(new EventDismissNotification(Notification.FAILED_UDPATE_PROFILE));
- Notification notification = new Notification(Notification.PROFILE_SET_OK, MainApp.sResources.getString(R.string.profile_set_ok), Notification.INFO, 60);
+ Notification notification = new Notification(Notification.PROFILE_SET_OK, MainApp.gs(R.string.profile_set_ok), Notification.INFO, 60);
MainApp.bus().post(new EventNewNotification(notification));
result.success = true;
result.enacted = true;
result.comment = "OK";
this.profileBlocks = profileBlocks;
} else {
- Notification notification = new Notification(Notification.FAILED_UDPATE_PROFILE, MainApp.sResources.getString(R.string.failedupdatebasalprofile), Notification.URGENT);
+ Notification notification = new Notification(Notification.FAILED_UDPATE_PROFILE, MainApp.gs(R.string.failedupdatebasalprofile), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
- result.comment = MainApp.sResources.getString(R.string.failedupdatebasalprofile);
+ result.comment = MainApp.gs(R.string.failedupdatebasalprofile);
}
return result;
}
@@ -395,7 +395,7 @@ public class InsightPlugin extends PluginBase implements PumpInterface, Constrai
result.bolusDelivered = detailedBolusInfo.insulin;
result.carbsDelivered = detailedBolusInfo.carbs;
result.enacted = result.bolusDelivered > 0 || result.carbsDelivered > 0;
- result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
+ result.comment = MainApp.gs(R.string.virtualpump_resultok);
result.percent = 100;
@@ -425,7 +425,7 @@ public class InsightPlugin extends PluginBase implements PumpInterface, Constrai
t.isSMB = detailedBolusInfo.isSMB;
final EventOverviewBolusProgress bolusingEvent = EventOverviewBolusProgress.getInstance();
bolusingEvent.t = t;
- bolusingEvent.status = String.format(MainApp.sResources.getString(R.string.bolusdelivering), 0F);
+ bolusingEvent.status = String.format(MainApp.gs(R.string.bolusdelivering), 0F);
bolusingEvent.bolusId = bolusId;
bolusingEvent.percent = 0;
MainApp.bus().post(bolusingEvent);
@@ -464,7 +464,7 @@ public class InsightPlugin extends PluginBase implements PumpInterface, Constrai
if (activeBolus == null) break;
else {
bolusingEvent.percent = (int) (100D / activeBolus.getInitialAmount() * (activeBolus.getInitialAmount() - activeBolus.getLeftoverAmount()));
- bolusingEvent.status = String.format(MainApp.sResources.getString(R.string.bolusdelivering), activeBolus.getInitialAmount() - activeBolus.getLeftoverAmount());
+ bolusingEvent.status = String.format(MainApp.gs(R.string.bolusdelivering), activeBolus.getInitialAmount() - activeBolus.getLeftoverAmount());
MainApp.bus().post(bolusingEvent);
}
} else break;
@@ -796,7 +796,7 @@ public class InsightPlugin extends PluginBase implements PumpInterface, Constrai
}
private String gs(int id) {
- return MainApp.instance().getString(id);
+ return MainApp.gs(id);
}
private boolean isPumpRunning() {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/connector/Connector.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/connector/Connector.java
index a96c98a39a..82b6cc3cc8 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/connector/Connector.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/connector/Connector.java
@@ -62,7 +62,7 @@ public class Connector {
private int serviceReconnects = 0;
private StatusCallback statusCallback = new StatusCallback() {
@Override
- public synchronized void onStatusChange(Status status) {
+ public synchronized void onStatusChange(Status status, long statusTime, long waitTime) {
if ((status != lastStatus) || (Helpers.msSince(lastStatusTime) > 2000)) {
log("Status change: " + status);
@@ -94,15 +94,15 @@ public class Connector {
serviceConnector.connect();
} else {
log("PROTOCOL VERSION MISMATCH! local: " + COMPATIBILITY_VERSION + " remote: " + remoteVersion);
- statusCallback.onStatusChange(Status.INCOMPATIBLE);
- compatabilityMessage = gs(R.string.insight_incompatible_compantion_app_we_need_version) + " " + getLocalVersion();
+ statusCallback.onStatusChange(Status.INCOMPATIBLE, 0, 0);
+ compatabilityMessage = MainApp.gs(R.string.insight_incompatible_compantion_app_we_need_version) + " " + getLocalVersion();
serviceConnector.disconnectFromService();
}
} catch (NullPointerException e) {
log("ERROR: null pointer when trying to connect to pump");
}
- statusCallback.onStatusChange(safeGetStatus());
+ statusCallback.onStatusChange(safeGetStatus(), 0, 0);
}
@Override
@@ -179,33 +179,29 @@ public class Connector {
switch (status) {
case EXCHANGING_KEYS:
- return gs(R.string.connecting).toUpperCase();
+ return MainApp.gs(R.string.connecting).toUpperCase();
case WAITING_FOR_CODE_CONFIRMATION:
- return gs(R.string.insight_waiting_for_code).toUpperCase();
+ return MainApp.gs(R.string.insight_waiting_for_code).toUpperCase();
case CODE_REJECTED:
- return gs(R.string.insight_code_rejected).toUpperCase();
+ return MainApp.gs(R.string.insight_code_rejected).toUpperCase();
case APP_BINDING:
- return gs(R.string.insight_app_binding).toUpperCase();
+ return MainApp.gs(R.string.insight_app_binding).toUpperCase();
case CONNECTING:
- return gs(R.string.connecting).toUpperCase();
+ return MainApp.gs(R.string.connecting).toUpperCase();
case CONNECTED:
- return gs(R.string.connected).toUpperCase();
+ return MainApp.gs(R.string.connected).toUpperCase();
case DISCONNECTED:
- return gs(R.string.disconnected).toUpperCase();
+ return MainApp.gs(R.string.disconnected).toUpperCase();
case NOT_AUTHORIZED:
- return gs(R.string.insight_not_authorized).toUpperCase();
+ return MainApp.gs(R.string.insight_not_authorized).toUpperCase();
case INCOMPATIBLE:
- return gs(R.string.insight_incompatible).toUpperCase();
+ return MainApp.gs(R.string.insight_incompatible).toUpperCase();
default:
return status.toString();
}
}
- private static String gs(int id) {
- return MainApp.instance().getString(id);
- }
-
private static synchronized void extendKeepAliveIfActive() {
if (keepAliveActive()) {
if (Helpers.ratelimit("extend-insight-keepalive", 10)) {
@@ -221,7 +217,7 @@ public class Connector {
public static String getKeepAliveString() {
if (keepAliveActive()) {
- return MainApp.instance().getString(R.string.insight_keepalive_format_string,
+ return MainApp.gs(R.string.insight_keepalive_format_string,
stayConnectedTime / 1000, Helpers.hourMinuteSecondString(stayConnectedTill));
} else {
@@ -384,7 +380,7 @@ public class Connector {
public String getLastStatusMessage() {
if (!companionAppInstalled) {
- return gs(R.string.insight_companion_app_not_installed);
+ return MainApp.gs(R.string.insight_companion_app_not_installed);
}
if (!isConnected()) {
@@ -398,13 +394,13 @@ public class Connector {
// if disconnected but previous state was incompatible
return compatabilityMessage;
} else {
- return gs(R.string.insight_not_connected_to_companion_app);
+ return MainApp.gs(R.string.insight_not_connected_to_companion_app);
}
}
}
if (lastStatus == null) {
- return gs(R.string.insight_unknown);
+ return MainApp.gs(R.string.insight_unknown);
}
switch (lastStatus) {
@@ -414,16 +410,16 @@ public class Connector {
}
break;
case INCOMPATIBLE:
- return statusToString(lastStatus) + " " + gs(R.string.insight_needs) + " " + getLocalVersion();
+ return statusToString(lastStatus) + " " + MainApp.gs(R.string.insight_needs) + " " + getLocalVersion();
}
return statusToString(lastStatus);
}
public String getNiceLastStatusTime() {
if (lastStatusTime < 1) {
- return gs(R.string.insight_startup_uppercase);
+ return MainApp.gs(R.string.insight_startup_uppercase);
} else {
- return Helpers.niceTimeScalar(Helpers.msSince(lastStatusTime)) + " " + gs(R.string.ago);
+ return Helpers.niceTimeScalar(Helpers.msSince(lastStatusTime)) + " " + MainApp.gs(R.string.ago);
}
}
@@ -516,7 +512,7 @@ public class Connector {
}
for (Map.Entry entry : statistics.entrySet()) {
if ((long) entry.getValue() > 1000) {
- l.add(new StatusItem(gs(R.string.statistics) + " " + Helpers.capitalize(entry.getKey().toString()),
+ l.add(new StatusItem(MainApp.gs(R.string.statistics) + " " + Helpers.capitalize(entry.getKey().toString()),
new Formatter().format("%4s %12s",
percentage(getEntryTime(entry), total) + "%",
Helpers.niceTimeScalar(getEntryTime(entry))).toString()));
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/history/HistoryIntentAdapter.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/history/HistoryIntentAdapter.java
index 244537af3e..e7784287b7 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/history/HistoryIntentAdapter.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/history/HistoryIntentAdapter.java
@@ -161,7 +161,7 @@ class HistoryIntentAdapter {
Date date = getDateExtra(intent, HistoryBroadcast.EXTRA_EVENT_TIME);
String alertType = intent.getStringExtra(HistoryBroadcast.EXTRA_ALERT_TYPE);
if (MainApp.getDbHelper().getCareportalEventFromTimestamp(date.getTime()) != null) return;
- logNote(date, MainApp.instance().getString(getAlertText(alertType)));
+ logNote(date, MainApp.gs(getAlertText(alertType)));
}
}
@@ -171,13 +171,13 @@ class HistoryIntentAdapter {
String newStatus = intent.getStringExtra(HistoryBroadcast.EXTRA_NEW_STATUS);
switch (newStatus) {
case "STARTED":
- logNote(newStatusTime, MainApp.instance().getString(R.string.pump_started));
+ logNote(newStatusTime, MainApp.gs(R.string.pump_started));
break;
case "STOPPED":
- logNote(newStatusTime, MainApp.instance().getString(R.string.pump_stopped));
+ logNote(newStatusTime, MainApp.gs(R.string.pump_stopped));
break;
case "PAUSED":
- logNote(newStatusTime, MainApp.instance().getString(R.string.pump_paused));
+ logNote(newStatusTime, MainApp.gs(R.string.pump_paused));
break;
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/history/HistoryReceiver.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/history/HistoryReceiver.java
index efce8d7a40..ca68a389c8 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/history/HistoryReceiver.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/history/HistoryReceiver.java
@@ -131,7 +131,7 @@ public class HistoryReceiver {
@Override
public String toString() {
- return MainApp.instance().getString(string_id);
+ return MainApp.gs(string_id);
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/history/LiveHistory.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/history/LiveHistory.java
index ca3848e113..46af6bda98 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/history/LiveHistory.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/history/LiveHistory.java
@@ -17,7 +17,7 @@ public class LiveHistory {
public static String getStatus() {
if (status.equals("")) return status;
- return status + " " + Helpers.niceTimeScalar(Helpers.msSince(status_time)) + " " + gs(R.string.ago);
+ return status + " " + Helpers.niceTimeScalar(Helpers.msSince(status_time)) + " " + MainApp.gs(R.string.ago);
}
public static long getStatusTime() {
@@ -30,8 +30,4 @@ public class LiveHistory {
status = mystatus;
}
}
-
- private static String gs(int id) {
- return MainApp.instance().getString(id);
- }
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/utils/Helpers.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/utils/Helpers.java
index a2abda40d7..344bf638b2 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/utils/Helpers.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/utils/Helpers.java
@@ -96,32 +96,28 @@ public class Helpers {
}
public static String niceTimeScalar(long t) {
- String unit = gs(R.string.second);
+ String unit = MainApp.gs(R.string.second);
t = t / 1000;
if (t > 59) {
- unit = gs(R.string.minute);
+ unit = MainApp.gs(R.string.minute);
t = t / 60;
if (t > 59) {
- unit = gs(R.string.hour);
+ unit = MainApp.gs(R.string.hour);
t = t / 60;
if (t > 24) {
- unit = gs(R.string.day);
+ unit = MainApp.gs(R.string.day);
t = t / 24;
if (t > 28) {
- unit = gs(R.string.week);
+ unit = MainApp.gs(R.string.week);
t = t / 7;
}
}
}
}
- if (t != 1) unit = unit + gs(R.string.time_plural);
+ if (t != 1) unit = unit + MainApp.gs(R.string.time_plural);
return qs((double) t, 0) + " " + unit;
}
- private static String gs(int id) {
- return MainApp.instance().getString(id);
- }
-
public static String qs(double x, int digits) {
if (digits == -1) {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpMDI/MDIPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpMDI/MDIPlugin.java
index 9c19a383ae..fed0c01c64 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpMDI/MDIPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpMDI/MDIPlugin.java
@@ -134,7 +134,7 @@ public class MDIPlugin extends PluginBase implements PumpInterface {
result.success = true;
result.bolusDelivered = detailedBolusInfo.insulin;
result.carbsDelivered = detailedBolusInfo.carbs;
- result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
+ result.comment = MainApp.gs(R.string.virtualpump_resultok);
TreatmentsPlugin.getPlugin().addToHistoryTreatment(detailedBolusInfo);
return result;
}
@@ -147,7 +147,7 @@ public class MDIPlugin extends PluginBase implements PumpInterface {
public PumpEnactResult setTempBasalAbsolute(Double absoluteRate, Integer durationInMinutes, Profile profile, boolean enforceNew) {
PumpEnactResult result = new PumpEnactResult();
result.success = false;
- result.comment = MainApp.instance().getString(R.string.pumperror);
+ result.comment = MainApp.gs(R.string.pumperror);
if (Config.logPumpComm)
log.debug("Setting temp basal absolute: " + result);
return result;
@@ -157,7 +157,7 @@ public class MDIPlugin extends PluginBase implements PumpInterface {
public PumpEnactResult setTempBasalPercent(Integer percent, Integer durationInMinutes, Profile profile, boolean enforceNew) {
PumpEnactResult result = new PumpEnactResult();
result.success = false;
- result.comment = MainApp.instance().getString(R.string.pumperror);
+ result.comment = MainApp.gs(R.string.pumperror);
if (Config.logPumpComm)
log.debug("Settings temp basal percent: " + result);
return result;
@@ -167,7 +167,7 @@ public class MDIPlugin extends PluginBase implements PumpInterface {
public PumpEnactResult setExtendedBolus(Double insulin, Integer durationInMinutes) {
PumpEnactResult result = new PumpEnactResult();
result.success = false;
- result.comment = MainApp.instance().getString(R.string.pumperror);
+ result.comment = MainApp.gs(R.string.pumperror);
if (Config.logPumpComm)
log.debug("Setting extended bolus: " + result);
return result;
@@ -177,7 +177,7 @@ public class MDIPlugin extends PluginBase implements PumpInterface {
public PumpEnactResult cancelTempBasal(boolean force) {
PumpEnactResult result = new PumpEnactResult();
result.success = false;
- result.comment = MainApp.instance().getString(R.string.pumperror);
+ result.comment = MainApp.gs(R.string.pumperror);
if (Config.logPumpComm)
log.debug("Cancel temp basal: " + result);
return result;
@@ -187,7 +187,7 @@ public class MDIPlugin extends PluginBase implements PumpInterface {
public PumpEnactResult cancelExtendedBolus() {
PumpEnactResult result = new PumpEnactResult();
result.success = false;
- result.comment = MainApp.instance().getString(R.string.pumperror);
+ result.comment = MainApp.gs(R.string.pumperror);
if (Config.logPumpComm)
log.debug("Canceling extended basal: " + result);
return result;
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpVirtual/VirtualPumpPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpVirtual/VirtualPumpPlugin.java
index 0491ce0f74..34d3fee80b 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpVirtual/VirtualPumpPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpVirtual/VirtualPumpPlugin.java
@@ -171,7 +171,7 @@ public class VirtualPumpPlugin extends PluginBase implements PumpInterface {
// Do nothing here. we are using MainApp.getConfigBuilder().getActiveProfile().getProfile();
PumpEnactResult result = new PumpEnactResult();
result.success = true;
- Notification notification = new Notification(Notification.PROFILE_SET_OK, MainApp.sResources.getString(R.string.profile_set_ok), Notification.INFO, 60);
+ Notification notification = new Notification(Notification.PROFILE_SET_OK, MainApp.gs(R.string.profile_set_ok), Notification.INFO, 60);
MainApp.bus().post(new EventNewNotification(notification));
return result;
}
@@ -202,21 +202,21 @@ public class VirtualPumpPlugin extends PluginBase implements PumpInterface {
result.bolusDelivered = detailedBolusInfo.insulin;
result.carbsDelivered = detailedBolusInfo.carbs;
result.enacted = result.bolusDelivered > 0 || result.carbsDelivered > 0;
- result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
+ result.comment = MainApp.gs(R.string.virtualpump_resultok);
Double delivering = 0d;
while (delivering < detailedBolusInfo.insulin) {
SystemClock.sleep(200);
EventOverviewBolusProgress bolusingEvent = EventOverviewBolusProgress.getInstance();
- bolusingEvent.status = String.format(MainApp.sResources.getString(R.string.bolusdelivering), delivering);
+ bolusingEvent.status = String.format(MainApp.gs(R.string.bolusdelivering), delivering);
bolusingEvent.percent = Math.min((int) (delivering / detailedBolusInfo.insulin * 100), 100);
MainApp.bus().post(bolusingEvent);
delivering += 0.1d;
}
SystemClock.sleep(200);
EventOverviewBolusProgress bolusingEvent = EventOverviewBolusProgress.getInstance();
- bolusingEvent.status = String.format(MainApp.sResources.getString(R.string.bolusdelivered), detailedBolusInfo.insulin);
+ bolusingEvent.status = String.format(MainApp.gs(R.string.bolusdelivered), detailedBolusInfo.insulin);
bolusingEvent.percent = 100;
MainApp.bus().post(bolusingEvent);
SystemClock.sleep(1000);
@@ -246,7 +246,7 @@ public class VirtualPumpPlugin extends PluginBase implements PumpInterface {
result.isTempCancel = false;
result.absolute = absoluteRate;
result.duration = durationInMinutes;
- result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
+ result.comment = MainApp.gs(R.string.virtualpump_resultok);
TreatmentsPlugin.getPlugin().addToHistoryTempBasal(tempBasal);
if (Config.logPumpComm)
log.debug("Setting temp basal absolute: " + result);
@@ -274,7 +274,7 @@ public class VirtualPumpPlugin extends PluginBase implements PumpInterface {
result.isPercent = true;
result.isTempCancel = false;
result.duration = durationInMinutes;
- result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
+ result.comment = MainApp.gs(R.string.virtualpump_resultok);
TreatmentsPlugin.getPlugin().addToHistoryTempBasal(tempBasal);
if (Config.logPumpComm)
log.debug("Settings temp basal percent: " + result);
@@ -298,7 +298,7 @@ public class VirtualPumpPlugin extends PluginBase implements PumpInterface {
result.bolusDelivered = insulin;
result.isTempCancel = false;
result.duration = durationInMinutes;
- result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
+ result.comment = MainApp.gs(R.string.virtualpump_resultok);
TreatmentsPlugin.getPlugin().addToHistoryExtendedBolus(extendedBolus);
if (Config.logPumpComm)
log.debug("Setting extended bolus: " + result);
@@ -312,7 +312,7 @@ public class VirtualPumpPlugin extends PluginBase implements PumpInterface {
PumpEnactResult result = new PumpEnactResult();
result.success = true;
result.isTempCancel = true;
- result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
+ result.comment = MainApp.gs(R.string.virtualpump_resultok);
if (TreatmentsPlugin.getPlugin().isTempBasalInProgress()) {
result.enacted = true;
TemporaryBasal tempStop = new TemporaryBasal().date(System.currentTimeMillis()).source(Source.USER);
@@ -337,7 +337,7 @@ public class VirtualPumpPlugin extends PluginBase implements PumpInterface {
result.success = true;
result.enacted = true;
result.isTempCancel = true;
- result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
+ result.comment = MainApp.gs(R.string.virtualpump_resultok);
if (Config.logPumpComm)
log.debug("Canceling extended basal: " + result);
MainApp.bus().post(new EventVirtualPumpUpdateGui());
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SensitivityAAPS/SensitivityAAPSPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SensitivityAAPS/SensitivityAAPSPlugin.java
index 28c4192f99..75b1ea9675 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/SensitivityAAPS/SensitivityAAPSPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/SensitivityAAPS/SensitivityAAPSPlugin.java
@@ -56,9 +56,9 @@ public class SensitivityAAPSPlugin extends PluginBase implements SensitivityInte
String age = SP.getString(R.string.key_age, "");
int defaultHours = 24;
- if (age.equals(MainApp.sResources.getString(R.string.key_adult))) defaultHours = 24;
- if (age.equals(MainApp.sResources.getString(R.string.key_teenage))) defaultHours = 4;
- if (age.equals(MainApp.sResources.getString(R.string.key_child))) defaultHours = 4;
+ if (age.equals(MainApp.gs(R.string.key_adult))) defaultHours = 24;
+ if (age.equals(MainApp.gs(R.string.key_teenage))) defaultHours = 4;
+ if (age.equals(MainApp.gs(R.string.key_child))) defaultHours = 4;
int hoursForDetection = SP.getInt(R.string.key_openapsama_autosens_period, defaultHours);
Profile profile = MainApp.getConfigBuilder().getProfile();
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SensitivityWeightedAverage/SensitivityWeightedAveragePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SensitivityWeightedAverage/SensitivityWeightedAveragePlugin.java
index 2f59769f55..58f59701d9 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/SensitivityWeightedAverage/SensitivityWeightedAveragePlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/SensitivityWeightedAverage/SensitivityWeightedAveragePlugin.java
@@ -52,9 +52,9 @@ public class SensitivityWeightedAveragePlugin extends PluginBase implements Sens
String age = SP.getString(R.string.key_age, "");
int defaultHours = 24;
- if (age.equals(MainApp.sResources.getString(R.string.key_adult))) defaultHours = 24;
- if (age.equals(MainApp.sResources.getString(R.string.key_teenage))) defaultHours = 4;
- if (age.equals(MainApp.sResources.getString(R.string.key_child))) defaultHours = 4;
+ if (age.equals(MainApp.gs(R.string.key_adult))) defaultHours = 24;
+ if (age.equals(MainApp.gs(R.string.key_teenage))) defaultHours = 4;
+ if (age.equals(MainApp.gs(R.string.key_child))) defaultHours = 4;
int hoursForDetection = SP.getInt(R.string.key_openapsama_autosens_period, defaultHours);
if (autosensDataTable == null || autosensDataTable.size() < 4) {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java
index a0192a528c..9de6cc6ad6 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java
@@ -206,24 +206,24 @@ public class SmsCommunicatorPlugin extends PluginBase {
String units = MainApp.getConfigBuilder().getProfileUnits();
if (actualBG != null) {
- reply = MainApp.sResources.getString(R.string.sms_actualbg) + " " + actualBG.valueToUnitsToString(units) + ", ";
+ reply = MainApp.gs(R.string.sms_actualbg) + " " + actualBG.valueToUnitsToString(units) + ", ";
} else if (lastBG != null) {
Long agoMsec = System.currentTimeMillis() - lastBG.date;
int agoMin = (int) (agoMsec / 60d / 1000d);
- reply = MainApp.sResources.getString(R.string.sms_lastbg) + " " + lastBG.valueToUnitsToString(units) + " " + String.format(MainApp.sResources.getString(R.string.sms_minago), agoMin) + ", ";
+ reply = MainApp.gs(R.string.sms_lastbg) + " " + lastBG.valueToUnitsToString(units) + " " + String.format(MainApp.gs(R.string.sms_minago), agoMin) + ", ";
}
GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData();
if (glucoseStatus != null)
- reply += MainApp.sResources.getString(R.string.sms_delta) + " " + Profile.toUnitsString(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, units) + " " + units + ", ";
+ reply += MainApp.gs(R.string.sms_delta) + " " + Profile.toUnitsString(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, units) + " " + units + ", ";
TreatmentsPlugin.getPlugin().updateTotalIOBTreatments();
IobTotal bolusIob = TreatmentsPlugin.getPlugin().getLastCalculationTreatments().round();
TreatmentsPlugin.getPlugin().updateTotalIOBTempBasals();
IobTotal basalIob = TreatmentsPlugin.getPlugin().getLastCalculationTempBasals().round();
- reply += MainApp.sResources.getString(R.string.sms_iob) + " " + DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob) + "U ("
- + MainApp.sResources.getString(R.string.sms_bolus) + " " + DecimalFormatter.to2Decimal(bolusIob.iob) + "U "
- + MainApp.sResources.getString(R.string.sms_basal) + " " + DecimalFormatter.to2Decimal(basalIob.basaliob) + "U)";
+ reply += MainApp.gs(R.string.sms_iob) + " " + DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob) + "U ("
+ + MainApp.gs(R.string.sms_bolus) + " " + DecimalFormatter.to2Decimal(bolusIob.iob) + "U "
+ + MainApp.gs(R.string.sms_basal) + " " + DecimalFormatter.to2Decimal(basalIob.basaliob) + "U)";
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
receivedSms.processed = true;
@@ -241,8 +241,8 @@ public class SmsCommunicatorPlugin extends PluginBase {
@Override
public void run() {
MainApp.bus().post(new EventRefreshOverview("SMS_LOOP_STOP"));
- String reply = MainApp.sResources.getString(R.string.smscommunicator_loophasbeendisabled) + " " +
- MainApp.sResources.getString(result.success ? R.string.smscommunicator_tempbasalcanceled : R.string.smscommunicator_tempbasalcancelfailed);
+ String reply = MainApp.gs(R.string.smscommunicator_loophasbeendisabled) + " " +
+ MainApp.gs(result.success ? R.string.smscommunicator_tempbasalcanceled : R.string.smscommunicator_tempbasalcancelfailed);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
});
@@ -255,7 +255,7 @@ public class SmsCommunicatorPlugin extends PluginBase {
loopPlugin = MainApp.getSpecificPlugin(LoopPlugin.class);
if (loopPlugin != null && !loopPlugin.isEnabled(PluginType.LOOP)) {
loopPlugin.setPluginEnabled(PluginType.LOOP, true);
- reply = MainApp.sResources.getString(R.string.smscommunicator_loophasbeenenabled);
+ reply = MainApp.gs(R.string.smscommunicator_loophasbeenenabled);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
MainApp.bus().post(new EventRefreshOverview("SMS_LOOP_START"));
}
@@ -267,11 +267,11 @@ public class SmsCommunicatorPlugin extends PluginBase {
if (loopPlugin != null) {
if (loopPlugin.isEnabled(PluginType.LOOP)) {
if (loopPlugin.isSuspended())
- reply = String.format(MainApp.sResources.getString(R.string.loopsuspendedfor), loopPlugin.minutesToEndOfSuspend());
+ reply = String.format(MainApp.gs(R.string.loopsuspendedfor), loopPlugin.minutesToEndOfSuspend());
else
- reply = MainApp.sResources.getString(R.string.smscommunicator_loopisenabled);
+ reply = MainApp.gs(R.string.smscommunicator_loopisenabled);
} else {
- reply = MainApp.sResources.getString(R.string.smscommunicator_loopisdisabled);
+ reply = MainApp.gs(R.string.smscommunicator_loopisdisabled);
}
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
@@ -282,7 +282,7 @@ public class SmsCommunicatorPlugin extends PluginBase {
LoopPlugin.getPlugin().suspendTo(0);
MainApp.bus().post(new EventRefreshOverview("SMS_LOOP_RESUME"));
NSUpload.uploadOpenAPSOffline(0);
- reply = MainApp.sResources.getString(R.string.smscommunicator_loopresumed);
+ reply = MainApp.gs(R.string.smscommunicator_loopresumed);
sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, reply, new Date()));
FabricPrivacy.getInstance().logCustom(new CustomEvent("SMS_Loop_Resume"));
break;
@@ -292,18 +292,18 @@ public class SmsCommunicatorPlugin extends PluginBase {
duration = Math.max(0, duration);
duration = Math.min(180, duration);
if (duration == 0) {
- reply = MainApp.sResources.getString(R.string.smscommunicator_wrongduration);
+ reply = MainApp.gs(R.string.smscommunicator_wrongduration);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
} else if (remoteCommandsAllowed) {
passCode = generatePasscode();
- reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_suspendreplywithcode), duration, passCode);
+ reply = String.format(MainApp.gs(R.string.smscommunicator_suspendreplywithcode), duration, passCode);
receivedSms.processed = true;
resetWaitingMessages();
sendSMS(suspendWaitingForConfirmation = new Sms(receivedSms.phoneNumber, reply, new Date(), passCode));
suspendWaitingForConfirmation.duration = duration;
FabricPrivacy.getInstance().logCustom(new CustomEvent("SMS_Loop_Suspend"));
} else {
- reply = MainApp.sResources.getString(R.string.smscommunicator_remotecommandnotallowed);
+ reply = MainApp.gs(R.string.smscommunicator_remotecommandnotallowed);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
break;
@@ -350,7 +350,7 @@ public class SmsCommunicatorPlugin extends PluginBase {
sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
} else {
- String reply = MainApp.sResources.getString(R.string.readstatusfailed);
+ String reply = MainApp.gs(R.string.readstatusfailed);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
}
@@ -363,33 +363,33 @@ public class SmsCommunicatorPlugin extends PluginBase {
if (splited[1].toUpperCase().equals("CANCEL") || splited[1].toUpperCase().equals("STOP")) {
if (remoteCommandsAllowed) {
passCode = generatePasscode();
- reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_basalstopreplywithcode), passCode);
+ reply = String.format(MainApp.gs(R.string.smscommunicator_basalstopreplywithcode), passCode);
receivedSms.processed = true;
resetWaitingMessages();
sendSMS(cancelTempBasalWaitingForConfirmation = new Sms(receivedSms.phoneNumber, reply, new Date(), passCode));
FabricPrivacy.getInstance().logCustom(new CustomEvent("SMS_Basal"));
} else {
- reply = MainApp.sResources.getString(R.string.smscommunicator_remotebasalnotallowed);
+ reply = MainApp.gs(R.string.smscommunicator_remotebasalnotallowed);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
} else {
tempBasal = SafeParse.stringToDouble(splited[1]);
Profile profile = MainApp.getConfigBuilder().getProfile();
if (profile == null) {
- reply = MainApp.sResources.getString(R.string.noprofile);
+ reply = MainApp.gs(R.string.noprofile);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
} else {
tempBasal = MainApp.getConstraintChecker().applyBasalConstraints(new Constraint<>(tempBasal), profile).value();
if (remoteCommandsAllowed) {
passCode = generatePasscode();
- reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_basalreplywithcode), tempBasal, passCode);
+ reply = String.format(MainApp.gs(R.string.smscommunicator_basalreplywithcode), tempBasal, passCode);
receivedSms.processed = true;
resetWaitingMessages();
sendSMS(tempBasalWaitingForConfirmation = new Sms(receivedSms.phoneNumber, reply, new Date(), passCode));
tempBasalWaitingForConfirmation.tempBasal = tempBasal;
FabricPrivacy.getInstance().logCustom(new CustomEvent("SMS_Basal"));
} else {
- reply = MainApp.sResources.getString(R.string.smscommunicator_remotebasalnotallowed);
+ reply = MainApp.gs(R.string.smscommunicator_remotebasalnotallowed);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
}
@@ -398,24 +398,24 @@ public class SmsCommunicatorPlugin extends PluginBase {
break;
case "BOLUS":
if (System.currentTimeMillis() - lastRemoteBolusTime.getTime() < Constants.remoteBolusMinDistance) {
- reply = MainApp.sResources.getString(R.string.smscommunicator_remotebolusnotallowed);
+ reply = MainApp.gs(R.string.smscommunicator_remotebolusnotallowed);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
} else if (ConfigBuilderPlugin.getActivePump().isSuspended()) {
- reply = MainApp.sResources.getString(R.string.pumpsuspended);
+ reply = MainApp.gs(R.string.pumpsuspended);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
} else if (splited.length > 1) {
amount = SafeParse.stringToDouble(splited[1]);
amount = MainApp.getConstraintChecker().applyBolusConstraints(new Constraint<>(amount)).value();
if (amount > 0d && remoteCommandsAllowed) {
passCode = generatePasscode();
- reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_bolusreplywithcode), amount, passCode);
+ reply = String.format(MainApp.gs(R.string.smscommunicator_bolusreplywithcode), amount, passCode);
receivedSms.processed = true;
resetWaitingMessages();
sendSMS(bolusWaitingForConfirmation = new Sms(receivedSms.phoneNumber, reply, new Date(), passCode));
bolusWaitingForConfirmation.bolusRequested = amount;
FabricPrivacy.getInstance().logCustom(new CustomEvent("SMS_Bolus"));
} else {
- reply = MainApp.sResources.getString(R.string.smscommunicator_remotebolusnotallowed);
+ reply = MainApp.gs(R.string.smscommunicator_remotebolusnotallowed);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
}
@@ -425,14 +425,14 @@ public class SmsCommunicatorPlugin extends PluginBase {
amount = SafeParse.stringToDouble(splited[1]);
if (amount > 0d && remoteCommandsAllowed) {
passCode = generatePasscode();
- reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_calibrationreplywithcode), amount, passCode);
+ reply = String.format(MainApp.gs(R.string.smscommunicator_calibrationreplywithcode), amount, passCode);
receivedSms.processed = true;
resetWaitingMessages();
sendSMS(calibrationWaitingForConfirmation = new Sms(receivedSms.phoneNumber, reply, new Date(), passCode));
calibrationWaitingForConfirmation.calibrationRequested = amount;
FabricPrivacy.getInstance().logCustom(new CustomEvent("SMS_Cal"));
} else {
- reply = MainApp.sResources.getString(R.string.smscommunicator_remotecalibrationnotallowed);
+ reply = MainApp.gs(R.string.smscommunicator_remotecalibrationnotallowed);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
}
@@ -449,13 +449,13 @@ public class SmsCommunicatorPlugin extends PluginBase {
public void run() {
PumpInterface pump = MainApp.getConfigBuilder().getActivePump();
if (result.success) {
- String reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_bolusdelivered), result.bolusDelivered);
+ String reply = String.format(MainApp.gs(R.string.smscommunicator_bolusdelivered), result.bolusDelivered);
if (pump != null)
reply += "\n" + pump.shortStatus(true);
lastRemoteBolusTime = new Date();
sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, reply, new Date()));
} else {
- String reply = MainApp.sResources.getString(R.string.smscommunicator_bolusfailed);
+ String reply = MainApp.gs(R.string.smscommunicator_bolusfailed);
if (pump != null)
reply += "\n" + pump.shortStatus(true);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
@@ -471,11 +471,11 @@ public class SmsCommunicatorPlugin extends PluginBase {
@Override
public void run() {
if (result.success) {
- String reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_tempbasalset), result.absolute, result.duration);
+ String reply = String.format(MainApp.gs(R.string.smscommunicator_tempbasalset), result.absolute, result.duration);
reply += "\n" + ConfigBuilderPlugin.getActivePump().shortStatus(true);
sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, reply, new Date()));
} else {
- String reply = MainApp.sResources.getString(R.string.smscommunicator_tempbasalfailed);
+ String reply = MainApp.gs(R.string.smscommunicator_tempbasalfailed);
reply += "\n" + ConfigBuilderPlugin.getActivePump().shortStatus(true);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
@@ -488,11 +488,11 @@ public class SmsCommunicatorPlugin extends PluginBase {
@Override
public void run() {
if (result.success) {
- String reply = MainApp.sResources.getString(R.string.smscommunicator_tempbasalcanceled);
+ String reply = MainApp.gs(R.string.smscommunicator_tempbasalcanceled);
reply += "\n" + ConfigBuilderPlugin.getActivePump().shortStatus(true);
sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, reply, new Date()));
} else {
- String reply = MainApp.sResources.getString(R.string.smscommunicator_tempbasalcancelfailed);
+ String reply = MainApp.gs(R.string.smscommunicator_tempbasalcancelfailed);
reply += "\n" + ConfigBuilderPlugin.getActivePump().shortStatus(true);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
@@ -503,10 +503,10 @@ public class SmsCommunicatorPlugin extends PluginBase {
calibrationWaitingForConfirmation.processed = true;
boolean result = XdripCalibrations.sendIntent(calibrationWaitingForConfirmation.calibrationRequested);
if (result) {
- reply = MainApp.sResources.getString(R.string.smscommunicator_calibrationsent);
+ reply = MainApp.gs(R.string.smscommunicator_calibrationsent);
sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, reply, new Date()));
} else {
- reply = MainApp.sResources.getString(R.string.smscommunicator_calibrationfailed);
+ reply = MainApp.gs(R.string.smscommunicator_calibrationfailed);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
} else if (suspendWaitingForConfirmation != null && !suspendWaitingForConfirmation.processed &&
@@ -519,18 +519,18 @@ public class SmsCommunicatorPlugin extends PluginBase {
LoopPlugin.getPlugin().suspendTo(System.currentTimeMillis() + suspendWaitingForConfirmation.duration * 60L * 1000);
NSUpload.uploadOpenAPSOffline(suspendWaitingForConfirmation.duration * 60);
MainApp.bus().post(new EventRefreshOverview("SMS_LOOP_SUSPENDED"));
- String reply = MainApp.sResources.getString(R.string.smscommunicator_loopsuspended) + " " +
- MainApp.sResources.getString(result.success ? R.string.smscommunicator_tempbasalcanceled : R.string.smscommunicator_tempbasalcancelfailed);
+ String reply = MainApp.gs(R.string.smscommunicator_loopsuspended) + " " +
+ MainApp.gs(result.success ? R.string.smscommunicator_tempbasalcanceled : R.string.smscommunicator_tempbasalcancelfailed);
sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, reply, new Date()));
} else {
- String reply = MainApp.sResources.getString(R.string.smscommunicator_tempbasalcancelfailed);
+ String reply = MainApp.gs(R.string.smscommunicator_tempbasalcancelfailed);
reply += "\n" + ConfigBuilderPlugin.getActivePump().shortStatus(true);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
}
});
} else {
- sendSMS(new Sms(receivedSms.phoneNumber, MainApp.sResources.getString(R.string.smscommunicator_unknowncommand), new Date()));
+ sendSMS(new Sms(receivedSms.phoneNumber, MainApp.gs(R.string.smscommunicator_unknowncommand), new Date()));
}
resetWaitingMessages();
break;
@@ -563,10 +563,10 @@ public class SmsCommunicatorPlugin extends PluginBase {
smsManager.sendTextMessage(sms.phoneNumber, null, sms.text, null, null);
messages.add(sms);
} catch (IllegalArgumentException e) {
- Notification notification = new Notification(Notification.INVALID_PHONE_NUMBER, MainApp.sResources.getString(R.string.smscommunicator_invalidphonennumber), Notification.NORMAL);
+ Notification notification = new Notification(Notification.INVALID_PHONE_NUMBER, MainApp.gs(R.string.smscommunicator_invalidphonennumber), Notification.NORMAL);
MainApp.bus().post(new EventNewNotification(notification));
} catch (java.lang.SecurityException e) {
- Notification notification = new Notification(Notification.MISSING_SMS_PERMISSION, MainApp.sResources.getString(R.string.smscommunicator_missingsmspermission), Notification.NORMAL);
+ Notification notification = new Notification(Notification.MISSING_SMS_PERMISSION, MainApp.gs(R.string.smscommunicator_missingsmspermission), Notification.NORMAL);
MainApp.bus().post(new EventNewNotification(notification));
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Source/BGSourceFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Source/BGSourceFragment.java
index 7e959b78d4..3e9a79d459 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Source/BGSourceFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Source/BGSourceFragment.java
@@ -143,9 +143,9 @@ public class BGSourceFragment extends SubscriberFragment {
case R.id.bgsource_remove:
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
- builder.setTitle(MainApp.sResources.getString(R.string.confirmation));
- builder.setMessage(MainApp.sResources.getString(R.string.removerecord) + "\n" + DateUtil.dateAndTimeString(bgReading.date) + "\n" + bgReading.valueToUnitsToString(profile.getUnits()));
- builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ builder.setTitle(MainApp.gs(R.string.confirmation));
+ builder.setMessage(MainApp.gs(R.string.removerecord) + "\n" + DateUtil.dateAndTimeString(bgReading.date) + "\n" + bgReading.valueToUnitsToString(profile.getUnits()));
+ builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
/* final String _id = bgReading._id;
if (NSUpload.isIdValid(_id)) {
@@ -159,7 +159,7 @@ public class BGSourceFragment extends SubscriberFragment {
updateGUI();
}
});
- builder.setNegativeButton(MainApp.sResources.getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
break;
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/CarbsGenerator.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/CarbsGenerator.java
new file mode 100644
index 0000000000..99168a2776
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/CarbsGenerator.java
@@ -0,0 +1,56 @@
+package info.nightscout.androidaps.plugins.Treatments;
+
+import android.content.Intent;
+import android.support.annotation.Nullable;
+
+import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.data.DetailedBolusInfo;
+import info.nightscout.androidaps.db.CareportalEvent;
+import info.nightscout.androidaps.db.Source;
+import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
+import info.nightscout.androidaps.plugins.Overview.Dialogs.ErrorHelperActivity;
+import info.nightscout.androidaps.queue.Callback;
+
+import static info.nightscout.utils.DateUtil.now;
+
+public class CarbsGenerator {
+ public static void generateCarbs(int amount, long startTime, int duration, @Nullable String notes) {
+ long remainingCarbs = amount;
+ int ticks = (duration * 4); //duration guaranteed to be integer greater zero
+ for (int i = 0; i < ticks; i++){
+ long carbTime = startTime + i * 15 * 60 * 1000;
+ int smallCarbAmount = (int) Math.round((1d * remainingCarbs) / (ticks-i)); //on last iteration (ticks-i) is 1 -> smallCarbAmount == remainingCarbs
+ remainingCarbs -= smallCarbAmount;
+ if (smallCarbAmount > 0)
+ createCarb(smallCarbAmount, carbTime, CareportalEvent.MEALBOLUS, notes);
+ }
+ }
+
+ public static void createCarb(int carbs, long time, String eventType, @Nullable String notes) {
+ DetailedBolusInfo carbInfo = new DetailedBolusInfo();
+ carbInfo.date = time;
+ carbInfo.eventType = eventType;
+ carbInfo.carbs = carbs;
+ carbInfo.context = MainApp.instance();
+ carbInfo.source = Source.USER;
+ carbInfo.notes = notes;
+ if (ConfigBuilderPlugin.getActivePump().getPumpDescription().storesCarbInfo && carbInfo.date <= now()) {
+ ConfigBuilderPlugin.getCommandQueue().bolus(carbInfo, new Callback() {
+ @Override
+ public void run() {
+ if (!result.success) {
+ Intent i = new Intent(MainApp.instance(), ErrorHelperActivity.class);
+ i.putExtra("soundid", R.raw.boluserror);
+ i.putExtra("status", result.comment);
+ i.putExtra("title", MainApp.gs(R.string.treatmentdeliveryerror));
+ i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ MainApp.instance().startActivity(i);
+ }
+ }
+ });
+ } else {
+ TreatmentsPlugin.getPlugin().addToHistoryTreatment(carbInfo);
+ }
+ }
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/Treatment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/Treatment.java
index 31d44a3e30..1983c38242 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/Treatment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/Treatment.java
@@ -193,11 +193,6 @@ public class Treatment implements DataPointWithLabelInterface {
return MainApp.instance().getResources().getColor(android.R.color.holo_red_light);
}
- @Override
- public int getSecondColor() {
- return 0;
- }
-
@Override
public void setY(double y) {
yValue = y;
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java
index 55129cdc7b..8ae2e6d7b1 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java
@@ -284,6 +284,8 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface
long last = 0;
synchronized (treatments) {
for (Treatment t : treatments) {
+ if (!t.isValid)
+ continue;
if (t.date > last && t.insulin > 0 && t.isValid && t.date <= now)
last = t.date;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsBolusFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsBolusFragment.java
index ae977d4024..57ad6833a9 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsBolusFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsBolusFragment.java
@@ -81,7 +81,7 @@ public class TreatmentsBolusFragment extends SubscriberFragment implements View.
Iob iob = t.iobCalc(System.currentTimeMillis(), profile.getDia());
holder.iob.setText(DecimalFormatter.to2Decimal(iob.iobContrib) + " U");
holder.activity.setText(DecimalFormatter.to3Decimal(iob.activityContrib) + " U");
- holder.mealOrCorrection.setText(t.isSMB ? "SMB" : t.mealBolus ? MainApp.sResources.getString(R.string.mealbolus) : MainApp.sResources.getString(R.string.correctionbous));
+ holder.mealOrCorrection.setText(t.isSMB ? "SMB" : t.mealBolus ? MainApp.gs(R.string.mealbolus) : MainApp.gs(R.string.correctionbous));
holder.ph.setVisibility(t.source == Source.PUMP ? View.VISIBLE : View.GONE);
holder.ns.setVisibility(NSUpload.isIdValid(t._id) ? View.VISIBLE : View.GONE);
holder.invalid.setVisibility(t.isValid ? View.GONE : View.VISIBLE);
@@ -142,9 +142,9 @@ public class TreatmentsBolusFragment extends SubscriberFragment implements View.
switch (v.getId()) {
case R.id.treatments_remove:
AlertDialog.Builder builder = new AlertDialog.Builder(context);
- builder.setTitle(MainApp.sResources.getString(R.string.confirmation));
- builder.setMessage(MainApp.sResources.getString(R.string.removerecord) + "\n" + DateUtil.dateAndTimeString(treatment.date));
- builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ builder.setTitle(MainApp.gs(R.string.confirmation));
+ builder.setMessage(MainApp.gs(R.string.removerecord) + "\n" + DateUtil.dateAndTimeString(treatment.date));
+ builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
final String _id = treatment._id;
if (treatment.source == Source.PUMP) {
@@ -162,7 +162,7 @@ public class TreatmentsBolusFragment extends SubscriberFragment implements View.
FabricPrivacy.getInstance().logCustom(new CustomEvent("RemoveTreatment"));
}
});
- builder.setNegativeButton(MainApp.sResources.getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
break;
}
@@ -204,16 +204,16 @@ public class TreatmentsBolusFragment extends SubscriberFragment implements View.
switch (view.getId()) {
case R.id.treatments_reshreshfromnightscout:
AlertDialog.Builder builder = new AlertDialog.Builder(this.getContext());
- builder.setTitle(this.getContext().getString(R.string.confirmation));
- builder.setMessage(this.getContext().getString(R.string.refresheventsfromnightscout) + "?");
- builder.setPositiveButton(this.getContext().getString(R.string.ok), new DialogInterface.OnClickListener() {
+ builder.setTitle(MainApp.gs(R.string.confirmation));
+ builder.setMessage(MainApp.gs(R.string.refresheventsfromnightscout) + "?");
+ builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
TreatmentsPlugin.getPlugin().getService().resetTreatments();
Intent restartNSClient = new Intent(Intents.ACTION_RESTART);
MainApp.instance().getApplicationContext().sendBroadcast(restartNSClient);
}
});
- builder.setNegativeButton(this.getContext().getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
break;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsCareportalFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsCareportalFragment.java
index 7218198b43..97c3a05274 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsCareportalFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsCareportalFragment.java
@@ -105,9 +105,9 @@ public class TreatmentsCareportalFragment extends SubscriberFragment implements
switch (v.getId()) {
case R.id.careportal_remove:
AlertDialog.Builder builder = new AlertDialog.Builder(context);
- builder.setTitle(MainApp.sResources.getString(R.string.confirmation));
- builder.setMessage(MainApp.sResources.getString(R.string.removerecord) + "\n" + DateUtil.dateAndTimeString(careportalEvent.date));
- builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ builder.setTitle(MainApp.gs(R.string.confirmation));
+ builder.setMessage(MainApp.gs(R.string.removerecord) + "\n" + DateUtil.dateAndTimeString(careportalEvent.date));
+ builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
final String _id = careportalEvent._id;
if (NSUpload.isIdValid(_id)) {
@@ -118,7 +118,7 @@ public class TreatmentsCareportalFragment extends SubscriberFragment implements
MainApp.getDbHelper().delete(careportalEvent);
}
});
- builder.setNegativeButton(MainApp.sResources.getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
break;
}
@@ -157,16 +157,16 @@ public class TreatmentsCareportalFragment extends SubscriberFragment implements
switch (view.getId()) {
case R.id.careportal_refreshfromnightscout:
AlertDialog.Builder builder = new AlertDialog.Builder(this.getContext());
- builder.setTitle(this.getContext().getString(R.string.confirmation));
- builder.setMessage(this.getContext().getString(R.string.refresheventsfromnightscout) + " ?");
- builder.setPositiveButton(this.getContext().getString(R.string.ok), new DialogInterface.OnClickListener() {
+ builder.setTitle(MainApp.gs(R.string.confirmation));
+ builder.setMessage(MainApp.gs(R.string.refresheventsfromnightscout) + " ?");
+ builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
MainApp.getDbHelper().resetCareportalEvents();
Intent restartNSClient = new Intent(Intents.ACTION_RESTART);
MainApp.instance().getApplicationContext().sendBroadcast(restartNSClient);
}
});
- builder.setNegativeButton(this.getContext().getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
break;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsExtendedBolusesFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsExtendedBolusesFragment.java
index c8fc539d02..05e18bfdc3 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsExtendedBolusesFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsExtendedBolusesFragment.java
@@ -67,7 +67,7 @@ public class TreatmentsExtendedBolusesFragment extends SubscriberFragment {
holder.ns.setVisibility(NSUpload.isIdValid(extendedBolus._id) ? View.VISIBLE : View.GONE);
if (extendedBolus.isEndingEvent()) {
holder.date.setText(DateUtil.dateAndTimeString(extendedBolus.date));
- holder.duration.setText(MainApp.sResources.getString(R.string.cancel));
+ holder.duration.setText(MainApp.gs(R.string.cancel));
holder.insulin.setText("");
holder.realDuration.setText("");
holder.iob.setText("");
@@ -144,9 +144,9 @@ public class TreatmentsExtendedBolusesFragment extends SubscriberFragment {
switch (v.getId()) {
case R.id.extendedboluses_remove:
AlertDialog.Builder builder = new AlertDialog.Builder(context);
- builder.setTitle(MainApp.sResources.getString(R.string.confirmation));
- builder.setMessage(MainApp.sResources.getString(R.string.removerecord) + "\n" + DateUtil.dateAndTimeString(extendedBolus.date));
- builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ builder.setTitle(MainApp.gs(R.string.confirmation));
+ builder.setMessage(MainApp.gs(R.string.removerecord) + "\n" + DateUtil.dateAndTimeString(extendedBolus.date));
+ builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
final String _id = extendedBolus._id;
if (NSUpload.isIdValid(_id)) {
@@ -158,7 +158,7 @@ public class TreatmentsExtendedBolusesFragment extends SubscriberFragment {
FabricPrivacy.getInstance().logCustom(new CustomEvent("RemoveExtendedBolus"));
}
});
- builder.setNegativeButton(MainApp.sResources.getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
break;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsProfileSwitchFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsProfileSwitchFragment.java
index 8a6b0456f5..307f9c8ee6 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsProfileSwitchFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsProfileSwitchFragment.java
@@ -131,9 +131,9 @@ public class TreatmentsProfileSwitchFragment extends SubscriberFragment implemen
switch (v.getId()) {
case R.id.profileswitch_remove:
AlertDialog.Builder builder = new AlertDialog.Builder(context);
- builder.setTitle(MainApp.sResources.getString(R.string.confirmation));
- builder.setMessage(MainApp.sResources.getString(R.string.removerecord) + "\n" + DateUtil.dateAndTimeString(profileSwitch.date));
- builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ builder.setTitle(MainApp.gs(R.string.confirmation));
+ builder.setMessage(MainApp.gs(R.string.removerecord) + "\n" + DateUtil.dateAndTimeString(profileSwitch.date));
+ builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
final String _id = profileSwitch._id;
if (NSUpload.isIdValid(_id)) {
@@ -144,7 +144,7 @@ public class TreatmentsProfileSwitchFragment extends SubscriberFragment implemen
MainApp.getDbHelper().delete(profileSwitch);
}
});
- builder.setNegativeButton(MainApp.sResources.getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
break;
case R.id.profileswitch_date:
@@ -190,16 +190,16 @@ public class TreatmentsProfileSwitchFragment extends SubscriberFragment implemen
switch (view.getId()) {
case R.id.profileswitch_refreshfromnightscout:
AlertDialog.Builder builder = new AlertDialog.Builder(this.getContext());
- builder.setTitle(this.getContext().getString(R.string.confirmation));
- builder.setMessage(this.getContext().getString(R.string.refresheventsfromnightscout) + "?");
- builder.setPositiveButton(this.getContext().getString(R.string.ok), new DialogInterface.OnClickListener() {
+ builder.setTitle(MainApp.gs(R.string.confirmation));
+ builder.setMessage(MainApp.gs(R.string.refresheventsfromnightscout) + "?");
+ builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
MainApp.getDbHelper().resetProfileSwitch();
Intent restartNSClient = new Intent(Intents.ACTION_RESTART);
MainApp.instance().getApplicationContext().sendBroadcast(restartNSClient);
}
});
- builder.setNegativeButton(this.getContext().getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
break;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsTempTargetFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsTempTargetFragment.java
index 5ce79636b5..df67349839 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsTempTargetFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsTempTargetFragment.java
@@ -140,9 +140,9 @@ public class TreatmentsTempTargetFragment extends SubscriberFragment implements
switch (v.getId()) {
case R.id.temptargetrange_remove:
AlertDialog.Builder builder = new AlertDialog.Builder(context);
- builder.setTitle(MainApp.sResources.getString(R.string.confirmation));
- builder.setMessage(MainApp.sResources.getString(R.string.removerecord) + "\n" + DateUtil.dateAndTimeString(tempTarget.date));
- builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ builder.setTitle(MainApp.gs(R.string.confirmation));
+ builder.setMessage(MainApp.gs(R.string.removerecord) + "\n" + DateUtil.dateAndTimeString(tempTarget.date));
+ builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
final String _id = tempTarget._id;
if (NSUpload.isIdValid(_id)) {
@@ -153,7 +153,7 @@ public class TreatmentsTempTargetFragment extends SubscriberFragment implements
MainApp.getDbHelper().delete(tempTarget);
}
});
- builder.setNegativeButton(MainApp.sResources.getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
break;
}
@@ -192,16 +192,16 @@ public class TreatmentsTempTargetFragment extends SubscriberFragment implements
switch (view.getId()) {
case R.id.temptargetrange_refreshfromnightscout:
AlertDialog.Builder builder = new AlertDialog.Builder(this.getContext());
- builder.setTitle(this.getContext().getString(R.string.confirmation));
- builder.setMessage(this.getContext().getString(R.string.refresheventsfromnightscout) + " ?");
- builder.setPositiveButton(this.getContext().getString(R.string.ok), new DialogInterface.OnClickListener() {
+ builder.setTitle(MainApp.gs(R.string.confirmation));
+ builder.setMessage(MainApp.gs(R.string.refresheventsfromnightscout) + " ?");
+ builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
MainApp.getDbHelper().resetTempTargets();
Intent restartNSClient = new Intent(Intents.ACTION_RESTART);
MainApp.instance().getApplicationContext().sendBroadcast(restartNSClient);
}
});
- builder.setNegativeButton(this.getContext().getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
break;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java
index fdc14f32d4..5ec2723fa4 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java
@@ -19,6 +19,7 @@ import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.DetailedBolusInfo;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.db.BgReading;
+import info.nightscout.androidaps.db.CareportalEvent;
import info.nightscout.androidaps.db.DatabaseHelper;
import info.nightscout.androidaps.db.ProfileSwitch;
import info.nightscout.androidaps.db.Source;
@@ -31,6 +32,8 @@ import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.Actions.dialogs.FillDialog;
import info.nightscout.androidaps.plugins.Careportal.Dialogs.NewNSTreatmentDialog;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
+import info.nightscout.androidaps.plugins.IobCobCalculator.CobInfo;
+import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin;
import info.nightscout.androidaps.plugins.Loop.APSResult;
import info.nightscout.androidaps.plugins.Loop.LoopPlugin;
import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification;
@@ -40,6 +43,7 @@ import info.nightscout.androidaps.plugins.PumpDanaRKorean.DanaRKoreanPlugin;
import info.nightscout.androidaps.plugins.PumpDanaRS.DanaRSPlugin;
import info.nightscout.androidaps.plugins.PumpDanaRv2.DanaRv2Plugin;
import info.nightscout.androidaps.plugins.PumpInsight.InsightPlugin;
+import info.nightscout.androidaps.plugins.Treatments.CarbsGenerator;
import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin;
import info.nightscout.androidaps.queue.Callback;
import info.nightscout.utils.BolusWizard;
@@ -95,9 +99,9 @@ public class ActionStringHandler {
return;
}
Double insulinAfterConstraints = MainApp.getConstraintChecker().applyBolusConstraints(new Constraint<>(amount)).value();
- rMessage += MainApp.instance().getString(R.string.primefill) + ": " + insulinAfterConstraints + "U";
+ rMessage += MainApp.gs(R.string.primefill) + ": " + insulinAfterConstraints + "U";
if (insulinAfterConstraints - amount != 0)
- rMessage += "\n" + MainApp.instance().getString(R.string.constraintapllied);
+ rMessage += "\n" + MainApp.gs(R.string.constraintapllied);
rAction += "fill " + insulinAfterConstraints;
@@ -106,9 +110,9 @@ public class ActionStringHandler {
double amount = SafeParse.stringToDouble(act[1]);
Double insulinAfterConstraints = MainApp.getConstraintChecker().applyBolusConstraints(new Constraint<>(amount)).value();
- rMessage += MainApp.instance().getString(R.string.primefill) + ": " + insulinAfterConstraints + "U";
+ rMessage += MainApp.gs(R.string.primefill) + ": " + insulinAfterConstraints + "U";
if (insulinAfterConstraints - amount != 0)
- rMessage += "\n" + MainApp.instance().getString(R.string.constraintapllied);
+ rMessage += "\n" + MainApp.gs(R.string.constraintapllied);
rAction += "fill " + insulinAfterConstraints;
@@ -118,11 +122,11 @@ public class ActionStringHandler {
int carbs = SafeParse.stringToInt(act[2]);
Double insulinAfterConstraints = MainApp.getConstraintChecker().applyBolusConstraints(new Constraint<>(insulin)).value();
Integer carbsAfterConstraints = MainApp.getConstraintChecker().applyCarbsConstraints(new Constraint<>(carbs)).value();
- rMessage += MainApp.instance().getString(R.string.bolus) + ": " + insulinAfterConstraints + "U\n";
- rMessage += MainApp.instance().getString(R.string.carbs) + ": " + carbsAfterConstraints + "g";
+ rMessage += MainApp.gs(R.string.bolus) + ": " + insulinAfterConstraints + "U\n";
+ rMessage += MainApp.gs(R.string.carbs) + ": " + carbsAfterConstraints + "g";
if ((insulinAfterConstraints - insulin != 0) || (carbsAfterConstraints - carbs != 0)) {
- rMessage += "\n" + MainApp.instance().getString(R.string.constraintapllied);
+ rMessage += "\n" + MainApp.gs(R.string.constraintapllied);
}
rAction += "bolus " + insulinAfterConstraints + " " + carbsAfterConstraints;
@@ -179,6 +183,9 @@ public class ActionStringHandler {
}
} else if ("wizard".equals(act[0])) {
+ sendError("Update APP on Watch!");
+ return;
+ } else if ("wizard2".equals(act[0])) {
////////////////////////////////////////////// WIZARD
Integer carbsBeforeConstraints = SafeParse.stringToInt(act[1]);
Integer carbsAfterConstraints = MainApp.getConstraintChecker().applyCarbsConstraints(new Constraint<>(carbsBeforeConstraints)).value();
@@ -188,10 +195,12 @@ public class ActionStringHandler {
return;
}
- boolean useBG = Boolean.parseBoolean(act[2]);
- boolean useBolusIOB = Boolean.parseBoolean(act[3]);
- boolean useBasalIOB = Boolean.parseBoolean(act[4]);
- int percentage = Integer.parseInt(act[5]);
+ boolean useBG = SP.getBoolean(R.string.key_wearwizard_bg, true);
+ boolean useBolusIOB = SP.getBoolean(R.string.key_wearwizard_bolusiob, true);
+ boolean useBasalIOB = SP.getBoolean(R.string.key_wearwizard_basaliob, true);
+ boolean useCOB = SP.getBoolean(R.string.key_wearwizard_cob, true);
+ boolean useTrend = SP.getBoolean(R.string.key_wearwizard_trend, false);
+ int percentage = Integer.parseInt(act[2]);
Profile profile = MainApp.getConfigBuilder().getProfile();
if (profile == null) {
@@ -205,9 +214,16 @@ public class ActionStringHandler {
return;
}
+ CobInfo cobInfo = IobCobCalculatorPlugin.getPlugin().getCobInfo(false, "Wizard wear");
+ if (useCOB && (cobInfo == null || cobInfo.displayCob == null)) {
+ sendError("Unknown COB! BG reading missing or recent app restart?");
+ return;
+ }
+
DecimalFormat format = new DecimalFormat("0.00");
+ DecimalFormat formatInt = new DecimalFormat("0");
BolusWizard bolusWizard = new BolusWizard();
- bolusWizard.doCalc(profile, null, carbsAfterConstraints, 0d, useBG ? bgReading.valueToUnits(profile.getUnits()) : 0d, 0d, percentage, useBolusIOB, useBasalIOB, false, false);
+ bolusWizard.doCalc(profile, null, carbsAfterConstraints, useCOB?cobInfo.displayCob:0d, useBG ? bgReading.valueToUnits(profile.getUnits()) : 0d, 0d, percentage, useBolusIOB, useBasalIOB, false, useTrend);
Double insulinAfterConstraints = MainApp.getConstraintChecker().applyBolusConstraints(new Constraint<>(bolusWizard.calculatedTotalInsulin)).value();
if (insulinAfterConstraints - bolusWizard.calculatedTotalInsulin != 0) {
@@ -232,11 +248,15 @@ public class ActionStringHandler {
rMessage += "\n_____________";
rMessage += "\nCalc (IC:" + DecimalFormatter.to1Decimal(bolusWizard.ic) + ", " + "ISF:" + DecimalFormatter.to1Decimal(bolusWizard.sens) + "): ";
rMessage += "\nFrom Carbs: " + format.format(bolusWizard.insulinFromCarbs) + "U";
+ if (useCOB)
+ rMessage += "\nFrom" + formatInt.format(cobInfo.displayCob) + "g COB : " + format.format(bolusWizard.insulinFromCOB) + "U";
if (useBG) rMessage += "\nFrom BG: " + format.format(bolusWizard.insulinFromBG) + "U";
if (useBolusIOB)
rMessage += "\nBolus IOB: " + format.format(bolusWizard.insulingFromBolusIOB) + "U";
if (useBasalIOB)
rMessage += "\nBasal IOB: " + format.format(bolusWizard.insulingFromBasalsIOB) + "U";
+ if (useTrend)
+ rMessage += "\nFrom 15' trend: " + format.format(bolusWizard.insulinFromTrend) + "U";
if (percentage != 100) {
rMessage += "\nPercentage: " + format.format(bolusWizard.totalBeforePercentageAdjustment) + "U * " + percentage + "% -> ~" + format.format(bolusWizard.calculatedTotalInsulin) + "U";
}
@@ -283,7 +303,7 @@ public class ActionStringHandler {
//if pump is not busy: try to fetch data
final PumpInterface pump = MainApp.getConfigBuilder().getActivePump();
if (pump.isBusy()) {
- rMessage += MainApp.instance().getString(R.string.pumpbusy);
+ rMessage += MainApp.gs(R.string.pumpbusy);
} else {
rMessage += "trying to fetch data from pump.";
@@ -308,6 +328,27 @@ public class ActionStringHandler {
}
}
+ } else if ("ecarbs".equals(act[0])) {
+ ////////////////////////////////////////////// ECARBS
+ int carbs = SafeParse.stringToInt(act[1]);
+ int starttime = SafeParse.stringToInt(act[2]);
+ int duration = SafeParse.stringToInt(act[3]);
+ long starttimestamp = System.currentTimeMillis() + starttime*60*1000;
+ Integer carbsAfterConstraints = MainApp.getConstraintChecker().applyCarbsConstraints(new Constraint<>(carbs)).value();
+ rMessage += MainApp.gs(R.string.carbs) + ": " + carbsAfterConstraints + "g";
+ rMessage += "\n" + MainApp.gs(R.string.time) + ": " + DateUtil.timeString(starttimestamp);
+ rMessage += "\n" + MainApp.gs(R.string.duration) + ": " + duration + "h";
+
+
+ if ( (carbsAfterConstraints - carbs != 0)) {
+ rMessage += "\n" + MainApp.gs(R.string.constraintapllied);
+ }
+ if(carbsAfterConstraints <= 0){
+ sendError("Carbs = 0! No action taken!");
+ return;
+ }
+ rAction += "ecarbs " + carbsAfterConstraints + " " + starttimestamp + " " + duration;
+
} else return;
@@ -513,15 +554,15 @@ public class ActionStringHandler {
}
if (!result.isChangeRequested()) {
- ret += MainApp.sResources.getString(R.string.nochangerequested) + "\n";
+ ret += MainApp.gs(R.string.nochangerequested) + "\n";
} else if (result.rate == 0 && result.duration == 0) {
- ret += MainApp.sResources.getString(R.string.canceltemp) + "\n";
+ ret += MainApp.gs(R.string.canceltemp) + "\n";
} else {
- ret += MainApp.sResources.getString(R.string.rate) + ": " + DecimalFormatter.to2Decimal(result.rate) + " U/h " +
+ ret += MainApp.gs(R.string.rate) + ": " + DecimalFormatter.to2Decimal(result.rate) + " U/h " +
"(" + DecimalFormatter.to2Decimal(result.rate / ConfigBuilderPlugin.getActivePump().getBaseBasalRate() * 100) + "%)\n" +
- MainApp.sResources.getString(R.string.duration) + ": " + DecimalFormatter.to0Decimal(result.duration) + " min\n";
+ MainApp.gs(R.string.duration) + ": " + DecimalFormatter.to0Decimal(result.duration) + " min\n";
}
- ret += "\n" + MainApp.sResources.getString(R.string.reason) + ": " + result.reason;
+ ret += "\n" + MainApp.gs(R.string.reason) + ": " + result.reason;
return ret;
}
@@ -560,7 +601,7 @@ public class ActionStringHandler {
high *= Constants.MMOLL_TO_MGDL;
}
generateTempTarget(duration, low, high);
- } else if ("wizard".equals(act[0])) {
+ } else if ("wizard2".equals(act[0])) {
//use last calculation as confirmed string matches
doBolus(lastBolusWizard.calculatedTotalInsulin, lastBolusWizard.carbs);
@@ -573,12 +614,28 @@ public class ActionStringHandler {
int timeshift = SafeParse.stringToInt(act[1]);
int percentage = SafeParse.stringToInt(act[2]);
setCPP(timeshift, percentage);
+ } else if ("ecarbs".equals(act[0])) {
+ int carbs = SafeParse.stringToInt(act[1]);
+ long starttime = SafeParse.stringToLong(act[2]);
+ int duration = SafeParse.stringToInt(act[3]);
+
+ doECarbs(carbs, starttime, duration);
} else if ("dismissoverviewnotification".equals(act[0])) {
MainApp.bus().post(new EventDismissNotification(SafeParse.stringToInt(act[1])));
}
lastBolusWizard = null;
}
+ private static void doECarbs(int carbs, long time, int duration) {
+ if (carbs > 0) {
+ if (duration == 0) {
+ CarbsGenerator.createCarb(carbs, time, CareportalEvent.CARBCORRECTION, "watch");
+ } else {
+ CarbsGenerator.generateCarbs(carbs, time, duration, "watch eCarbs");
+ }
+ }
+ }
+
private static void setCPP(int timeshift, int percentage) {
String msg = "";
@@ -586,18 +643,18 @@ public class ActionStringHandler {
//check for validity
if (percentage < Constants.CPP_MIN_PERCENTAGE || percentage > Constants.CPP_MAX_PERCENTAGE) {
- msg += String.format(MainApp.sResources.getString(R.string.valueoutofrange), "Profile-Percentage") + "\n";
+ msg += String.format(MainApp.gs(R.string.valueoutofrange), "Profile-Percentage") + "\n";
}
if (timeshift < 0 || timeshift > 23) {
- msg += String.format(MainApp.sResources.getString(R.string.valueoutofrange), "Profile-Timeshift") + "\n";
+ msg += String.format(MainApp.gs(R.string.valueoutofrange), "Profile-Timeshift") + "\n";
}
final Profile profile = MainApp.getConfigBuilder().getProfile();
if (profile == null) {
- msg += MainApp.sResources.getString(R.string.notloadedplugins) + "\n";
+ msg += MainApp.gs(R.string.notloadedplugins) + "\n";
}
if (!"".equals(msg)) {
- msg += MainApp.sResources.getString(R.string.valuesnotstored);
+ msg += MainApp.gs(R.string.valuesnotstored);
String rTitle = "STATUS";
String rAction = "statusmessage";
WearPlugin.getPlugin().requestActionConfirmation(rTitle, msg, rAction);
@@ -634,7 +691,7 @@ public class ActionStringHandler {
@Override
public void run() {
if (!result.success) {
- sendError(MainApp.sResources.getString(R.string.treatmentdeliveryerror) +
+ sendError(MainApp.gs(R.string.treatmentdeliveryerror) +
"\n" +
result.comment);
}
@@ -652,7 +709,7 @@ public class ActionStringHandler {
@Override
public void run() {
if (!result.success) {
- sendError(MainApp.sResources.getString(R.string.treatmentdeliveryerror) +
+ sendError(MainApp.gs(R.string.treatmentdeliveryerror) +
"\n" +
result.comment);
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java
index dcda0bc0aa..7282ac0763 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java
@@ -158,7 +158,7 @@ public class WearPlugin extends PluginBase {
@Subscribe
public void onStatusEvent(final EventBolusRequested ev) {
- String status = String.format(MainApp.sResources.getString(R.string.bolusrequested), ev.getAmount());
+ String status = String.format(MainApp.gs(R.string.bolusrequested), ev.getAmount());
Intent intent = new Intent(ctx, WatchUpdaterService.class).setAction(WatchUpdaterService.ACTION_SEND_BOLUSPROGRESS);
intent.putExtra("progresspercent", 0);
intent.putExtra("progressstatus", status);
@@ -172,9 +172,9 @@ public class WearPlugin extends PluginBase {
String status;
if (ev.result.success) {
- status = MainApp.sResources.getString(R.string.success);
+ status = MainApp.gs(R.string.success);
} else {
- status = MainApp.sResources.getString(R.string.nosuccess);
+ status = MainApp.gs(R.string.nosuccess);
}
Intent intent = new Intent(ctx, WatchUpdaterService.class).setAction(WatchUpdaterService.ACTION_SEND_BOLUSPROGRESS);
intent.putExtra("progresspercent", 100);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java
index 0d809a7bab..696b8b0b57 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java
@@ -38,12 +38,11 @@ import info.nightscout.androidaps.db.BgReading;
import info.nightscout.androidaps.db.DatabaseHelper;
import info.nightscout.androidaps.db.TemporaryBasal;
import info.nightscout.androidaps.plugins.IobCobCalculator.CobInfo;
+import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin;
import info.nightscout.androidaps.plugins.Treatments.Treatment;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.interfaces.TreatmentsInterface;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
-import info.nightscout.androidaps.plugins.IobCobCalculator.AutosensData;
-import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin;
import info.nightscout.androidaps.plugins.Loop.LoopPlugin;
import info.nightscout.androidaps.plugins.NSClientInternal.data.NSDeviceStatus;
import info.nightscout.androidaps.plugins.Overview.OverviewPlugin;
@@ -214,7 +213,7 @@ public class WatchUpdaterService extends WearableListenerService implements
final DataMap dataMap = dataMapSingleBG(lastBG, glucoseStatus);
if (dataMap == null) {
- ToastUtils.showToastInUiThread(this, getString(R.string.noprofile));
+ ToastUtils.showToastInUiThread(this, MainApp.gs(R.string.noprofile));
return;
}
@@ -331,7 +330,7 @@ public class WatchUpdaterService extends WearableListenerService implements
if (!graph_bgs.isEmpty()) {
DataMap entries = dataMapSingleBG(last_bg, glucoseStatus);
if (entries == null) {
- ToastUtils.showToastInUiThread(this, getString(R.string.noprofile));
+ ToastUtils.showToastInUiThread(this, MainApp.gs(R.string.noprofile));
return;
}
final ArrayList dataMaps = new ArrayList<>(graph_bgs.size());
@@ -478,7 +477,8 @@ public class WatchUpdaterService extends WearableListenerService implements
if (!predArray.isEmpty()) {
for (BgReading bg : predArray) {
- predictions.add(predictionMap(bg.date, bg.value));
+ if (bg.value < 40) continue;
+ predictions.add(predictionMap(bg.date, bg.value, bg.getPredectionColor()));
}
}
}
@@ -521,10 +521,11 @@ public class WatchUpdaterService extends WearableListenerService implements
return dm;
}
- private DataMap predictionMap(long timestamp, double sgv) {
+ private DataMap predictionMap(long timestamp, double sgv, int color) {
DataMap dm = new DataMap();
dm.putLong("timestamp", timestamp);
dm.putDouble("sgv", sgv);
+ dm.putInt("color", color);
return dm;
}
@@ -580,7 +581,7 @@ public class WatchUpdaterService extends WearableListenerService implements
if (googleApiClient.isConnected()) {
Profile profile = MainApp.getConfigBuilder().getProfile();
- String status = MainApp.instance().getString(R.string.noprofile);
+ String status = MainApp.gs(R.string.noprofile);
String iobSum, iobDetail, cobString, currentBasal, bgiString;
iobSum = iobDetail = cobString = currentBasal = bgiString = "";
if (profile != null) {
@@ -592,7 +593,7 @@ public class WatchUpdaterService extends WearableListenerService implements
iobSum = DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob);
iobDetail = "(" + DecimalFormatter.to2Decimal(bolusIob.iob) + "|" + DecimalFormatter.to2Decimal(basalIob.basaliob) + ")";
- cobString = generateCOBString();
+ cobString = IobCobCalculatorPlugin.getPlugin().getCobInfo(false, "WatcherUpdaterService").generateCOBString();
currentBasal = generateBasalString(treatmentsInterface);
//bgi
@@ -663,14 +664,14 @@ public class WatchUpdaterService extends WearableListenerService implements
String status = "";
if (profile == null) {
- status = MainApp.sResources.getString(R.string.noprofile);
+ status = MainApp.gs(R.string.noprofile);
return status;
}
LoopPlugin activeloop = LoopPlugin.getPlugin();
if (!activeloop.isEnabled(PluginType.LOOP)) {
- status += getString(R.string.disabledloop) + "\n";
+ status += MainApp.gs(R.string.disabledloop) + "\n";
lastLoopStatus = false;
} else {
lastLoopStatus = true;
@@ -715,21 +716,6 @@ public class WatchUpdaterService extends WearableListenerService implements
return basalStringResult;
}
- @NonNull
- private String generateCOBString() {
-
- String cobStringResult = "--";
- CobInfo cobInfo = IobCobCalculatorPlugin.getPlugin().getCobInfo(false, "WatcherUpdaterService");
- if (cobInfo.displayCob != null) {
- cobStringResult = DecimalFormatter.to0Decimal(cobInfo.displayCob);
- if (cobInfo.futureCarbs > 0) {
- cobStringResult += "(" + DecimalFormatter.to0Decimal(cobInfo.futureCarbs) + ")";
- }
- cobStringResult += "g";
- }
- return cobStringResult;
- }
-
@Override
public void onDestroy() {
if (googleApiClient != null && googleApiClient.isConnected()) {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/XDripStatusline/StatuslinePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/XDripStatusline/StatuslinePlugin.java
index 5ce277e399..03c6c48a1a 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/XDripStatusline/StatuslinePlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/XDripStatusline/StatuslinePlugin.java
@@ -25,6 +25,8 @@ import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.interfaces.TreatmentsInterface;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
+import info.nightscout.androidaps.plugins.IobCobCalculator.CobInfo;
+import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin;
import info.nightscout.androidaps.plugins.Loop.LoopPlugin;
import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin;
import info.nightscout.utils.DecimalFormatter;
@@ -111,7 +113,7 @@ public class StatuslinePlugin extends PluginBase {
LoopPlugin loopPlugin = LoopPlugin.getPlugin();
if (!loopPlugin.isEnabled(PluginType.LOOP)) {
- status += ctx.getString(R.string.disabledloop) + "\n";
+ status += MainApp.gs(R.string.disabledloop) + "\n";
lastLoopStatus = false;
} else if (loopPlugin.isEnabled(PluginType.LOOP)) {
lastLoopStatus = true;
@@ -130,7 +132,7 @@ public class StatuslinePlugin extends PluginBase {
IobTotal bolusIob = treatmentsInterface.getLastCalculationTreatments().round();
treatmentsInterface.updateTotalIOBTempBasals();
IobTotal basalIob = treatmentsInterface.getLastCalculationTempBasals().round();
- status += DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob);
+ status += DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob)+"U";
if (mPrefs.getBoolean("xdripstatus_detailediob", true)) {
@@ -146,6 +148,7 @@ public class StatuslinePlugin extends PluginBase {
double bgi = -(bolusIob.activity + basalIob.activity) * 5 * profile.getIsf();
status += " " + ((bgi >= 0) ? "+" : "") + DecimalFormatter.to2Decimal(bgi);
+ status += " " + IobCobCalculatorPlugin.getPlugin().getCobInfo(false, "StatuslinePlugin").generateCOBString();
return status;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java b/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java
index 93b6f99db0..b42cc47f13 100644
--- a/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java
+++ b/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java
@@ -81,7 +81,7 @@ public class CommandQueue {
private QueueThread thread = null;
private PumpEnactResult executingNowError() {
- return new PumpEnactResult().success(false).enacted(false).comment(MainApp.sResources.getString(R.string.executingrightnow));
+ return new PumpEnactResult().success(false).enacted(false).comment(MainApp.gs(R.string.executingrightnow));
}
public boolean isRunning(Command.CommandType type) {
@@ -162,8 +162,18 @@ public class CommandQueue {
tempCommandQueue.readStatus(reason, callback);
}
+ public synchronized boolean bolusInQueue(){
+ if(isRunning(Command.CommandType.BOLUS)) return true;
+ for (int i = 0; i < queue.size(); i++) {
+ if (queue.get(i).commandType == Command.CommandType.BOLUS) {
+ return true;
+ }
+ }
+ return false;
+ }
+
// returns true if command is queued
- public boolean bolus(DetailedBolusInfo detailedBolusInfo, Callback callback) {
+ public synchronized boolean bolus(DetailedBolusInfo detailedBolusInfo, Callback callback) {
Command.CommandType type = detailedBolusInfo.isSMB ? Command.CommandType.SMB_BOLUS : Command.CommandType.BOLUS;
if(type.equals(Command.CommandType.BOLUS) && detailedBolusInfo.carbs > 0 && detailedBolusInfo.insulin == 0){
@@ -314,10 +324,10 @@ public class CommandQueue {
}
if (!MainApp.isEngineeringModeOrRelease()) {
- Notification notification = new Notification(Notification.NOT_ENG_MODE_OR_RELEASE, MainApp.sResources.getString(R.string.not_eng_mode_or_release), Notification.URGENT);
+ Notification notification = new Notification(Notification.NOT_ENG_MODE_OR_RELEASE, MainApp.gs(R.string.not_eng_mode_or_release), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
if (callback != null)
- callback.result(new PumpEnactResult().success(false).comment(MainApp.sResources.getString(R.string.not_eng_mode_or_release))).run();
+ callback.result(new PumpEnactResult().success(false).comment(MainApp.gs(R.string.not_eng_mode_or_release))).run();
return false;
}
@@ -327,10 +337,10 @@ public class CommandQueue {
for (Profile.BasalValue basalValue : basalValues) {
if (basalValue.value < pump.getPumpDescription().basalMinimumRate) {
- Notification notification = new Notification(Notification.BASAL_VALUE_BELOW_MINIMUM, MainApp.sResources.getString(R.string.basalvaluebelowminimum), Notification.URGENT);
+ Notification notification = new Notification(Notification.BASAL_VALUE_BELOW_MINIMUM, MainApp.gs(R.string.basalvaluebelowminimum), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
if (callback != null)
- callback.result(new PumpEnactResult().success(false).comment(MainApp.sResources.getString(R.string.basalvaluebelowminimum))).run();
+ callback.result(new PumpEnactResult().success(false).comment(MainApp.gs(R.string.basalvaluebelowminimum))).run();
return false;
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/queue/QueueThread.java b/app/src/main/java/info/nightscout/androidaps/queue/QueueThread.java
index 8ec61932c8..a5ad59ca0b 100644
--- a/app/src/main/java/info/nightscout/androidaps/queue/QueueThread.java
+++ b/app/src/main/java/info/nightscout/androidaps/queue/QueueThread.java
@@ -55,7 +55,7 @@ public class QueueThread extends Thread {
PumpInterface pump = ConfigBuilderPlugin.getActivePump();
if (pump == null) {
log.debug("QUEUE: pump == null");
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.pumpNotInitialized)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.pumpNotInitialized)));
SystemClock.sleep(1000);
continue;
}
@@ -63,7 +63,7 @@ public class QueueThread extends Thread {
if (!pump.isConnected() && secondsElapsed > Constants.PUMP_MAX_CONNECTION_TIME_IN_SECONDS) {
MainApp.bus().post(new EventDismissBolusprogressIfRunning(null));
- MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.connectiontimedout)));
+ MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.connectiontimedout)));
log.debug("QUEUE: timed out");
pump.stopConnecting();
diff --git a/app/src/main/java/info/nightscout/androidaps/queue/commands/CommandSetProfile.java b/app/src/main/java/info/nightscout/androidaps/queue/commands/CommandSetProfile.java
index 8a8bc41dfa..03764dee0b 100644
--- a/app/src/main/java/info/nightscout/androidaps/queue/commands/CommandSetProfile.java
+++ b/app/src/main/java/info/nightscout/androidaps/queue/commands/CommandSetProfile.java
@@ -47,7 +47,7 @@ public class CommandSetProfile extends Command {
if (r.enacted && profileSwitch.source == Source.NIGHTSCOUT) {
SmsCommunicatorPlugin smsCommunicatorPlugin = MainApp.getSpecificPlugin(SmsCommunicatorPlugin.class);
if (smsCommunicatorPlugin != null && smsCommunicatorPlugin.isEnabled(PluginType.GENERAL)) {
- smsCommunicatorPlugin.sendNotificationToAllNumbers(MainApp.sResources.getString(R.string.profile_set_ok));
+ smsCommunicatorPlugin.sendNotificationToAllNumbers(MainApp.gs(R.string.profile_set_ok));
}
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/receivers/ChargingStateReceiver.java b/app/src/main/java/info/nightscout/androidaps/receivers/ChargingStateReceiver.java
new file mode 100644
index 0000000000..3dbec90b4f
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/receivers/ChargingStateReceiver.java
@@ -0,0 +1,32 @@
+package info.nightscout.androidaps.receivers;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.os.BatteryManager;
+
+import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.events.EventChargingState;
+
+public class ChargingStateReceiver extends BroadcastReceiver {
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ EventChargingState event = grabChargingState(context);
+
+ if (event != null)
+ MainApp.bus().post(event);
+ }
+
+ public EventChargingState grabChargingState(Context context) {
+ BatteryManager bm = (BatteryManager) context.getSystemService(Context.BATTERY_SERVICE);
+
+ int status = bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_STATUS);
+ boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING
+ || status == BatteryManager.BATTERY_STATUS_FULL;
+
+ EventChargingState event = new EventChargingState(isCharging);
+ return event;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/info/nightscout/androidaps/receivers/NetworkChangeReceiver.java b/app/src/main/java/info/nightscout/androidaps/receivers/NetworkChangeReceiver.java
index b3a99b66ff..4e01066bf9 100644
--- a/app/src/main/java/info/nightscout/androidaps/receivers/NetworkChangeReceiver.java
+++ b/app/src/main/java/info/nightscout/androidaps/receivers/NetworkChangeReceiver.java
@@ -8,7 +8,6 @@ import android.net.NetworkInfo;
import android.net.wifi.SupplicantState;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
-import android.os.PowerManager;
import android.support.annotation.Nullable;
import org.slf4j.Logger;
@@ -18,27 +17,21 @@ import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.events.EventNetworkChange;
public class NetworkChangeReceiver extends BroadcastReceiver {
+
private static Logger log = LoggerFactory.getLogger(NetworkChangeReceiver.class);
@Override
public void onReceive(final Context context, final Intent intent) {
- PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
- if (pm == null) return;
- PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "NetworkChangeReceiver");
- wl.acquire(10000);
-
- EventNetworkChange event = grabNetworkStatus();
+ EventNetworkChange event = grabNetworkStatus(context);
if (event != null)
MainApp.bus().post(event);
-
- wl.release();
}
@Nullable
- public static EventNetworkChange grabNetworkStatus() {
+ public EventNetworkChange grabNetworkStatus(final Context context) {
EventNetworkChange event = new EventNetworkChange();
- ConnectivityManager cm = (ConnectivityManager) MainApp.instance().getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
+ ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm == null) return null;
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
@@ -54,6 +47,7 @@ public class NetworkChangeReceiver extends BroadcastReceiver {
log.debug("NETCHANGE: Wifi connected. SSID: " + event.ssid);
}
}
+
if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
event.mobileConnected = true;
event.roaming = activeNetwork.isRoaming();
@@ -62,6 +56,7 @@ public class NetworkChangeReceiver extends BroadcastReceiver {
} else {
log.debug("NETCHANGE: Disconnected.");
}
+
return event;
}
}
\ No newline at end of file
diff --git a/app/src/main/java/info/nightscout/utils/ImportExportPrefs.java b/app/src/main/java/info/nightscout/utils/ImportExportPrefs.java
index b8eb49e98e..c2fbbf581e 100644
--- a/app/src/main/java/info/nightscout/utils/ImportExportPrefs.java
+++ b/app/src/main/java/info/nightscout/utils/ImportExportPrefs.java
@@ -33,7 +33,7 @@ import info.nightscout.androidaps.events.EventAppExit;
public class ImportExportPrefs {
private static Logger log = LoggerFactory.getLogger(ImportExportPrefs.class);
static File path = new File(Environment.getExternalStorageDirectory().toString());
- static final File file = new File(path, MainApp.sResources.getString(R.string.app_name) + "Preferences");
+ static final File file = new File(path, MainApp.gs(R.string.app_name) + "Preferences");
private static final int REQUEST_EXTERNAL_STORAGE = 1;
private static String[] PERMISSIONS_STORAGE = {
@@ -59,7 +59,7 @@ public class ImportExportPrefs {
public static void exportSharedPreferences(final Activity c) {
new AlertDialog.Builder(c)
- .setMessage(MainApp.sResources.getString(R.string.export_to) + " " + file + " ?")
+ .setMessage(MainApp.gs(R.string.export_to) + " " + file + " ?")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
@@ -73,9 +73,9 @@ public class ImportExportPrefs {
}
pw.close();
fw.close();
- ToastUtils.showToastInUiThread(c, MainApp.sResources.getString(R.string.exported));
+ ToastUtils.showToastInUiThread(c, MainApp.gs(R.string.exported));
} catch (FileNotFoundException e) {
- ToastUtils.showToastInUiThread(c, MainApp.sResources.getString(R.string.filenotfound) + " " + file);
+ ToastUtils.showToastInUiThread(c, MainApp.gs(R.string.filenotfound) + " " + file);
log.error("Unhandled exception", e);
} catch (IOException e) {
log.error("Unhandled exception", e);
@@ -88,7 +88,7 @@ public class ImportExportPrefs {
public static void importSharedPreferences(final Activity c) {
new AlertDialog.Builder(c)
- .setMessage(MainApp.sResources.getString(R.string.import_from) + " " + file + " ?")
+ .setMessage(MainApp.gs(R.string.import_from) + " " + file + " ?")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
@@ -113,7 +113,7 @@ public class ImportExportPrefs {
}
reader.close();
editor.commit();
- OKDialog.show(c, MainApp.sResources.getString(R.string.setting_imported), MainApp.sResources.getString(R.string.restartingapp), new Runnable() {
+ OKDialog.show(c, MainApp.gs(R.string.setting_imported), MainApp.gs(R.string.restartingapp), new Runnable() {
@Override
public void run() {
log.debug("Exiting");
@@ -126,7 +126,7 @@ public class ImportExportPrefs {
}
});
} catch (FileNotFoundException e) {
- ToastUtils.showToastInUiThread(c, MainApp.sResources.getString(R.string.filenotfound) + " " + file);
+ ToastUtils.showToastInUiThread(c, MainApp.gs(R.string.filenotfound) + " " + file);
log.error("Unhandled exception", e);
} catch (IOException e) {
log.error("Unhandled exception", e);
diff --git a/app/src/main/java/info/nightscout/utils/LocalAlertUtils.java b/app/src/main/java/info/nightscout/utils/LocalAlertUtils.java
index cc1a22355a..5556cae935 100644
--- a/app/src/main/java/info/nightscout/utils/LocalAlertUtils.java
+++ b/app/src/main/java/info/nightscout/utils/LocalAlertUtils.java
@@ -26,21 +26,21 @@ public class LocalAlertUtils {
private static Logger log = LoggerFactory.getLogger(LocalAlertUtils.class);
public static long missedReadingsThreshold() {
- return T.mins(SP.getInt(MainApp.sResources.getString(R.string.key_missed_bg_readings_threshold), 30)).msecs();
+ return T.mins(SP.getInt(MainApp.gs(R.string.key_missed_bg_readings_threshold), 30)).msecs();
}
private static long pumpUnreachableThreshold() {
- return T.mins(SP.getInt(MainApp.sResources.getString(R.string.key_pump_unreachable_threshold), 30)).msecs();
+ return T.mins(SP.getInt(MainApp.gs(R.string.key_pump_unreachable_threshold), 30)).msecs();
}
public static void checkPumpUnreachableAlarm(Date lastConnection, boolean isStatusOutdated) {
boolean alarmTimeoutExpired = lastConnection.getTime() + pumpUnreachableThreshold() < System.currentTimeMillis();
boolean nextAlarmOccurrenceReached = SP.getLong("nextPumpDisconnectedAlarm", 0L) < System.currentTimeMillis();
- if (Config.APS && SP.getBoolean(MainApp.sResources.getString(R.string.key_enable_pump_unreachable_alert), true)
+ if (Config.APS && SP.getBoolean(MainApp.gs(R.string.key_enable_pump_unreachable_alert), true)
&& isStatusOutdated && alarmTimeoutExpired && nextAlarmOccurrenceReached && !LoopPlugin.getPlugin().isDisconnected()) {
log.debug("Generating pump unreachable alarm. lastConnection: " + DateUtil.dateAndTimeString(lastConnection) + " isStatusOutdated: " + isStatusOutdated);
- Notification n = new Notification(Notification.PUMP_UNREACHABLE, MainApp.sResources.getString(R.string.pump_unreachable), Notification.URGENT);
+ Notification n = new Notification(Notification.PUMP_UNREACHABLE, MainApp.gs(R.string.pump_unreachable), Notification.URGENT);
n.soundId = R.raw.alarm;
SP.putLong("nextPumpDisconnectedAlarm", System.currentTimeMillis() + pumpUnreachableThreshold());
MainApp.bus().post(new EventNewNotification(n));
@@ -91,10 +91,10 @@ public class LocalAlertUtils {
public static void checkStaleBGAlert() {
BgReading bgReading = DatabaseHelper.lastBg();
- if (SP.getBoolean(MainApp.sResources.getString(R.string.key_enable_missed_bg_readings_alert), false)
+ if (SP.getBoolean(MainApp.gs(R.string.key_enable_missed_bg_readings_alert), false)
&& bgReading != null && bgReading.date + missedReadingsThreshold() < System.currentTimeMillis()
&& SP.getLong("nextMissedReadingsAlarm", 0l) < System.currentTimeMillis()) {
- Notification n = new Notification(Notification.BG_READINGS_MISSED, MainApp.sResources.getString(R.string.missed_bg_readings), Notification.URGENT);
+ Notification n = new Notification(Notification.BG_READINGS_MISSED, MainApp.gs(R.string.missed_bg_readings), Notification.URGENT);
n.soundId = R.raw.alarm;
SP.putLong("nextMissedReadingsAlarm", System.currentTimeMillis() + missedReadingsThreshold());
MainApp.bus().post(new EventNewNotification(n));
diff --git a/app/src/main/java/info/nightscout/utils/LogDialog.java b/app/src/main/java/info/nightscout/utils/LogDialog.java
index b98582c05f..7e2468774e 100644
--- a/app/src/main/java/info/nightscout/utils/LogDialog.java
+++ b/app/src/main/java/info/nightscout/utils/LogDialog.java
@@ -25,7 +25,7 @@ public class LogDialog {
String logCat = "no logs";
final String processId = Integer.toString(android.os.Process.myPid());
try {
- Process process = Runtime.getRuntime().exec("logcat -d " + MainApp.sResources.getString(R.string.app_name) + ":D");
+ Process process = Runtime.getRuntime().exec("logcat -d " + MainApp.gs(R.string.app_name) + ":D");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
StringBuilder log = new StringBuilder();
String line;
@@ -46,11 +46,11 @@ public class LogDialog {
try {
AlertDialog alertDialog = new AlertDialog.Builder(context)
.setMessage(msg)
- .setPositiveButton(MainApp.sResources.getString(R.string.copy_to_clipboard), new DialogInterface.OnClickListener() {
+ .setPositiveButton(MainApp.gs(R.string.copy_to_clipboard), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.setPrimaryClip(ClipData.newPlainText(null, msg));
- ToastUtils.showToastInUiThread(context, MainApp.sResources.getString(R.string.copied_to_clipboard));
+ ToastUtils.showToastInUiThread(context, MainApp.gs(R.string.copied_to_clipboard));
}
})
.setNegativeButton(android.R.string.cancel, null)
diff --git a/app/src/main/java/info/nightscout/utils/NSUpload.java b/app/src/main/java/info/nightscout/utils/NSUpload.java
index 3cd252f19a..2e5506f9c6 100644
--- a/app/src/main/java/info/nightscout/utils/NSUpload.java
+++ b/app/src/main/java/info/nightscout/utils/NSUpload.java
@@ -55,7 +55,7 @@ public class NSUpload {
if (temporaryBasal.pumpId != 0)
data.put("pumpId", temporaryBasal.pumpId);
data.put("created_at", DateUtil.toISOString(temporaryBasal.date));
- data.put("enteredBy", "openaps://" + MainApp.instance().getString(R.string.app_name));
+ data.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name));
if (originalExtendedAmount != null)
data.put("originalExtendedAmount", originalExtendedAmount); // for back synchronization
Bundle bundle = new Bundle();
@@ -93,7 +93,7 @@ public class NSUpload {
if (temporaryBasal.pumpId != 0)
data.put("pumpId", temporaryBasal.pumpId);
data.put("created_at", DateUtil.toISOString(temporaryBasal.date));
- data.put("enteredBy", "openaps://" + MainApp.instance().getString(R.string.app_name));
+ data.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name));
Bundle bundle = new Bundle();
bundle.putString("action", "dbAdd");
bundle.putString("collection", "treatments");
@@ -115,7 +115,7 @@ public class NSUpload {
JSONObject data = new JSONObject();
data.put("eventType", CareportalEvent.TEMPBASAL);
data.put("created_at", DateUtil.toISOString(time));
- data.put("enteredBy", "openaps://" + MainApp.instance().getString(R.string.app_name));
+ data.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name));
if (isFakedTempBasal)
data.put("isFakedTempBasal", isFakedTempBasal);
if (pumpId != 0)
@@ -147,7 +147,7 @@ public class NSUpload {
if (extendedBolus.pumpId != 0)
data.put("pumpId", extendedBolus.pumpId);
data.put("created_at", DateUtil.toISOString(extendedBolus.date));
- data.put("enteredBy", "openaps://" + MainApp.instance().getString(R.string.app_name));
+ data.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name));
Bundle bundle = new Bundle();
bundle.putString("action", "dbAdd");
bundle.putString("collection", "treatments");
@@ -173,7 +173,7 @@ public class NSUpload {
data.put("enteredinsulin", 0);
data.put("relative", 0);
data.put("created_at", DateUtil.toISOString(time));
- data.put("enteredBy", "openaps://" + MainApp.instance().getString(R.string.app_name));
+ data.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name));
if (pumpId != 0)
data.put("pumpId", pumpId);
Bundle bundle = new Bundle();
@@ -301,7 +301,7 @@ public class NSUpload {
data.put("percentage", profileSwitch.percentage);
}
data.put("created_at", DateUtil.toISOString(profileSwitch.date));
- data.put("enteredBy", MainApp.instance().getString(R.string.app_name));
+ data.put("enteredBy", MainApp.gs(R.string.app_name));
uploadCareportalEntryToNS(data);
} catch (JSONException e) {
log.error("Unhandled exception", e);
@@ -325,7 +325,7 @@ public class NSUpload {
data.put("targetTop", Profile.fromMgdlToUnits(tempTarget.high, profile.getUnits()));
data.put("created_at", DateUtil.toISOString(tempTarget.date));
data.put("units", profile.getUnits());
- data.put("enteredBy", MainApp.instance().getString(R.string.app_name));
+ data.put("enteredBy", MainApp.gs(R.string.app_name));
uploadCareportalEntryToNS(data);
} catch (JSONException e) {
log.error("Unhandled exception", e);
@@ -346,7 +346,7 @@ public class NSUpload {
data.put("percentage", profileSwitch.percentage);
}
data.put("created_at", DateUtil.toISOString(profileSwitch.date));
- data.put("enteredBy", MainApp.instance().getString(R.string.app_name));
+ data.put("enteredBy", MainApp.gs(R.string.app_name));
if (profileSwitch._id != null) {
Context context = MainApp.instance().getApplicationContext();
Bundle bundle = new Bundle();
@@ -420,7 +420,7 @@ public class NSUpload {
data.put("eventType", "OpenAPS Offline");
data.put("duration", durationInMinutes);
data.put("created_at", DateUtil.toISOString(new Date()));
- data.put("enteredBy", "openaps://" + MainApp.instance().getString(R.string.app_name));
+ data.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name));
Bundle bundle = new Bundle();
bundle.putString("action", "dbAdd");
bundle.putString("collection", "treatments");
@@ -496,7 +496,7 @@ public class NSUpload {
try {
data.put("eventType", "Note");
data.put("created_at", DateUtil.toISOString(new Date()));
- data.put("notes", MainApp.sResources.getString(R.string.androidaps_start)+" - "+ Build.MANUFACTURER + " "+ Build.MODEL);
+ data.put("notes", MainApp.gs(R.string.androidaps_start)+" - "+ Build.MANUFACTURER + " "+ Build.MODEL);
} catch (JSONException e) {
log.error("Unhandled exception", e);
}
diff --git a/app/src/main/java/info/nightscout/utils/NumberPicker.java b/app/src/main/java/info/nightscout/utils/NumberPicker.java
index 64239cbaee..102abedc7d 100644
--- a/app/src/main/java/info/nightscout/utils/NumberPicker.java
+++ b/app/src/main/java/info/nightscout/utils/NumberPicker.java
@@ -199,7 +199,7 @@ public class NumberPicker extends LinearLayout implements View.OnKeyListener,
value += step * multiplier;
if (value > maxValue) {
value = maxValue;
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.youareonallowedlimit));
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.youareonallowedlimit));
stopUpdating();
}
updateEditText();
@@ -209,7 +209,7 @@ public class NumberPicker extends LinearLayout implements View.OnKeyListener,
value -= step * multiplier;
if (value < minValue) {
value = minValue;
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.youareonallowedlimit));
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.youareonallowedlimit));
stopUpdating();
}
updateEditText();
diff --git a/app/src/main/java/info/nightscout/utils/OKDialog.java b/app/src/main/java/info/nightscout/utils/OKDialog.java
index 3212e6b1fd..5185049678 100644
--- a/app/src/main/java/info/nightscout/utils/OKDialog.java
+++ b/app/src/main/java/info/nightscout/utils/OKDialog.java
@@ -25,7 +25,7 @@ public class OKDialog {
AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(activity, R.style.AppTheme));
builder.setTitle(title);
builder.setMessage(message);
- builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
if (runnable != null) {
@@ -46,7 +46,7 @@ public class OKDialog {
AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(activity, R.style.AppTheme));
builder.setTitle(title);
builder.setMessage(message);
- builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
if (runnable != null) {
diff --git a/app/src/main/java/info/nightscout/utils/PasswordProtection.java b/app/src/main/java/info/nightscout/utils/PasswordProtection.java
index 1af10eb2d2..2a15dc7311 100644
--- a/app/src/main/java/info/nightscout/utils/PasswordProtection.java
+++ b/app/src/main/java/info/nightscout/utils/PasswordProtection.java
@@ -37,7 +37,7 @@ public class PasswordProtection {
alertDialogBuilder.setView(promptsView);
final TextView label = (TextView) promptsView.findViewById(R.id.passwordprompt_text);
- label.setText(MainApp.sResources.getString(stringID));
+ label.setText(MainApp.gs(stringID));
final EditText userInput = (EditText) promptsView.findViewById(R.id.passwordprompt_pass);
// set dialog message
@@ -50,7 +50,7 @@ public class PasswordProtection {
if (password.equals(enteredPassword)) {
if (ok != null) ok.run();
} else {
- ToastUtils.showToastInUiThread(context, MainApp.sResources.getString(R.string.wrongpassword));
+ ToastUtils.showToastInUiThread(context, MainApp.gs(R.string.wrongpassword));
if (fail != null) fail.run();
}
}
diff --git a/app/src/main/java/info/nightscout/utils/SP.java b/app/src/main/java/info/nightscout/utils/SP.java
index 23a95840a8..eaf84946e6 100644
--- a/app/src/main/java/info/nightscout/utils/SP.java
+++ b/app/src/main/java/info/nightscout/utils/SP.java
@@ -17,7 +17,7 @@ public class SP {
}
static public String getString(int resourceID, String defaultValue) {
- return sharedPreferences.getString(MainApp.sResources.getString(resourceID), defaultValue);
+ return sharedPreferences.getString(MainApp.gs(resourceID), defaultValue);
}
static public String getString(String key, String defaultValue) {
@@ -26,7 +26,7 @@ public class SP {
static public boolean getBoolean(int resourceID, Boolean defaultValue) {
try {
- return sharedPreferences.getBoolean(MainApp.sResources.getString(resourceID), defaultValue);
+ return sharedPreferences.getBoolean(MainApp.gs(resourceID), defaultValue);
} catch (Exception e) {
return defaultValue;
}
@@ -41,7 +41,7 @@ public class SP {
}
static public Double getDouble(int resourceID, Double defaultValue) {
- return SafeParse.stringToDouble(sharedPreferences.getString(MainApp.sResources.getString(resourceID), defaultValue.toString()));
+ return SafeParse.stringToDouble(sharedPreferences.getString(MainApp.gs(resourceID), defaultValue.toString()));
}
static public Double getDouble(String key, Double defaultValue) {
@@ -50,9 +50,9 @@ public class SP {
static public int getInt(int resourceID, Integer defaultValue) {
try {
- return sharedPreferences.getInt(MainApp.sResources.getString(resourceID), defaultValue);
+ return sharedPreferences.getInt(MainApp.gs(resourceID), defaultValue);
} catch (Exception e) {
- return SafeParse.stringToInt(sharedPreferences.getString(MainApp.sResources.getString(resourceID), defaultValue.toString()));
+ return SafeParse.stringToInt(sharedPreferences.getString(MainApp.gs(resourceID), defaultValue.toString()));
}
}
@@ -66,9 +66,9 @@ public class SP {
static public long getLong(int resourceID, Long defaultValue) {
try {
- return sharedPreferences.getLong(MainApp.sResources.getString(resourceID), defaultValue);
+ return sharedPreferences.getLong(MainApp.gs(resourceID), defaultValue);
} catch (Exception e) {
- return SafeParse.stringToLong(sharedPreferences.getString(MainApp.sResources.getString(resourceID), defaultValue.toString()));
+ return SafeParse.stringToLong(sharedPreferences.getString(MainApp.gs(resourceID), defaultValue.toString()));
}
}
@@ -88,7 +88,7 @@ public class SP {
static public void putBoolean(int resourceID, boolean value) {
SharedPreferences.Editor editor = sharedPreferences.edit();
- editor.putBoolean(MainApp.sResources.getString(resourceID), value);
+ editor.putBoolean(MainApp.gs(resourceID), value);
editor.apply();
}
@@ -100,7 +100,7 @@ public class SP {
static public void putLong(int resourceID, long value) {
SharedPreferences.Editor editor = sharedPreferences.edit();
- editor.putLong(MainApp.sResources.getString(resourceID), value);
+ editor.putLong(MainApp.gs(resourceID), value);
editor.apply();
}
@@ -112,13 +112,13 @@ public class SP {
static public void putInt(int resourceID, int value) {
SharedPreferences.Editor editor = sharedPreferences.edit();
- editor.putInt(MainApp.sResources.getString(resourceID), value);
+ editor.putInt(MainApp.gs(resourceID), value);
editor.apply();
}
static public void putString(int resourceID, String value) {
SharedPreferences.Editor editor = sharedPreferences.edit();
- editor.putString(MainApp.sResources.getString(resourceID), value);
+ editor.putString(MainApp.gs(resourceID), value);
editor.apply();
}
@@ -130,7 +130,7 @@ public class SP {
static public void remove(int resourceID) {
SharedPreferences.Editor editor = sharedPreferences.edit();
- editor.remove(MainApp.sResources.getString(resourceID));
+ editor.remove(MainApp.gs(resourceID));
editor.apply();
}
diff --git a/app/src/main/java/info/nightscout/utils/Translator.java b/app/src/main/java/info/nightscout/utils/Translator.java
index 75ee881c21..98fdd32779 100644
--- a/app/src/main/java/info/nightscout/utils/Translator.java
+++ b/app/src/main/java/info/nightscout/utils/Translator.java
@@ -12,51 +12,51 @@ public class Translator {
switch (text) {
case "BG Check":
- return MainApp.sResources.getString(R.string.careportal_bgcheck);
+ return MainApp.gs(R.string.careportal_bgcheck);
case "Snack Bolus":
- return MainApp.sResources.getString(R.string.careportal_snackbolus);
+ return MainApp.gs(R.string.careportal_snackbolus);
case "Meal Bolus":
- return MainApp.sResources.getString(R.string.careportal_mealbolus);
+ return MainApp.gs(R.string.careportal_mealbolus);
case "Correction Bolus":
- return MainApp.sResources.getString(R.string.careportal_correctionbolus);
+ return MainApp.gs(R.string.careportal_correctionbolus);
case "Carb Correction":
- return MainApp.sResources.getString(R.string.careportal_carbscorrection);
+ return MainApp.gs(R.string.careportal_carbscorrection);
case "Combo Bolus":
- return MainApp.sResources.getString(R.string.careportal_combobolus);
+ return MainApp.gs(R.string.careportal_combobolus);
case "Announcement":
- return MainApp.sResources.getString(R.string.careportal_announcement);
+ return MainApp.gs(R.string.careportal_announcement);
case "Note":
- return MainApp.sResources.getString(R.string.careportal_note);
+ return MainApp.gs(R.string.careportal_note);
case "Question":
- return MainApp.sResources.getString(R.string.careportal_question);
+ return MainApp.gs(R.string.careportal_question);
case "Exercise":
- return MainApp.sResources.getString(R.string.careportal_exercise);
+ return MainApp.gs(R.string.careportal_exercise);
case "Site Change":
- return MainApp.sResources.getString(R.string.careportal_pumpsitechange);
+ return MainApp.gs(R.string.careportal_pumpsitechange);
case "Sensor Start":
- return MainApp.sResources.getString(R.string.careportal_cgmsensorstart);
+ return MainApp.gs(R.string.careportal_cgmsensorstart);
case "Sensor Change":
- return MainApp.sResources.getString(R.string.careportal_cgmsensorinsert);
+ return MainApp.gs(R.string.careportal_cgmsensorinsert);
case "Insulin Change":
- return MainApp.sResources.getString(R.string.careportal_insulincartridgechange);
+ return MainApp.gs(R.string.careportal_insulincartridgechange);
case "Temp Basal Start":
- return MainApp.sResources.getString(R.string.careportal_tempbasalstart);
+ return MainApp.gs(R.string.careportal_tempbasalstart);
case "Temp Basal End":
- return MainApp.sResources.getString(R.string.careportal_tempbasalend);
+ return MainApp.gs(R.string.careportal_tempbasalend);
case "Profile Switch":
- return MainApp.sResources.getString(R.string.careportal_profileswitch);
+ return MainApp.gs(R.string.careportal_profileswitch);
case "Temporary Target":
- return MainApp.sResources.getString(R.string.careportal_temporarytarget);
+ return MainApp.gs(R.string.careportal_temporarytarget);
case "Temporary Target Cancel":
- return MainApp.sResources.getString(R.string.careportal_temporarytargetcancel);
+ return MainApp.gs(R.string.careportal_temporarytargetcancel);
case "OpenAPS Offline":
- return MainApp.sResources.getString(R.string.careportal_openapsoffline);
+ return MainApp.gs(R.string.careportal_openapsoffline);
case "Finger":
- return MainApp.sResources.getString(R.string.glucosetype_finger);
+ return MainApp.gs(R.string.glucosetype_finger);
case "Sensor":
- return MainApp.sResources.getString(R.string.glucosetype_sensor);
+ return MainApp.gs(R.string.glucosetype_sensor);
case "Manual":
- return MainApp.sResources.getString(R.string.manual);
+ return MainApp.gs(R.string.manual);
}
return text;
}
diff --git a/app/src/main/java/info/nightscout/utils/XdripCalibrations.java b/app/src/main/java/info/nightscout/utils/XdripCalibrations.java
index 662b7a0c8f..66ec6bd3df 100644
--- a/app/src/main/java/info/nightscout/utils/XdripCalibrations.java
+++ b/app/src/main/java/info/nightscout/utils/XdripCalibrations.java
@@ -28,17 +28,17 @@ public class XdripCalibrations {
public static void confirmAndSendCalibration(final Double bg, Context parentContext) {
if (parentContext != null) {
- String confirmMessage = String.format(MainApp.sResources.getString(R.string.send_calibration), bg);
+ String confirmMessage = String.format(MainApp.gs(R.string.send_calibration), bg);
AlertDialog.Builder builder = new AlertDialog.Builder(parentContext);
- builder.setTitle(MainApp.sResources.getString(R.string.confirmation));
+ builder.setTitle(MainApp.gs(R.string.confirmation));
builder.setMessage(confirmMessage);
- builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
sendIntent(bg);
}
});
- builder.setNegativeButton(MainApp.sResources.getString(R.string.cancel), null);
+ builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
builder.show();
}
}
@@ -55,12 +55,12 @@ public class XdripCalibrations {
context.sendBroadcast(intent);
List q = MainApp.instance().getApplicationContext().getPackageManager().queryBroadcastReceivers(intent, 0);
if (q.size() < 1) {
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.xdripnotinstalled));
- log.debug(MainApp.sResources.getString(R.string.xdripnotinstalled));
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.xdripnotinstalled));
+ log.debug(MainApp.gs(R.string.xdripnotinstalled));
return false;
} else {
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.calibrationsent));
- log.debug(MainApp.sResources.getString(R.string.calibrationsent));
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.calibrationsent));
+ log.debug(MainApp.gs(R.string.calibrationsent));
return true;
}
}
diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml
index 9bda35856c..81a1589e47 100644
--- a/app/src/main/res/values-bg/strings.xml
+++ b/app/src/main/res/values-bg/strings.xml
@@ -578,7 +578,6 @@
ĐĐŸŃĐČŃŃжЎаĐČĐ°ĐœĐ”, ŃĐ” ĐĐ Đ” ĐŽĐŸŃŃŃĐżĐœĐ° ĐČ ĐĐ°ĐčŃŃĐșĐ°ŃŃ Đž ĐŽĐ°ĐœĐœĐžŃĐ” Đ·Đ° ĐżĐŸĐŒĐżĐ°ŃĐ° ŃĐ” ĐșĐ°ŃĐČĐ°Ń ŃĐ°ĐŒ
РазЎДлО IOB ĐŸŃ Đ±ĐŸĐ»ŃŃ Đž ĐŸŃ Đ±Đ°Đ·Đ°Đ» ĐœĐ° ŃĐ°ŃĐŸĐČĐœĐžĐșĐ°
ĐĐŸĐșажО ĐżĐŸĐŽŃĐŸĐ±Đ”Đœ IOB
- AndroidAPS
ĐĐșŃĐžĐČĐžŃĐ°Đč ĐżŃĐŸŃОла
ĐĐĐąĐĐĐĐĐĄĐą Đ ĐĐĐ ĐĐąĐĐ ĐĐ ĐȘĐĐĐ
Đ„Đ ĐĐĐ Đ ĐĐĐĐŁĐĄ
@@ -683,4 +682,77 @@
ĐŃĐŒĐ° ĐŽĐŸŃŃĐ°ŃŃŃĐœĐŸ ĐžĐœŃŃĐ»ĐžĐœ ĐČ ŃДзДŃĐČĐŸĐ°ŃĐ°
ĐŃĐ°Đ·Đ”Đœ
ĐĐ±ĐœĐŸĐČĐž
+ Đ
+ Đ”ĐŽĐžĐœ
+ ĐČĐŽĐŽĐČ
+ ŃĐ¶ĐŸ
+ ĐĐŸĐ±Đ°ĐČŃĐœĐ” ĐœĐ° ĐŽĐŸĐżŃĐ»ĐœĐžŃĐ”Đ»ĐœĐž ŃŃĐœĐșŃОО Đ·Đ° ĐžĐ·ĐżĐŸĐ»Đ·ĐČĐ°ĐœĐ” ĐżŃДз ĐŽĐ”ĐœŃ, ĐșĐ°ŃĐŸ SMB
+ ĐŃĐ»ĐœĐ”ĐœĐ”
+ ĐзбŃĐ°Đœ APS
+ ĐŃĐŒĐ° Đ±Đ°Đ·Đ°Đ»ĐœĐž ŃŃĐŸĐčĐœĐŸŃŃĐž Đ·Đ° ĐœŃĐșĐŸĐž ŃĐ°ŃĐŸĐČĐ”: %s
+ ĐŃДЎŃĐżŃĐ”Đ¶ĐŽĐ”ĐœĐžĐ” W31: ĐĐžŃĐșĐŸ ĐœĐžĐČĐŸ ĐČ ŃДзДŃĐČĐŸĐ°ŃĐ°
+ ĐŃДЎŃĐżŃĐ”Đ¶ĐŽĐ”ĐœĐžĐ” W32: Хлаба баŃĐ”ŃĐžŃ
+ ĐŃДЎŃĐżŃĐ”Đ¶ĐŽĐ”ĐœĐžĐ” W33: ĐĐ”ĐČĐ°Đ»ĐžĐŽĐœĐŸ ĐČŃĐ”ĐŒĐ”/ĐŽĐ°ŃĐ°
+ ĐŃДЎŃĐżŃĐ”Đ¶ĐŽĐ”ĐœĐžĐ” W34: ĐŃĐ°Đč ĐœĐ° гаŃĐ°ĐœŃĐžŃŃĐ°
+ ĐŃДЎŃĐżŃĐ”Đ¶ĐŽĐ”ĐœĐžĐ” W36: ĐŃĐ”ĐŒĐ”ĐœĐœĐžŃŃ Đ±Đ°Đ·Đ°Đ» Đ” ĐżŃĐ”ĐșŃŃĐœĐ°Ń
+ ĐŃДЎŃĐżŃĐ”Đ¶ĐŽĐ”ĐœĐžĐ” W38: ĐĐŸĐ»ŃŃŃŃ Đ” ĐżŃĐ”ĐșŃŃĐœĐ°Ń
+ ĐŃĐ”ĐŒĐ”ĐœĐœĐžŃŃ Đ±Đ°Đ·Đ°Đ» Đ” Đ·Đ°ĐŽĐ°ĐŽĐ”Đœ ĐŸŃ ĐżĐŸĐŒĐżĐ°ŃĐ°
+ Đ ŃĐŒŃĐœŃĐșĐž
+ Đ€ŃĐ”ĐœŃĐșĐž
+ ĐĐžŃĐ°ĐčŃĐșĐž
+ ĐĐŸĐ»ŃŃŃŃ Đ” ŃĐżŃŃĐœ
+ ХпОŃĐ°ĐœĐ” ĐœĐ° Đ±ĐŸĐ»ŃŃ
+ Đ„ĐžĐżĐŸĐłĐ»Đ”ĐșĐžĐŒĐžŃ
+ ĐĐ°ŃŃŃĐŸĐčĐșĐ° ĐœĐ° ŃДлДĐČĐ°ŃĐ° ĐĐ ŃŃДз Đ°ŃŃĐŸŃĐ”ĐœŃ
+ ĐŃĐ·ŃĐ°ŃŃĐœĐž Ń ĐżĐŸ-ĐłĐŸĐ»ŃĐŒĐ° ĐžĐœŃŃĐ»ĐžĐœĐŸĐČĐ° ŃДзОŃŃĐ”ĐœŃĐœĐŸŃŃ
+ OpenAPS SMB
+ SMB
+ Đ Đ°Đ·ŃĐ”ŃĐž UAM
+ Đ Đ°Đ·ŃĐ”ŃĐž SMB
+ ĐĐ·ĐżĐŸĐ»Đ·ĐČĐ°Đč ŃŃĐżĐ”Ń ĐŒĐžĐșŃĐŸ Đ±ĐŸĐ»ŃŃĐž ĐČĐŒĐ”ŃŃĐŸ ĐČŃĐ”ĐŒĐ”ĐœĐ”Đœ базал Đ·Đ° ĐżĐŸ бŃŃĐ·ĐŸ ĐŽĐ”ĐčŃŃĐČОД
+ ĐĐ”ŃĐ”ĐșŃĐžŃ ĐœĐ° ĐœĐ”ĐŸĐ±ŃĐČĐ”ĐœĐŸ Ń
ŃĐ°ĐœĐ”ĐœĐ” (UAM)
+ ĐŃĐŸĐŽŃлжОŃĐ”Đ»ĐœĐŸŃŃ ĐœĐ° ĐČŃ. ŃДл ĐżŃĐž Ń
ĐžĐżĐŸĐłĐ»Đ”ĐșĐžĐŒĐžŃ
+ ĐŃĐ”ĐŒĐ”ĐœĐœĐ° ŃДл ĐżŃĐž Ń
ĐžĐżĐŸĐłĐ»Đ”ĐșĐžĐŒĐžŃ
+ ĐŒĐžĐœ.
+ Ń.
+ ĐĐ°ĐșŃĐžĐŒĐ°Đ»ĐœĐž ĐŒĐžĐœŃŃĐž Đ·Đ° ĐŸĐłŃĐ°ĐœĐžŃĐ°ĐČĐ°ĐœĐ” ĐœĐ° базала ĐŸŃ SMB
+ ĐŃĐŸĐłŃĐ°ĐŒĐžŃĐ°ĐœĐ” ĐœĐ° ĐżĐŸĐŒĐżĐ° Đ·Đ° Đ±ĐŸĐ»ŃŃ
+ ĐĄŃŃŃĐŸŃĐœĐžĐ”
+ ĐĐșŃĐžĐČĐœĐŸŃŃ
+ ĐŃĐŒĐ° ĐČŃŃĐ·ĐșĐ° ĐŸŃ %d ĐŒĐžĐœ.
+ %d%% (%d ĐŒĐžĐœ. ĐŸŃŃĐ°ĐČĐ°Ń)
+ ĐĐœĐžŃОалОзаŃĐžŃ
+ ĐŃĐ”ĐșŃĐ°ŃĐ”Đœ ĐżĐŸŃĐ°ĐŽĐž ĐłŃĐ”ŃĐșĐ°
+ ĐŃĐ”ĐșŃĐ°ŃĐ”Đœ ĐŸŃ ĐżĐŸŃŃДбОŃДлŃ
+ ĐĐ·ĐżŃĐ»ĐœŃĐČĐ°
+ ĐŃĐșĐ°Đ·ĐČĐ° ĐČŃĐ”ĐŒĐ”ĐœĐ”Đœ базал
+ ĐĐ°ĐŽĐ°ĐČĐ° ĐČŃĐ”ĐŒĐ”ĐœĐ”Đœ базал (%d%% / %d min)
+ ĐĐŸĐ»ŃŃ (%.1f U)
+ ĐĐ±ĐœĐŸĐČŃĐČĐ°
+ ĐŃĐșĐ°ĐœĐ°ŃĐ° ĐŸĐżĐ”ŃĐ°ŃĐžŃ ĐœĐ” ŃĐ” ĐżĐŸĐŽĐŽŃŃжа ĐŸŃ ĐżĐŸĐŒĐżĐ°ŃĐ°
+ ĐпаŃĐœĐŸ ĐžĐ·ĐżĐŸĐ»Đ·ĐČĐ°ĐœĐ”: ŃĐŽŃĐ»Đ¶Đ”ĐœĐž ОлО ĐŒĐœĐŸĐłĐŸĐČŃĐ»ĐœĐŸĐČĐž Đ±ĐŸĐ»ŃŃĐž ŃĐ° Đ°ĐșŃĐžĐČĐœĐž. ĐĐŸĐŒĐżĐ°ŃĐ° Đ” ОзĐșĐ»ŃŃĐ”ĐœĐ° Đ·Đ° ŃĐ°ĐŒĐŸ 6 ŃĐ°ŃĐ°. ĐĄĐ°ĐŒĐŸ ĐœĐŸŃĐŒĐ°Đ»ĐœĐž Đ±ĐŸĐ»ŃŃĐž ŃĐ” ĐżĐŸĐŽĐŽŃŃжаŃ.
+ ĐпаŃĐœĐŸ ĐžĐ·ĐżĐŸĐ»Đ·ĐČĐ°ĐœĐ”: ĐżĐŸĐŒĐżĐ°ŃĐ° ĐžĐ·ĐżĐŸĐ»Đ·ĐČĐ° ŃазлОŃĐœĐž Đ±Đ°Đ·Đ°Đ»ĐœĐž ĐœĐžĐČĐ° ĐŸŃ ĐżŃŃĐČĐŸĐœĐ°ŃĐ°Đ»ĐœĐžŃ ĐżŃĐŸŃОл. Loop Đ” ŃĐżŃŃĐœ. ĐзбДŃĐ”ŃĐ” ĐżŃŃĐČĐŸĐœĐ°ŃĐ°Đ»ĐœĐžŃ ĐżŃĐŸŃОл Đž ĐŸĐ±ĐœĐŸĐČĐ”ŃĐ”.
+ ĐĐŸĐ»ŃŃĐž Ń Đ”ĐŽĐœĐŸ Đž ŃŃŃĐŸ ĐșĐŸĐ»ĐžŃĐ”ŃŃĐČĐŸ бŃŃ
Đ° ĐżĐŸĐžŃĐșĐ°ĐœĐž ĐČ ĐżĐŸŃĐ»Đ”ĐŽĐœĐžŃĐ” ĐŽĐČĐ” ĐŒĐžĐœŃŃĐž. ĐĐ° ĐŽĐ° ŃĐ” ĐżŃĐ”ĐŽĐŸŃĐČŃĐ°ŃĐž ĐŽŃблОŃĐ°ĐœĐ” ĐČĐ”ŃĐ” ĐŽĐŸŃŃĐ°ĐČĐ”Đœ Đ±ĐŸĐ»ŃŃ, ĐŸĐżĐ”ŃĐ°ŃĐžŃŃĐ° Đ” забŃĐ°ĐœĐ”ĐœĐ°.
+ ХДга
+ ĐĐžŃĐșĐŸ ĐœĐžĐČĐŸ ĐœĐ° ŃДзДŃĐČĐŸĐ°Ń ĐœĐ° ĐżĐŸĐŒĐżĐ°
+ ĐĐ°ŃĐ”ŃĐžŃŃĐ° ĐœĐ° ĐżĐŸĐŒĐżĐ°ŃĐ° Đ” Ńлаба
+ ĐĐŸĐŒĐżĐ°ŃĐ° ĐŸŃŃĐžŃĐ° ĐłŃĐ”ŃĐșĐ° E%d: %s
+ ĐĐ”ĐŸĐ±Ń
ĐŸĐŽĐžĐŒĐŸ Đ” ŃĐČĐ”ŃŃĐČĐ°ĐœĐ” ĐœĐ° ŃĐ°ŃĐ° ĐČ ĐżĐŸĐŒĐżĐ°ŃĐ°
+ ĐŃĐșĐ°Đ·ĐČĐ°ĐœĐ”ŃĐŸ ĐœĐ° ĐČŃĐ”ĐŒĐ”ĐœĐœĐžŃŃ Đ±Đ°Đ·Đ°Đ» бДŃĐ” ĐżĐŸŃĐČŃŃĐŽĐ”ĐœĐŸ
+ ĐĐŸĐŒĐżĐ°ŃĐ° Đ” ĐœĐ”ĐŽĐŸŃŃŃĐżĐœĐ°. ĐĐ” бДŃĐ” ĐŽĐŸŃŃĐ°ĐČĐ”Đœ Đ±ĐŸĐ»ŃŃ.
+ ĐĐŸĐ»ŃŃŃŃ Đ±Đ”ŃĐ” ĐœĐ”ŃŃпДŃĐ”Đœ. ĐĐ° ĐŽĐ° ŃŃĐ” ŃОгŃŃĐœĐž, ĐŒĐŸĐ»Ń, ĐżŃĐŸĐČĐ”ŃĐ”ŃĐ” ĐżĐŸĐŒĐżĐ°ŃĐ°, Đ·Đ° ĐŽĐ° ĐžĐ·Đ±Đ”ĐłĐœĐ”ŃĐ” ĐżĐŸĐČŃĐŸŃĐ”ĐœĐžĐ” ĐœĐ° ĐČĐ”ŃĐ” ĐŽĐŸŃŃĐ°ĐČĐ”Đœ Đ±ĐŸĐ»ŃŃ. ĐĐ° ĐŽĐ° ŃĐ” ĐžĐ·Đ±Đ”ĐłĐœĐ°Ń Đ±ŃĐłĐŸĐČĐ” Đ±ĐŸĐ»ŃŃĐžŃĐ” ĐœĐ” ŃĐ” ĐżĐŸĐČŃĐ°ŃŃŃ Đ°ĐČŃĐŸĐŒĐ°ŃĐžŃĐœĐŸ.
+ ĐĄĐ°ĐŒĐŸ %.2f U ĐŸŃ ĐžŃĐșĐ°ĐœĐžŃ Đ±ĐŸĐ»ŃŃ ĐŸŃ %.2f U Đ” ĐŽĐŸŃŃĐ°ĐČĐ”Đœ ĐżĐŸŃĐ°ĐŽĐž ĐłŃĐ”ŃĐșĐ°. ĐĐŸĐ»Ń, ĐżŃĐŸĐČĐ”ŃĐ”ŃĐ” ĐżĐŸĐŒĐżĐ°ŃĐ°, Đ·Đ° ĐŽĐ° ĐżĐŸŃĐČŃŃĐŽĐžŃĐ” ŃĐŸĐČĐ° Đž ĐŽĐ° ĐżŃДЎпŃĐžĐ”ĐŒĐ”ŃĐ” ŃŃĐŸŃĐČĐ”ŃĐœĐžŃĐ” ĐŽĐ”ĐčŃŃĐČĐžŃ.
+ Insight
+ Insight ĐżĐŸĐŒĐżĐ°
+ ĐĄŃĐ°ŃŃŃ
+ ĐŃĐŸĐŒĐ”ĐœĐ”ĐœĐŸ
+ ĐĐĐĐĐйРРХĐĐ ĐŻĐĐ
+ ĐĄŃĐ°ŃŃŃĐ° Đ” Đ°ĐșŃŃалОзОŃĐ°Đœ
+ ĐżŃДЎО
+ Ń
+ ĐĐșŃĐžĐČĐ”Đœ ĐČŃĐ”ĐŒĐ”ĐœĐ”Đœ базал
+ ĐŒĐžĐœ. ĐŸŃŃĐ°ĐČĐ°Ń
+ ĐŃŃĐŸŃĐžŃ
+ ĐĐŸŃĐ»Đ”ĐŽĐœĐŸ ОзĐČŃŃŃĐ”ĐœĐŸ ĐŽĐ”ĐčŃŃĐČОД
+ ĐŒĐžĐœ.
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index acd0a5df3a..d4b1a0f9dc 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -193,7 +193,7 @@
Provedeno
LicenÄnĂ ujednĂĄnĂ
ROZUMĂM A POTVRZUJI
- hodin zpÄt
+ pĆed %.1fh
Nenalezen bluetooth adaptér
Procent
Obnovit profil
@@ -484,7 +484,7 @@
VzdĂĄlenĂœ pĆĂkaz nenĂ povolen
K pozastavenĂ smyÄky na %d minut odpovÄz SMS s kĂłdem %s
ChybnĂĄ doba trvĂĄnĂ
- Logovat spuĆĄtÄnĂ aplikace do NS
+ ZaznamenĂĄvat spuĆĄtÄnĂ aplikace do NS
UkonÄuji aplikaci, aby se nastavenĂ projevilo.
InzulĂn
RychlĂœ inzulĂn
@@ -814,7 +814,7 @@
Podkategorie
Kategorie
Bolus bude pouze zaznamenĂĄn
- Automaticky doplĆovat chybÄjĂcĂ glykĂ©mie z NS
+ Automaticky doplĆovat chybÄjĂcĂ glykĂ©mie z NS
Hypoglykémie
Citlivost
Odchylky
@@ -841,4 +841,99 @@
PĆepnutĂ profilu chybĂ. ProveÄte pĆepnutĂ profilu nebo ho aktivujte na zĂĄloĆŸce lokĂĄlnĂho profilu
PoÄet bolusĆŻ
PoÄet doÄasnĂœch bazĂĄlĆŻ
+ VarovĂĄnĂ W31: NĂzkĂœ stav zĂĄsobnĂku
+ VarovĂĄnĂ W32: NĂzkĂœ stav baterie
+ VarovĂĄnĂ W33: ChybnĂœ datum/Äas
+ VarovĂĄnĂ W34: Konec zĂĄruky
+ VarovĂĄnĂ W36: UkonÄenĂ doÄasnĂ©ho bazĂĄlu
+ VarovĂĄnĂ W38: Bolus pĆeruĆĄen
+ ĂdrĆŸba M20: NenĂ vloĆŸenĂœ zĂĄsobnĂk
+ ĂdrĆŸba M21: ZĂĄsobnĂk prĂĄzdnĂœ
+ ĂdrĆŸba M22: PrĂĄzdnĂĄ baterie
+ ĂdrĆŸba M23: AutomatickĂ© vypnutĂ
+ ĂdrĆŸba M24: Okluze
+ ĂdrĆŸba M26: VĂœmÄna zĂĄsobnĂku nekompletnĂ
+ ĂdrĆŸba M27: StaĆŸenĂ dat selhalo
+ ĂdrĆŸba M28: VyprĆĄenĂ pozastavenĂ
+ ĂdrĆŸba M29: Nenastaven typ baterie
+ ĂdrĆŸba M30: Nenastaven typ zĂĄsobnĂku
+ Chyba E6: MechanickĂĄ chyba
+ Chyba E7: Chyba elektroniky
+ Chyba E10: Chyba pĆevĂjenĂ
+ Chyba E13: Chyba jazyka
+ MM640g
+ %.2f U/h
+ Pumpa nedostupnĂĄ. Bolus nebyl podĂĄn
+ Bolus zastaven
+ ZastavovĂĄnĂ bolusu
+ Pumpa zastavena
+ Pumpa spuĆĄtÄna
+ Pumpa pozastavena
+ MaximĂĄlnĂ poÄet minut bazĂĄlu, ke kterĂœm se limituje SMB
+ Ăprava cĂlovĂ© glykĂ©mie pomocĂ Autosens
+ TrvĂĄnĂ doÄasnĂ©ho cĂle pĆi hypoglykĂ©mii
+ CĂlovĂĄ glykĂ©mie pĆi hypoglykĂ©mii
+ m
+ h
+ VĂœukovĂœ cĂl %d nespuĆĄtÄn
+ Novorapid, Novolog, Humalog
+ VĂœukovĂœ cĂl %d nedokonÄen
+ Pumpa nepodporuje doÄasnĂ© bazĂĄly
+ Z pumpy nepĆeÄten ĆŸĂĄdnĂœ platnĂœ bazĂĄl
+ UzavĆenĂĄ smyÄka zakĂĄzĂĄna v nastavenĂ
+ Autosens zakĂĄzĂĄn v nastavenĂ
+ SMB zakĂĄzĂĄno v nastavenĂ
+ Max bazĂĄl omezen na %.2f U/h: %s
+ limit pumpy
+ poĆadovĂĄna kladnĂĄ hodnota
+ maximĂĄlnĂ nĂĄsobek bazĂĄlu
+ mazimĂĄlnĂ nĂĄsobek nejvyĆĄĆĄĂho bazĂĄlu
+ OdeslĂĄn bolus bÄhem poslednĂch 3 minut, SMB pĆeskoÄeno
+ BazĂĄl nastaven sprĂĄvnÄ
+ BazĂĄl omezen na %d%%: %s
+ Bolus omezen na %.1f U: %s
+ Max IOB omezeno na %.1f U: %s
+ Sacharidy omezeny na %d g: %s
+ IOB omezeno na %.1f U: %s
+ maximĂĄlnĂ hodnota v nastavenĂ
+ pevnĂœ limit
+ nebezpeÄnĂ© pouĆŸitĂ
+ NaÄtenĂ stavu selhalo
+ Zaznamenat vĂœmenu setu
+ Zaznamenat vĂœmenu inzulĂnu
+ \"SMB vĆŸdy\" a \"po jĂdle\" zakĂĄzĂĄno protoĆŸe zdroj glykĂ©mie nepodporuje rozĆĄĂĆenĂ© filtrovĂĄnĂ
+ SBM nenĂ povoleno v otevĆenĂ© smyÄce
+ JĂdlo
+ reset
+ ÄekĂĄnĂ na synchronizaci Äasu (%d s)
+ Odpojeno (%d m)
+ AutomatickĂ© vklĂĄdĂĄnĂ pĂ©Äe
+ Automaticky vloĆŸĂ vĂœmÄnu inzulĂnu, setu, baterie a alarmĆŻ pumpy do NS
+ MaximĂĄlnĂ celkovĂ© IOB, kterĂ© OpenAPS nemĆŻĆŸe pĆekroÄit [U]
+ Tato hodnota je v kontextu OpenAPS nazĂœvĂĄna Max IOB. OpenAPS nikdy nepĆidĂĄ inzulĂn, pokud je souÄasnĂ© IOB vÄtĆĄĂ neĆŸ tato hodnota
+ MaximĂĄlnĂ doba absorbce sacharidĆŻ [h]
+ Doba, po kterĂ© jsou vĆĄechny sacharidy povaĆŸovĂĄny za strĂĄvenĂ©. ZbylĂ© budou oĆĂznuty
+ Äas
+ Zobrazovat kolonku poznĂĄmky v dialozĂch oĆĄetĆenĂ
+ PoĆŸadovĂĄno: %.2fU DoruÄeno: %.2fU Chyba: %d
+ PrvnĂ pĆĂdavek izulĂnu
+ DruhĂœ pĆĂdavek inzulĂnu
+ TĆetĂ pĆĂdavek inzulĂnu
+ PrvnĂ pĆĂdavek sacharidĆŻ
+ DruhĂœ pĆĂdavek sacharidĆŻ
+ TĆetĂ pĆĂdavek sacharidĆŻ
+ CGM
+ PouĆŸĂvat pouze WiFi
+ WiFi SSID
+ Pouze pĆi nabĂjenĂ
+ NastavenĂ pĆipojenĂ
+ PovolenĂ© SSID (oddÄlenĂ© stĆednĂkem)
+ Povolit pĆipojenĂ pro roamingu
+ Max hodnota autosens
+ Min hodnota autosens
+ DÄlitel \"bolus snooze\"
+ Max nĂĄsobitel dennĂho nejvyĆĄĆĄiho bazĂĄlu
+ Max nĂĄsobitel souÄasnĂ©ho bazĂĄlu
+ ---
+ DoplĆovĂĄnĂ glykĂ©mĂĂ z NS
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index dc28ebaeb7..b078523a63 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -174,8 +174,8 @@
Absolut
Bolus fehlgeschlagen
TBR abbrechen
- TemorÀres Ziel
- TemorÀres Ziel abbrechen
+ TemporÀres Ziel
+ TemporÀres Ziel abbrechen
Kommentar
Verbunden
Verbinden
@@ -331,7 +331,6 @@
AktivitÀt
Erwachsener
Erweiterte Einstellungen
- AndroidAPS
BAS
Basal-Schritt
Wert der Basalrate unter Minimum. Profil nicht gesetzt!
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index 6cb7a1a252..7c23e3513d 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -1,6 +1,5 @@
- AndroidAPS
ÎÏÏΏλΔÎčα ÎΔÏαÏΔÎčÏÎœ
ÎÎÎłÎčÏÏÎż ÎÏÎčÏÏΔÏÏÏ bolus[U]
ÎÎÎłÎčÏÏÎż ÎÏÎčÏÏΔÏÏÏ Ï
ΎαÏ.[g]
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 1fc2769177..c737dfa5aa 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -358,7 +358,6 @@
NĂșmero de telĂ©fono invĂĄlido
Esperando bomba
Italian
- AndroidAPS
hollandes
Griego
Ruso
@@ -474,9 +473,9 @@
Adulto
Por favor elige edad del paciente para emplear limites de seguridad
Glimp
- Aparato parece no soportar optimisacion de bateria whitelisting!
+ Aparato parece no soportar optimizacion de bateria whitelisting!
Por favor permita Permission
- %s necesita optimisacion de bateria whitelisting para funcionar bien
+ %s necesita optimizacion de bateria whitelisting para funcionar bien
Loop desactivado
desactivado (%d m)
Superbolus (%d m)
@@ -518,8 +517,8 @@
xds
Mostrar BGI
agregar BGI a status line
- No upload to NS
- Todos los datos mandados a NS son borrados. AAPS esta conectado to NS pero no hay cambios en NS
+ datos no mandados a NS
+ Todos los datos mandados a NS son borrados. AAPS esta conectado a NS pero no hay cambios en NS
Nivel base
Nivel bolo
Bolo prolongado
@@ -564,7 +563,7 @@
UPLD
BAS
EXT
- Pantalle proteccion
+ Pantalla proteccion
Cierre
Al activar autosens recuerda editar todos carbohidratos comidos. Si no, sensividad serĂĄ calculada incorrectamente !!!
Sensitivity WeightedAverage
@@ -577,7 +576,7 @@
ACTIVITY Y FEEDBACK
CARBS Y BOLUS
CGM Y OPENAPS
- PUMP
+ BOMBA
Valor base [U/h]
Duracion [min]
IOB Curve Peak Time
@@ -593,13 +592,13 @@
Coneccion OK
Coneccion fuera de tiempo
CONECTANDO
- aparato no enconrado
+ aparato no encontrado
Deposito vacio
Alerta de control de BG
Insulina restante en deposito
DanaRS
Dana
- Bomba sleccionada
+ Bomba seleccionada
Conectar bomba nueva
Velocidad bolo
Poner paso base a 0.01 U/h
@@ -615,7 +614,7 @@
recibiendo estado de bolo prolongado
recibiendo estado bolo
recibiendo estado bolo temporal
- recibiendo ahÂŽjustes bomba
+ recibiendo ajustes bomba
recibiendo hora bomba
usar otra vez
Control desde reloj
@@ -629,9 +628,9 @@
Pr
Grasa
]]>
- Esperande terminar bolo. Faltan %d seg.
+ Esperando terminar bolo. Faltan %d seg.
Processando
- "Iniciando emisioin bolo "
+ "Iniciando emision bolo "
Orden se esta efectuando en este momento
control de la bomba corigido
bomba no alcanzable
@@ -703,7 +702,7 @@
Se necesita actualizar reloj de la bomba
Alerta
TBR cancelada, advertencia acceptada
- Emision del bolo fallado. NingĂșn bolo se ha emitido. Para asegurarse, por favor controle la bomba para evitar bolo doble. Para evitar bugs no se reinician bolos automaticamente.
+ Emision del bolo fallada. NingĂșn bolo se ha emitido. Para asegurarse, por favor controle la bomba para evitar bolo doble. Para evitar bugs no se reinician bolos automaticamente.
"Solo %.2f U del bolo mandado de %.2f U ha sido emitido por causa de un error. Por favorn controla la bomba para confirmar y toma acciones apropiadas. "
"Fallo de emitir bolo y de controlar historical de la bomba.Por favor controla manualmente y crea un record en Careportal si el bolo ha sido emitido. "
Reestablecido coneccion fallada.
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index cedf15bd5e..1db4265171 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -1,6 +1,5 @@
- AndroidAPS
Traitements de sécurité
Bolus max. autorisé [U]
Glucides max. autorisés [g]
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 3c738259b3..5d572ed93a 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -457,6 +457,5 @@
Profilo NS
Profilo Basale aggiornato nel Micro
Impostazione Profilo Basale fallito
- AndroidAPS
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index 55d0d9ba64..dd14859672 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -677,7 +677,6 @@
COB berekening
]]>
]]>
- AndroidAPS
BG beschikbaar op gekozen bron
Enkel positief
Enkel negatief
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index d04b486b95..9a57c5f366 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -521,7 +521,6 @@
ŃĐŸŃŃĐŸŃĐœĐžĐ” xdrip (ŃĐ°ŃŃ)
xds
ŃĐ°Đ·ŃĐ”ŃĐ”ĐœĐœŃĐč ĐżŃДЎДл ĐŽĐŸŃŃĐžĐłĐœŃŃ
- AndroidAPS
ĐĐ¶ĐžĐŽĐ°Đ”ĐŒĐŸĐ” ĐČŃĐ”ĐŒŃ ŃŃĐČĐ°ĐžĐČĐ°ĐœĐžŃ ĐČŃĐ”Ń
ŃглДĐČĐŸĐŽĐŸĐČ ĐżĐžŃĐž ĐČ ŃĐ°ŃĐ°Ń
ĐĐ°ĐșŃĐžĐŒĐ°Đ»ŃĐœĐŸĐ” ĐČŃĐ”ĐŒŃ ŃŃĐČĐ°ĐžĐŒĐŸŃŃĐž пОŃĐž
ĐĐ°ŃŃŃĐŸĐčĐșĐž ŃŃĐČĐ°ĐžĐČĐ°Đ”ĐŒĐŸŃŃĐž
diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml
index 47bd827e0a..9d9539ec20 100644
--- a/app/src/main/res/values-sv/strings.xml
+++ b/app/src/main/res/values-sv/strings.xml
@@ -2,58 +2,60 @@
Avbryt
Glimp
- MM640g
+ Minimed 640g
Absolut
- Ă
tgÀrd
- ACT
+ Ă
tgÀrder
+ Act
Aktivitet
Vuxen
Avancerade instÀllningar
- Starta om telefonen eller AndroidAPS from systeminstÀllningar
- AnvÀnd alltid kort medel delta istÀllet för enkel delta
+ Starta om telefonen eller AndroidAPS frÄn systeminstÀllningar, annars kommer Android APS inte kunna logga fel (viktigt att kunna spÄra och verifiera att algoritmerna fungerar korrekt)!
+ AnvÀnd alltid kort medeldelta istÀllet för enkel delta
AnvÀndbart nÀr ofiltrerade kÀllor som xDrip ger brusvÀrden
AndroidAPS startar
- Snart daglig max av insulin
- APS Mode
+ Maximal daglig dos snart nÄdd
+ APS-lÀge
+ Medeldelta
Basal
- Basal E/tim
- Basal steg
- Basal understiger min.nivÄ. Ingen profil satt
- Pump Batteri Urladdat
+ Basal:
+ Basalsteg
+ Basal saknas i profil. AnvÀnder standardvÀrde.
+ BR
+ Basal understiger miniminivÄ. Profilen sattes inte.
+ Basalprofil:
+ Pumpbatteri urladdat
Bolus
- Bolus Steg
- Bolus spÀrr aktiverad
- Bolus %.2fU korrekt tillförd
- Ger %.2fU
- Kommer att ge %.2fU
+ Bolussteg
+ BolusspÀrr aktiverad
+ Bolus %.2f enheter korrekt tillförd
+ Ger %.2f enheter
+ Kommer att tillföra %.2f enheter
Knapp 1
Knapp 2
Knapp 3
Kalibrering skickad till xDrip
- Avbryt Temp Basal
+ Avbryt temp basal
Kolhydrater
- Kohydrat spÀrr aktiverad
+ KolhydratsspÀrr aktiverad
Careportal
Meddelande
- BG Kontroll
- Kanyl Ă„lder
- Kolhydrat korrektion
- CGM Sensor InsÀttning
- CGM Sensor Start
- Combo Bolus
- Korrektion Bolus
+ BG-kontroll
+ KanylÄlder
+ Byte CGM-sensor
+ CGM-sensor start
+ Kombinationsbolus
+ Korrektionsbolus
TrÀning
- Insulin Ă
lder
- Insulin Reservoir Byte
- MĂ„ltids Bolus
+ InsulinÄlder
+ Byte insulinreservoar
+ MĂ„ltidsbolus
Absolut
- Kolhydrater
- KH tid
+ KH
+ KH-tid
Duration
Infört av
Tid för hÀndelse
- HĂ€ndelse typ
- Glukos sort
+ HĂ€ndelsetyp
Insulin
MĂ€tare
Notering
@@ -63,197 +65,209 @@
Sensor
Delad
Notering
- OpenAPS Offline
- Pump Batteri Ă
lder
- Profil Byte
- Pump Kanyl Byte
+ OpenAPS offline
+ Pumpbatteri Ă„lder
+ Byt profil
+ Byte pumpkanyl
FrÄga
CP
- Snack Bolus
- Temp Basal Slut
- Temp Basal Start
- Temp MĂ„l BG
- Temp MĂ„l BG Slut
+ MellanmÄlsbolus
+ Temp basal slut
+ Temp basal start
+ Temp mÄl
+ Temp mÄl avbrutet
Ăndra inmatning
Barn
- Ta bort kö
- Rensa inmatningar
+ Cirkadisk Profil Procent
+ CPP
+ Töm kö
+ Töm logg
Closed Loop
COB
Kommentar
Konfigurationsverktyg
APS
BG KĂ€lla
- BegrÀnsningar
+ BegrÀnsningar
Generell
Insulin
Loop
- Nightscout version:
+ Nightscoutversion:
Profil
Pump
- KONF
- Ă
tgÀrd
- BekrÀftelse
- Sammankopplad
- Sammankopplar
- Sammankoppling till pump förlorad
- BegrÀnsning aktiverad
- BegrĂ€nsning ĂvertrĂ€delse
- Kopierad till Clipboard
- Kopiera till Clipboard
+ Konf
+ Tempbasaler
+ Behandlingar
+ BekrÀfta
+ Ansluten
+ Ansluter
+ Anslutningsfel pump
+ BegrÀnsning nÄdd
+ BegrÀnsning nÄdd
+ Kopierat till Urklipp
+ Kopiera till Urklipp
Korr
- CZ
- Alarm
+ larm
basal tim
- Bluetooth Status
+ Bluetoothstatus
DanaR Bluetooth Pump
kolhydrat
- Enheter/Dag
- Avaktivera EasyUI mode in pump
- Aktivera förlÀngd bolus i pump
- Fel
- Glukos
- Historia
+ Enheter per dag
+ Avaktivera EasyUI mode in pumpen
+ Aktivera förlÀngd bolus i pumpen
+ fel
+ glukos
+ Historik
Larm
- Basal Timmar
+ Basaltimmar
Bolusar
Kolhydrater
- Sammankopplar för %d s
+ Ansluter (%d s)
Daglig insulinmÀngd
Fel
Glukos
- PĂ„fyllnad
+ PĂ„fyllning
Stoppa
- Ladda om
- Fel pÄ inlagd data
+ HĂ€mta
+ Fel pÄ inmatad data
Pump IOB
- Sista bolus
- Lösenord Pump
- DanaR pump instÀllningar
- PĂ„fyllnad
+ Senaste bolus
+ Lösenord pump
+ DanaR pumpinstÀllningar
+ pÄfyllning
Kumulativ TDD
Datum
Exponentiellt viktad TDD
- Gammal Data Vg tryck \"Ladda om\"
+ Gammal data. Tryck pÄ HÀmta.
Kvot
- AnvÀnd förlÀngd bolus med >200%
- VĂ€rde ej korrekt angivet
- Se profil
- Se förlÀngd bolus som %
+ AnvÀnd förlÀngd bolus för att ange >200%
+ Misslyckades med instÀllning
+ Visa profil
+ Visa förlÀngd bolus som %
DanaR Korea
- DanaR profil instÀllningar
- DIA (h)
+ DanaR profilinstÀllningar
+ DIA [tim]
Insulinets verkningstid (DIA)
DanaR
- DANA
+ Dana
dagar
- Deutsch
- Ge nu
+ Synkronisera nu
Delta
- Vald enhet ej funnen
- DIA
- Loop FrÄnkopplad
- FrÄnkoppla pump i 1 h
+ DEV
+ Vald enhet kan inte nÄs
+ DIA:
+ Loop frÄnkopplad
+ Koppla ifrÄn pump i 1 h
StÀng av loop
FrÄnkopplad
- FrÄnkopplar
- FrÄnkoppla pump i 2 h
- FrÄnkoppla pump i 15 min
- FrÄnkoppla pump i 30 min
- FrÄnkoppla pump i 3 h
+ Kopplar ifrÄn
+ Koppla ifrÄn pump i 10 h
+ Koppla ifrÄn pump i 2 h
+ Koppla ifrÄn pump i 30 min
+ Koppla ifrÄn pump i 3 h
TA BORT
+ Ignorera profilbyten
+ Alla profilbyten ignoreras och aktiv profil anvÀnds alltid
+ Visa inte detta igen
Duration
Ăta snart
- English
+ Ăndra grundbasal:
+ Startad
Starta loop
Aktivera superbolus i kalkylatorn
- Aktivera superbolus funktionen i kalkylatorn. Aktivera inte innan du förstĂ„tt hur den fungerar. DEN KAN ORSAKA ĂVERDOSERING AV INSULIN OM INSIKT SAKNAS OM FUNKTIONEN
+ Aktiverar superbolusfunktionen i kalkylatorn. Aktivera inte innan du förstĂ„tt hur den fungerar. DEN KAN ORSAKA ĂVERDOSERING AV INSULIN OM INSIKT SAKNAS OM FUNKTIONEN!
Aktiverad
- Licensavtal för SlutanvÀndare
+ Licensavtal för slutanvÀndare
JAG FĂRSTĂ
R OCH GODKĂNNER
- Ange ny behandling
+ Ange ny behandling:
Denna kolumn fÄr ej vara tom
- Endast siffror fÄr anvÀndas
- Endast siffror Àr tillÄtna inom %1$s - %2$s
- Ej giltigt telefonnummer
- Spanska
+ Endast siffror tillÄtna.
+ Endast siffror mellan %1$s - %2$s Àr tillÄtna.
+ Ogiltigt telefonnummer
Utför
Exportera instÀllningar till
InstÀllningar exporterade
- FörlÀngdBolus
- Lyckades ej uppdatera basalprofil
- Snabbverkande Insulin
+ FörlÀngd bolus
+ Lyckades inte uppdatera basalprofilen
+ Snabbverkande Insulin (gammal berÀkningsmodell)
Novorapid, Novolog, Humalog, Apidra
- Data ej funnen
- Fyll/Förfyll standard insulin mÀngd
- Vg försÀkra dig om att mÀngd motsvarar det som Àr specificerat för just ditt infusionsset
- HĂ€mtar pump status
+ Hittade inte filen
+ StandardvÀrden för prime/fyll.
+ FörsÀkra dig om att mÀngden motsvarar det som Àr specificerat för just ditt infusionsset.
+ HĂ€mtar pumpstatus
Glukos
Finger
Sensor
- HĂG markering
+ HĂG-markering
timmar
+ %.1f tim sedan
Importera instÀllningar frÄn
- StartarâŠ
- Ogiltig profil !!!
+ Startar...
+ Ogiltig profil!
IOB
- Italienska
- Koreanska
SprÄk
- Lokal Profil
+ Lokal profil
LP
Loop
APS
- Efter avklarade begrÀnsningar
- LOOP
+ Efter begrÀnsningar
+ InstÀllning i pump
+ Loop
LOOP STOPPAD PGA BEGRĂNSNINGAR
- Superbolus (%d m
- Loop avstÀngd
- LĂ
G markering
- Svagt Batteri
- Manual
+ Loop meny
+ Superbolus (%d min)
+ Loop pausad
+ LĂ
G-markering
+ Svagt batteri
+ Manuell
Avbryt
MĂ„ltid
- Fattas
+ Saknas
Om
- Exit
+ Backup
+ Avsluta
Exportera instÀllningar
Importera instÀllningar
InstÀllningar
Uppdatera behandlingar frÄn NS
- Ă
terstÀll Databaser
- Visa log
+ Ă
terstÀll databaserna
+ Visa logg
+ Testa alarm
Nightscout
INGEN APS VALD
- Ingen Bluetooth adapter funnen
+ Ingen Bluetooth-adapter funnen
Ingen Àndring behövs
- Ingen profil laddad Ànnu frÄn NS
+ Ingen profil laddad frÄn Nightscout Ànnu
Ingen profil vald
INGEN PROFIL VALD
misslyckat - vg kontrollera telefonen
Ej tillgÀngligt
- NSCLIENT har inga skrivrÀttigheter. Fel API secret?
+ NS Client har inga skrivrÀttigheter. Fel API secret?
Alarm instÀllningar
- Medge lokal sÀndning till andra appar (ex xDrip)
- Aktivera lokal Broadcasts
- Markera app start till NS
- Ingen uppladdning till NS
- Ingen data sÀnds till NS. AAPS kommunicerar med NS men inga Àndringar görs i NS
+ SlÄ pÄ sÀndning av data till alla appar i telefonen (ex xDrip).
+ Aktivera lokala broadcasts
+ Markera app start till Nightscout
+ Ingen uppladdning till Nightscout
+ Ingen data sÀnds till Nightscout. AAPS ansluter till Nightscout men inga Àndringar görs i Nightscout.
AnvÀnd alltid absoluta vÀrden i basal
- Endast uppladdning till NS (avaktiverad sync)
- Endast uppladdning till NS. Fungerar ej med SGV om inte lokal kÀlla som xDrip anvÀnds. Inte effektiv med Profiler om NS-Profiler anvÀnds
+ Endast uppladdning till Nightscout
+ Endast uppladdning till Nightscout. Kommer inte fÄ BG-data om inte lokal kÀlla som xDrip anvÀnds. Kommer heller inte att kunna hÀmta basalprofiler frÄn Nightscout.
Hög
LĂ„g
Gammal data
- Ange NS API sectet (min 12 tecken)
+ NSClient
+ Ange enhetens namn
+ Enhetens namn
+ Ange NS API secret (min 12 tecken)
NS API secret
NSClient Àr inte installerad. Data förlorad!
Nightscout URL
- Enter Nightscout URL
+ Ange Nightscout URL
URL:
NSClient
NSCI
NS API secret
+ Aktiv profil
Basal
DIA
IC
@@ -261,9 +275,9 @@
MÄlvÀrde
Enheter
OAPS
- MĂ„l/Syfte
- Kontrollera att BG syns i NS, och att pump insulin data laddas upp
- StÀlla in utseende och övervakning, för att sedan kunna analysera basaler och kvoter
+ MĂ„l
+ Kontrollera att BG syns i Nightscout och att insulindata frÄn pumpen laddas upp
+ StÀller in utseende och övervakning för att sedan kunna analysera basaler och kvoter
Du har nÄtt din tillÄtna grÀns
xds
xDrip Status (klocka)
@@ -274,44 +288,49 @@
Fel lösenord
Visa BGI
Visa BGI i statusfÀlt
- WEAR
- Wear instÀllningar
+ Wear
+ InstÀllningar för Wear
Visa detaljerad IOB
Visa IOB med bolus och basal pÄ klocka
Wear
VÀntar pÄ resultat
+ VÀntar pÄ pump. Klicka för att uppdatera.
VÀntar pÄ pump
- Virtuell
- Ladda upp till NS
+ Virtuell pump
+ Synlig
+ Ladda upp status till Nightscout
Temp basal
- VPUMP
- Virtuell pump instÀllningar
+ SQL-fel
+ vPump
+ InstÀllningar för Virtuell pump
OK
- Reservoir
- Sista kontakt
- Programversion
+ Reservoar
+ Senast ansluten
+ Firmwareversion
FörlÀngd bolus
Batteri
- Grund basal hastighet
- Virtuell Pump
- Uppladdning
- Uppdaterar basal hastigheter
- Version av NS som inte stöds
+ Profilens basalhastighet
+ Virtuell pump
+ Laddar upp
+ Uppdaterar basalhastigheter
+ Upp
+ Version av Nightscout som inte stöds
Version av NSClient som inte stöds
LÄs upp instÀllningar
Enheter:
SĂ€kerhet vid behandling
- Max tillÄtna KH (g)
+ Max tillÄtna KH [g]
Max tillÄten bolus [E]
- E
+ E
+ TOTAL
Korr
COB
KH
Bolus IOB
- 15min trend
+ 15 min trend
BG
Basal IOB
- TREAT
+ Beh
Insulin
KH
Total IOB:
@@ -321,226 +340,571 @@
KH:
Aktivitet:
Behandlingar
- Bolus ej tillförd
- TempMĂ„l
+ Fel vid bolusleverans
+ TT
+ Temp mÄl
+ TB
Dur:
Kvot:
Ins:
Total IOB:
IOB:
- Tempbasal ej tillförd
- Tempbasal
+ Fel vid justering av tempbasal
+ Temp basal
TonÄring
- MÄl grÀnser:
- StÀng av loop i 3 h
- StÀng av loop i 2 h
- StÀng av loop i 1 h
- StÀng av loop i 10 h
+ MÄl saknas i profil. AnvÀnder standardvÀrde.
+ MÄlomrÄde:
+ Pausa loop i 3 h
+ Pausa loop i 2 h
+ Pausa loop i 1 h
+ Pausa loop i 10 h
Superbolus
Lyckad
- Stoppar temp basal
- Stoppar förlÀngd bolus
+ Avbryter temp basal
+ Avbryter förlÀngd bolus
Status:
Fel duration:
OkÀnt kommando eller fel svar
- Temp basal %.2fU/h for %d min startad
- Fel vid Temp basal start
- Gick ej att avbryta temp basal
+ Tempbasal %.2f enheter/tim i %d min startad
+ Fel vid start av temp basal
+ Misslyckades med att avbryta temp basal
Temp basal avbruten
- För att avbryta loop i %d minuter svara med kod %s
+ För att pausa loop i %d minuter, svara med kod %s
SMS
- TillÄt fjÀrrkommandon via SMS
- FjÀrrkommandon tillÄts ej
- Kalibrering frÄn andra kÀllor godkÀnns ej
+ TillÄt fjÀrrstyrning via SMS
+ Kalibrering frÄn andra kÀllor inte tillÄtna
FjÀrrbolus Àr inte tillÄtet
FjÀrrkommandon för att Àndra basaler tillÄts ej
- Ej godkÀnd för SMS
- Loop avstÀngd
- Loop Ă„ter startad
+ Saknar rÀttighet att skicka SMS
+ Loop pausad
+ Loop Ă„terupptagen
Loop Àr aktiverad
Loop Àr avstÀngd
Loop Àr aktiverat
Loop Àr avstÀngd
- Icke giltigt telefonnummer för SMS
- Kalibrering skickad. xDrip mÄste tillÄta att ta emot kalibrering i instÀllningarna
- För att skicka kalibrering %.2f svar med kod %s
+ Ogiltigt telefonnummer för SMS
+ Kalibrering skickad. xDrip mÄste tillÄta att ta emot kalibrering i instÀllningarna.
+ För att skicka kalibrering %.2f, svara med kod %s
xDrip tar inte emot kalibreringar
- För att ge bolus %.2fU svar med kod %s
- Bolus ej given
- Bolus %.2fU tillförd
- För att stoppa temp basal svara med kod %s
- För att starta basal %.2fU/h svara med kod %s
+ För att ge bolus %.2f enheter, svara med kod %s
+ Bolus avbruten
+ Bolus %.2f enheter tillförd
+ För att stoppa temp basal, svara med kod %s
+ För att starta basal %.2f enheter/tim, svara med kod %s
+XXXXXXXXXX;+YYYYYYYYYY
- TillÄtna telefonnummer
- SMS TjÀnst
+ GodkÀnda telefonnummer
+ SMS-tjÀnst
Senaste BG:
Enkel profil
Visa kö
Lösenord för instÀllningar
- StÀll in förlÀngd bolus
- instÀllningar importerade
+ StÀller in förlÀngd bolus
+ InstÀllningar importerade
StÀll in ny förlÀngd bolus:
- Acceptera ny temp basal:
+ Acceptera ny tempbasal:
Skicka kalibrering %.1f till xDrip?
+ SKICKA
Spara
SĂ€kerhet
Ă
teruppta
Resultat
- GÄ ur applikationen för att starta instÀllning
+ Avslutar appen för att instÀllningarna ska lÀsas in.
Omstart
- Vill du verkligen ÄterstÀlla databasen?
- Ă
tersÀnd all Data
+ Vill du verkligen ÄterstÀlla databaserna?
+ Uppdatera all data
Ta bort sparad data:
Ladda om profil
- Uppdatera hÀndelser frÄn NS
+ Uppdatera hÀndelser frÄn Nightscout
Orsak
+ RAT
Hastighet
- Kalkylator instÀllningar
+ KalkylatorinstÀllningar
Kalkylator
Kö:
- Pump stoppad
+ Pump pausad. Klicka för ladda om status.
+ Pump pausad
Pump avstÀngd
Pumpfel
Pump upptagen
- Pump inte igÄngsatt, ingen profil vald
- Pump inte startad
+ Pump inte initierad, ingen profil vald.
+ Pump inte initierad
Pump
- NSPROFIL
- NS Profil
- ProfilByte
- Basal profil i pump uppdaterad
- Ny basal profil misslyckades
+ NSProfil
+ NS profil
+ Profilbyte
+ Basalprofilen uppdaterad i pumpen
+ Lyckades inte sÀtta basalprofilen
Profil
Prime/Fyll
- GrÀnsvÀrden för Visualisering
- Högt och lÄgt vÀrde för graf i översikten och i smartwatch
- Vg ge tillÄtelse
+ GrÀnsvÀrden för visualisering
+ Högt och lĂ„gt vĂ€rde för grafen i Ăversikt och i smartwatch
Procent
+ Procentfaktor med vilken basalprofilen kommer att bli multiplicerad.
Pausad
Vg ange personens Älder för instÀllningar av grÀnser
Personens Ă„lder
- TempBasal
- Hemma
+ Temp basal
+ Hem
Ta bort
- Editera
- % (100% = current)
- Stoppa FörlÀngd Bolus
- FörlÀngd Bolus
+ Ăndra
+ % (100% = profilens vÀrde)
+ Stoppa förlÀngd bolus
+ FörlÀngd bolus
LĂ€gg till
Giltig:
KH:
- Knapp text:
+ Knapptext:
Kalibrering
Kalibrering
Kalkylator
STOPP NEDTRYCKT
Stoppad
Stopp
- Kommer tillföra %.2fU
+ Kommer tillföra %.2f enheter
Tillförd
- Bolus
+ Bolus
Ăversikt
Andra
- Ny behandlingsrekommendation tillgÀnglig
+ Ny rekommendation tillgÀnglig
Open Loop
- VÀrde %s Àr utanför grÀnserna
- %.2f begrÀnsad till %.2f
+ VÀrde %s Àr utanför grÀnserna
+ %.2f begrÀnsad till %.2f
Kör nu
- FrÄga
+ BerÀknat behov
Profil
- Ingen glukos data tillÀnglig
- MĂ„ltids data
+ Ingen pump tillgÀnglig
+ Ingen profil tillÀnglig
+ Ingen glukosdata tillÀnglig
+ MĂ„ltidsdata
Maximal basal IOB som OpenAPS kan ge [E]
Detta vÀrde kallas Max IOB i OpenAPS. Det Àr stÀllt till noll frÄn start. Efter flera dagar till veckor, beroende pÄ hur du kÀnner, kan du vÀlja att justera denna.
- Max E/h som Temp Basal kan stÀllas in pÄ
+ Max enheter per timme som temp basal kan sÀttas till
Detta vÀrde kallas max basal inom OpenAPS
- Senaste körning
+ Senast körd
Senast startad
IOB data
Ange vÀrden
- Status Glukos
+ Glukosstatus
Plug in Àr avaktiverad
Nuvarande temp
- Autosens data
+ Autosensdata
OpenAPS MA
- AnvÀnd AMA autosens funktioner
- InstÀllt vÀrde: 3.0 Detta Àr grundinstÀllning för KH.absorption per 5 min. 3 mg/dl/5 min. Detta styr hur snabbt COB minskar, dvs hur snabbt programmet kalkylerar att KH tagits upp, och pÄverkar BG framöver nÀr BG faller mer Àn vÀntat, eller inte stiger som vÀntat"
- InstÀllt vÀrde: 3 Detta Àr en grundsten i OpenAPS sÀkerhetsaspekt. Detta begrÀnsar din basal till att vara 3x din största basalhastighet. Du behöver ofta inte Àndra detta vÀrde, LÀs pÄ och förstÄ skilnaden pÄ 3x nuvarande och 3x daglig max som sÀkerhetsinstÀllningar.
+ AnvÀnd AMA autosens
+ StandardvÀrde: 3.0 mg/dl/5 min Detta Àr grundinstÀllning för KH-absorption per 5 min. Detta styr hur snabbt COB minskar, dvs hur snabbt programmet kalkylerar att KH tagits upp, och pÄverkar BG framöver nÀr BG faller mer Àn vÀntat, eller inte stiger som vÀntat.
+ StandardvÀrde: 3 Detta Àr en grundsten i OpenAPS sÀkerhet. Detta begrÀnsar dina tempbasaler till maximalt 3x din största basalhastighet. Du behöver oftast inte Àndra detta vÀrde. LÀs pÄ och förstÄ skillnaden mellan 3x nuvarande och 3x daglig max som sÀkerhetsinstÀllningar.
Viktigt! Normalt behöver du inte Ă€ndra dessa vĂ€rden. Vg KLICKA HĂR och LĂS texten och försĂ€kra dig om att du FĂRSTĂ
TT innan du Àndrar dessa vÀrden.
- InstÀllt vÀrde: 4 Detta Àr andra delen i grunden för sÀkerhet i OpenAPS, dvs kring 3x och 4 x daglig och nuvarnde basaler. Detta vÀrde innebÀr att din nuvarande basal, oberoende av din max basalhastighet, kan aldrig bli högre Àn 4x nuvarande basal. Detta för att undvika att man farliga instÀllningar. Om man nÄr taket i denna instÀllning sÄ kanske Àndringar i andra instÀllningar behövs. De flesta behöver inte Àndra denna instÀllning.
- InstÀllt vÀrde: 2 Bolus snooze Àr aktivt efter att du givit en mÄltidsbolus, detta för att inte loop ska lÄgtempa nÀr du just Àtit. I detta exempel och grundvÀrde Àr 2; innebÀr att DIA pÄ 3 tim kommer bolus snooze kommer att fasas ut under 1,5 tim (3DIA/2).
- Antal timmar för berÀkning av kÀnslighet (KH absorptionstid Àr exkluderad)
- Intervall för autosens (h)
- InstÀllt vÀrde: 0.7 Detta Àr den andra delen av autosens sÀkerhetsaspekt, den sÀtter en grÀns pÄ hur lÄgt autosens kan justera basaler, och hur högt den kan justera ISF och BG mÄl
- InstÀllt vÀrde: 1.2 Detta Àr instÀllt vÀrde för hur mycket autosens kan multiplicera uppÄt (snart Àven autotune) dvs max 20%, med 1.2 kan alltsÄ autosens öka dina basaler med max 20%, denna grÀns gÀller alltsÄ hur högt autosens kan justera dina basaler men Àven hur lÄgt den kan justera ISF och hur lÄgt den kan sÀtta BG mÄl.
- InstÀllt vÀrde: sant Detta för att tillÄta autosens justera BG mÄlvÀrden, tillsammans med ISF och basaler
+ StandardvÀrde: 2 Bolus snooze Àr aktivt efter att du givit en mÄltidsbolus, detta för att inte loop ska lÄgtempa nÀr du just Àtit. I detta exempel och grundvÀrde Àr 2; innebÀr att DIA pÄ 3 tim kommer bolus snooze kommer att fasas ut under 1,5 tim (3DIA/2).
+ Antal timmar för berÀkning av kÀnslighet (Absorptionstid för KH Àr exkluderad).
+ Intervall för autosens [tim]
+ StandardvÀrde: 1.2 Med standarvÀrdet 1.2 kan autosens justera upp dina basaler, kvoter etc med upp till 20% för att kompensera för t ex tillfÀllig insulinresistens.
+ StandardvÀrde: sant Detta för att tillÄta autosens justera BG mÄlvÀrden, ISF och basaler.
OpenAPS AMA
- OAPS
OpenAPS
Ăppna instĂ€llningar pĂ„ Wear
- PÄgÄende rapportering
+ Konstant infonotis i telefonen
GAMMAL DATA
OK
Ocklusion
- M/S
- Pump status tillgÀnglig i NS
- MĂ„l/syfte
+ MĂ„l
+ Pumpstatus tillgÀngligt i Nightscout
+ MĂ„l:
Minimal duration
Manuell aktivering
SpÀrr:
GodkÀnn
Starta
- BG Àr tillÀngligt i NS
- Aktiverar extra funktioner som kan anvÀndas dagitd, sÄsom avancerad mÄltids assist
- Justerar basaler och ration om det behövs, aktivera sedan auto-sens
- 1 veckas framgÄngsrik dagtids looping dÀr alla mÄltider lagts in
+ BG Àr tillÀngligt i Nightscout
+ Aktiverar extra funktioner som kan anvÀndas dagtid, sÄsom avancerad mÄltidsassistans, AMA
+ Justerar basaler och kvoter om det behövs. Aktivera sedan autosens.
+ 1 veckas lyckad looping dagtid, dÀr alla mÄltider lagts in.
Finjustering av closed loop, gradvis ökande IOB och minskande önskat BG mÄlvÀrde
- Kör nÄgra dagar, och Ätminstone en natt utan larm för lÄgt BG, innan du sÀnker BG mÄlvÀrde
+ Kör nÄgra dagar och Ätminstone en natt utan larm för lÄgt BG innan du sÀnker mÄlvÀrdet för BG.
Börja anvÀnda closed loop med aktiverad funktion att stÀnga av vid lÄgt BG
Aktivera closed loop med max IOB=0 i nÄgra dagar till dess systemet inte stÀnger av pga lÄgt BG för mÄnga gÄnger
- FörstÄ din open loop, och hur den föreslÄr temp basaler
- UtifrÄn vad du nu lÀrt dig, besluta vilken max basal du vil ha, stÀll in det bÄde i instÀllningar i APS och i den pump.
+ FörstÄ din open loop och hur den föreslÄr temp basaler
+ UtifrÄn vad du nu lÀrt dig, besluta vilken max basal du vil ha. StÀll in det bÄde i instÀllningarna i APS och i din pump.
Starta med open loop
- Starta Open loop och anvÀnd det nÄgra dagar, försök att ge mÄnga föreslagna temp basaler
+ Starta med open loop och anvÀnd det nÄgra dagar. Försök att ge mÄnga föreslagna temp basaler.
Tid i timmar nÀr alla KH vÀntas vara absorberade
- MĂ„ltids max absorptions tid (h)
- Absorptions instÀllningar
- Bulgariska
+ Max absorptions tid för en mÄltid [tim]
+ AbsorptionsinstÀllningar
PUMP
- Batteribyte Pump
- Sensor Ă„lder
- SAGE
- VĂ€rden sparas inte
- Möjligen felvÀrde om man anvÀnder bolus för att priming/fyllning!
- Grekiska
+ Byte pumpbatteri
+ SensorÄlder
+ mÄste vara aktiverad för att kunna skicka vÀrden till pumpen.
+ VĂ€rden sparades inte!
+ Kan visa fel om man anvÀnder bolus för priming/fyllning!
+ Ăndra grund-IC:
+ Ăndra grund-ISF:
MUST NOT BE USED TO MAKE MEDICAL DECISIONS. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM âAS ISâ WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+ ISF saknas i profilen. AnvÀnder standardvÀrde.
LÄs skÀrm
LĂ„s
mmol/l
- %dmin sedan
+ %d min sedan
mg/dl
OK
MDI
NSClient
Autoscroll
- Basal typ
+ http://openaps.readthedocs.io/en/latest/docs/walkthrough/phase-3/beyond-low-glucose-suspend.html
+ Basaltyp
SENS
Genom att slÄ pÄ Autosens funktionen, kom ihÄg att skriva in alla KH. Annars kommer programmet göra fel i berÀkningar av kÀnslighet (ISF)!!
Sensitivity AAPS
Sensitivity Oref0
Sensitivity WeightedAverage
- StÀlla in temp basal
+ StÀller in temp basal
SP
BG:
Basal:
Bolus:
Delta:
IOB:
- %dmin sedan
- Gammal data tröskelvÀrde
- BrÄttom gammal data tröskelvÀrde
- BrÄttom hög
- BrÄttom lÄg
- BrÄttom gammal data
+ %d min sedan
+ TröskelvÀrde för \"Gammal data\" [min]
+ TröskelvÀrde för \"VÀldigt gammal data\" [min]
+ Akut hög
+ Akut lÄg
+ VĂ€ldigt gammal data
AndroidAPS
+ TT
+ Basal [%]
+ BG-kÀlla
+ Svenska
+ Laddade upp totalt %d vÀrden
+ Aktiverar ytterligare funktioner för anvÀndning dagtid, t ex SMB.
+ OtillÄtet fjÀrrkommando
+ Tid (i timmar) som profilen kommer att förskjutas.
+ Ăndra instĂ€llningen frĂ„n E/d till E/tim i pumpen
+ Kort medeldelta
+ LĂ„ngt medeldelta
+ Antal dagar
+ Vikt
+ Total grundbasal
+ Förkorta namnen pÄ flikarna
+ DeltainstÀllningar
+ Modell: %02X Protokoll: %02X Kod: %02X
+ "StandardvÀrde: 4 Detta Àr en grundsten i OpenAPS sÀkerhet. Detta begrÀnsar dina tempbasaler till maximalt 4x din nuvarande basal, oberoende av din max basalhastighet. Detta för att undvika att man av misstag gör farliga instÀllningar. Om man nÄr taket i denna instÀllning sÄ kanske Àndringar i andra instÀllningar behövs. De flesta behöver inte Àndra denna instÀllning. "
+ StandardvÀrde: 0.7 Med standardvÀrdet 0.7 kan autosens justera ner dina basaler, kvoter etc med upp till 30% för att kompensera för t ex tillfÀllig hög insulinkÀnslighet.
+ "Det kommer att anvÀndas för att ange \"Inmatat av: \". "
+ Enheten verkar inte stöda vitlistning av appar för batteriförbrukning
+ TillÄt
+ %s behöver kunna kringgÄ batterisparfunktionerna för att fungera korrekt
+ Pausad (%d min)
+ Snabbverkande insulin (förlÀngd)
+ KH-kvot (IC) saknas i profilen. AnvÀnder standardvÀrde.
+ För nÀrvarande satt till %f
+ Enhet
+ Uppladdare
+ KÀnslighetsmÀtning
+ Alla profiler laddades inte!
+ Notiser frĂ„n Ăversikten
+ SĂ€nd notiser frĂ„n Ăversikten som bekrĂ€ftelsemeddelanden pĂ„ Wear.
+ Basal [E/tim]
+ Peaktid för IOB-kurvan
+ Peaktid [min]
+ Rapid-Acting Oref (ny berÀkningsmodell)
+ Ultra-Rapid Oref (ny berÀkningsmodell)
+ %s tim DIA Àr för kort. AnvÀnder %s istÀllet!
+ Aktivera profil
+ Datum
+ OGILTIG
+ VÀntar pÄ parkoppling med pump
+ Parkoppling OK
+ Parkoppling tog för lÄng tid
+ PARKOPPLAR
+ Ingen enhet funnen Ànnu
+ Tom reservoar
+ Varning om blodsockermÀtning
+ "Ă
terstÄende mÀngd insulin "
+ Vald pump
+ Parkoppla ny pump
+ Bolushastighet
+ SĂ€tt basalsteg till 0.01 enheter per timme
+ Serienummer
+ Procent
+ Tidsförskjutning
+ StandardvÀrde för Temp-mÄl
+ Ăta snart, duration
+ Ăta snart, mĂ„l
+ Aktivitet, duration
+ Aktivitet, mÄl
+ HÀmtar status för förlÀngd bolus
+ HÀmtar status för bolus
+ HÀmtar status för tempbasal
+ HÀmtar pumpinstÀllningar
+ HĂ€mtar tid och datum i pumpen
+ ÄteranvÀnd
+ Kontroller frÄn klockan
+ SÀtt tempmÄl och ange behandlingar frÄn klockan.
+ Anslutningen tog för lÄng tid
+ Mat
+ g
+ kJ
+ En
+ Pr
+ Fett
+ VÀntar pÄ att bolus ska slutföras. %d sek ÄterstÄr.
+ Behandlar
+ PÄbörjar bolus
+ Kommandot kör just nu
+ Pumpdrivrutin justerad
+ Pumpen kan inte nÄs
+ BG-vÀrden saknas
+ AnvÀnd systemnotiser för larm och information
+ Lokala larm
+ Varna om BG-data saknas
+ Varna om pumpen inte gÄr att nÄ
+ Pumpen ses som ej nÄbar efter [min]
+ Akut larm
+ Bluetooth-övervakare
+ Startar om bluetooth pÄ telefonen om anslutning till pumpen misslyckas. Detta hjÀlper pÄ en del telefoner dÀr bluetooth ibland hÀnger sig.
+ Lada upp BG-data till Nightscout
+ UppladdningsinstÀllningar för G5
+ Visa detaljerad delta
+ Visa delta med en extra decimal
+ Osupportad firmware i pumpen
+ Skicka BG-data till xDrip+
+ VÀlj 640g/Eversense data som datakÀlla i xDrip+
+ BasalvÀrdet ersatt med det lÀgsta tillÄtna
+ AnvÀnd BG
+ AnvÀnd bolus-IOB
+ AnvÀnd basal-IOB
+ AnvÀnd BG-trend
+ AnvÀnd superbolus
+ Ja
+ Nej
+ Endast positiva
+ Endast negativa
+ AnvÀnd COB
+ AnvÀnd tempmÄl
+ Loop pÄslagen
+ APS vald
+ NSClient har skrivrÀttigheter
+ Closed loop pÄslagen
+ Max IOB Àr korrekt angivet
+ BG tillgÀngligt frÄn vald kÀlla
+ Basalerna Àr inte satta pÄ hel timme: %s
+ Ogiltig profil: %s
+ Programmerar bolus i pump
+ Uppdatera
+ LĂ€ge
+ Aktivitet
+ Ingen anslutning pÄ %d min
+ %d%% (%d min ÄterstÄr)
+ Initierar
+ FrÄnkopplad
+ Pausad pga fel
+ Pausad av anvÀndaren
+ Körs
+ Avbryter tempbasal
+ SĂ€tter tempbasal (%d%% / %d min)
+ Ger bolus (%.1f enheter)
+ Uppdaterar
+ Aldrig
+ Ănskad Ă„tgĂ€rd stöds inte av pumpen
+ OsÀker anvÀndning: FörlÀngd- eller kombibolus Àr aktiv. Loop mode Àr satt till att bromsa vid lÄgt BG i 6 timmar. Endast normala bolusar tillÄtna i looplÀge.
+ OsÀker anvÀndning: Pumpen anvÀnder en annan basalprofil Àn den första. Loop avstÀngd. VÀlj den första profilen pÄ pumpen och uppdatera.
+ En bolus med samma mÀngd efterfrÄgades inom den senaste minuten. För att förhindra att rÄka ge dubbla bolusar av misstag och ev programfel Àr detta inte tillÄtet.
+ Nu
+ LÀser historik frÄn pumpen
+ Larm
+ SĂ€tter basalprofil
+ LÄg nivÄ i insulinreservoaren
+ Pumpbatteriet Àr svagt
+ Pumpen visar felet: E%d: %s
+ För att lÀsa pumpens historik, tryck och hÄll in ALERTS-knappen. VARNING: detta kan aktivera en bugg som orsakar att pumpen vÀgrar ansluta och krÀver att en knapp trycks in pÄ pumpen för att ÄtergÄ. Det bör dÀrför undvikas.
+ "För att lÀsa pumpens historik, tryck och hÄll in TDDS-knappen. VARNING: detta kan aktivera en bugg som orsakar att pumpen vÀgrar ansluta och krÀver att en knapp trycks in pÄ pumpen för att ÄtergÄ. Det bör dÀrför undvikas. "
+ Minimum: %3.1f enheter
+ Genomsnitt: %3.1f enheter
+ Maximum: %3.1f enheter
+ LĂ„g
+ Tom
+ Normal
+ Pumpens klocka behöver stÀllas om
+ Historik
+ Varning
+ "Detta kommer att lÀsa pumpens fulla historik och status. Allt i Mitt Data och basalprogrammen. Bolusar och tempbasaler kommer att lÀggas till under Behandlingar om de inte redan finns dÀr. Detta kan orsaka att vissa saker lÀggs in dubbelt eftersom pumpens klocka inte Àr sÄ exakt. Detta bör inte göras medan loopen Àr ogÄng, utan bara nÀr behov uppstÄr. Om du ÀndÄ vill göra detta, tryck och hÄll in den hÀr knappen igen. VARNING: detta kan aktivera en bugg som orsakar att pumpen vÀgrar ansluta och krÀver att en knapp trycks in pÄ pumpen för att ÄtergÄ. Det bör dÀrför undvikas. "
+ Ăr du helt sĂ€ker pĂ„ att du vill lĂ€sa all pumphistorik och Ă€r medveten om konsekvenserna?
+ Varningen om avbruten tempbasal bekrÀftad
+ Bolus avbruten. Det verkar som om ingen bolus gavs. För att vara sÀker, vÀnligen kontrollera pumpen för att undvika dubbel bolus och prova sedan vid behov igen. För att förhindra fel orsakade av mjukvaran, försöker inte mjukvaran igen automatiskt.
+ Endast %.2f enheter %.2f gavs pga ett fel. VÀnligen verifiera pÄ pumpen och vidta nödvÀndiga ÄtgÀrder.
+ Leverans av bolus och verifiering av historiken misslyckades. VÀnligen kontrollera pÄ pumpen och lÀgg till bolusen manuellt under Careportal om den gÄtt fram.
+ Ă
teransluter efter att ha tappat kontakten
+ Inte tillrÀckligt med insulin i reservoaren för att ge bolus
+ FörlÀngd bolus misslyckad
+ KH-korrektion
+ E
+ BegrÀnsningar
+ Temp basal satt i pump
+ Behandling
+ Bolus avbruten
+ Avbryter bolus
+ %.2f begrÀnsat till %.2f
+ VÀrdet %s Àr utanför hÄrd begrÀnsning
+ Pumpen kunde inte nÄs. Bolus ej levererad.
+ Ăndrad
+ PUMP STOPPAD
+ Status uppdaterad
+ sedan
+ med
+ Aktiv temp basal
+ min kvar
+ Loggbok
+ Senast utförda ÄtgÀrd
+ ÄterstÄr över
+ total med
+ direkt med
+ HĂ„ll alltid ansluten
+ Stoppa temp basal pÄ riktigt (skapar pumplarm) istÀllet för att sÀtta till 90% i en minut
+ REDO
+ SYNKRONISERAR
+ UPPTAGEN
+ SYNKRONISERAD
+ STARTAR
+ behöver
+ Inte ansluten till hjÀlp-app!
+ HjÀlp-app verkar inte vara installerad!
+ Inkompatibel hjÀlp-app. Vi behöver version
+ OkÀnd
+ InvÀntar kodverifiering
+ Kod ej godkÀnd
+ Ej godkÀnd
+ Inkompatibel
+ sek
+ min
+ tim
+ dag
+ vecka
+ %ds gÄr ut %s
+ Statistik
+ Anslut pÄ förhand
+ Anslut automatiskt nÀr AAPS Àr öppet, innan nÄgot pumpkommando Àr skickat, för att snabba upp kommunikationen
+ Rekommenderas inte, dÄ det drar mycket batteri
+ AnvÀnd alltid SMB
+ AnvÀnd alltid SMB oberoende av bolus. Endast möjligt med en bra filtrerad BG-kÀlla, t ex Dexcom G5.
+ AnvÀnd SMB efter kolhydrater
+ AnvÀnd SMB i 6 timmar efter kolhydrater, Àven med 0 COB. Endast möjligt med en bra filtrerad BG-kÀlla, t ex Dexcom G5.
+ AnvÀnd SMB med kolhydrater (COB)
+ AnvÀnd SMB medan du har kolhydrater aktiva (COB)
+ AnvÀnd SMB nÀr Temp mÄl Àr satt
+ AnvĂ€nd SMB nĂ€r temp mĂ„l Ă€r satt, t ex Ăta snart eller TrĂ€ning
+ AnvÀnd SMB Àven nÀr ett högt temp mÄl Àr satt
+ AnvÀnd SMB Àven nÀr ett högt temp mÄl Àr satt (över 5,5 mmol)
+ LÄt temp basalen gÄ
+ Tysta
+ Kolhydrater
+ Knappar
+ Insulin
+ Skicka kalibrering till xDrip+ eller öppna kalibreringsrutan i G5-appen
+ Ăppnar xDrip+. Tillbaka-knappen Ă„tergĂ„r till AAPS
+ "MÀngd kolhydrater att lÀgga till nÀr man trycker pÄ knappen "
+ MÀngd insulin att lÀgga till nÀr man trycker pÄ knappen
+ Kunde inte starta CGM-appen. Kontrollera att den Àr installerad.
+ HistoriklÀsare
+ Notis vid SMB
+ Visa SMB pÄ klockan som en standardbolus.
+ Skapa notiser vid fel
+ Skapa notiser i Nightscout vid fel eller lokala meddelanden (Ă€ven synliga i Careportal/Behandlingar)
+ Visa BG-prognos pÄ klockan.
+ Prognos
+ Dataval
+ Uppladdning till Fabric
+ TillÄt automatisk rapportering av appkrascher och anvÀndningsinformation till utvecklarna via fabric.io-tjÀnsten.
+ VĂ€nligen uppdatera din G5-app till en supportad version
+ Starta TrÀnings-TT
+ Starta Ăta snart-TT
+ Ge ingen bolus, logga bara
+ Kategori
+ Underkategori
+ Bolusen sparas bara i loggboken
+ HÀmta saknade BG frÄn NS
+ SMB satt i pump
+ KĂ€nslighet
+ Avvikelser
+ Aktiva KH
+ Aktivt insulin
+ Basaler
+ Ingen ÄtgÀrd vald. Inget Àndras.
+ Starta Hypo-TT
+ Du kör nu dev-versionen. Closed Loop inte tillÄtet.
+ Engineering Mode aktiverat
+ Engineering Mode inte aktiverat och appen körs inte som release
+ %.2f E/h
+ LĂ€ser basalprofil
+ Pumphistoriken Àndrad efter att boluskalkylen gjordes. Bolusen har inte levererats. VÀnligen gör en ny kalkyl vid behov. Om samma mÀngd insulin krÀvs, vÀnligen vÀnta tvÄ minuter eftersom appen begrÀnsar likadana bolusar av sÀkerhetsskÀl.
+ Bolusen levererad, men det gick inte att lÀgga till den i loggen. Detta kan hÀnda om tvÄ smÄ bolusar ges inom tvÄ minuter. VÀnligen kontrollera pumpens historik och Careportal och lÀgg till om det saknas. Se till att inte lÀgga till tvÄ bolusar med samma mÀngd och samma tid.
+ Avböjer hög tempbasal eftersom kalkylen inte innefattade nyligen Àndrad historik
+ Uppdaterar pumpsstatus
+ Basalen pÄ pumpen Àr Àndrad och kommer att uppdateras inom kort
+ Basalen Àndrad i pumpen, men det gick inte att lÀsa till vad
+ Letar efter förÀndringar i historiken
+ Flera bolusar med samma mÀngd insulin importerades just. Endast en kan lÀggas till i Careportal. VÀnligen kontrollera pumpen och gör Àndringar i Careportal manuellt vid behov. Observera att man bara kan ha en bolus per klockslag.
+ Den senaste bolusen Àr Àldre Àn 24 timmar eller i framtiden. VÀnligen konttrollera tid och datum i pumpen.
+ Tid/datum för bolusen verkar fel. IOB Àr troligen missvisande. VÀnligen kontrollera tid och datum i pumpen.
+ Profilbyte saknas. VÀnligen gör ett profilbyte eller tryck Aktivera profil under Lokal Profil.
+ Antal bolus
+ Antal temp basal
+ MĂ„l %d inte startat
+ MÄl %d inte nÄtt
+ Pumpen Àr inte kapabel till temp basal
+ Ingen giltig data om temp basaler fanns i pumpen
+ Closed Loop inaktiverat i InstÀllningar
+ Autosens inaktiverat i InstÀllningar
+ SMB inaktiverat i InstÀllningar
+ BegrÀnsar max basal till %.2f E/h pga %s
+ pumpbegrÀnsning
+ det mÄste vara ett positivt vÀrde
+ multiplikator för max basal
+ multiplikator för daglig max basal
+ En bolus gavs för mindre Àn 3 min sedan. Hoppar över SMB
+ Basal justerad korrekt
+ BegrÀnsar max procent hastighet till %d%% pga %s
+ BegrÀnsar bolus till %.1f enheter pga %s
+ BegrÀnsar max IOB till %.1f pga %s
+ BegrÀnsar kolhydrater till %d g pga %s
+ BegrÀnsar IOB till %.1f pga %s
+ maxvÀrde i InstÀllningar
+ hÄrd begrÀnsning
+ osÀker anvÀndning
+ Statuskontroll misslyckad
+ Logga byte av kanyl
+ Logga byte a insulinreservoar
+ SMB Alltid PÄ och SMB Efter Kolhydrater Àr inaktiverat pga att den aktiva BG-kÀllan inte stöder avancerad filtrering
+ SMB inte tillÄtet i Open Loop
+ Mat
+ Ă
terstÀll
+ VÀntar pÄ tidssynkronisering (%d sek)
+ FrÄnkopplad (%d min)
+ Automatisk loggning i Careportal
+ Ladda upp insulin-, kanyl- och batteribyten samt pumplarm till Nightscout
+ Max IOB som OpenAPS inte kan överstiga [E]
+ Det hÀr vÀrdet kallas Max IOB av OpenAPS. Om denna mÀngd insulin on board (IOB) nÄs, kan inte OpenAPS lÀgga till mer.
+ Pump stoppad
+ Pump startad
+ Pump pausad
+ Max absorptionstid för kolhydrater [tim]
+ Efter denna tid anses alla kolhydrater vara absorberade. Om det fortfarande finns COB, kommer dessa att tas bort ur berÀkningen.
+ Tid
+ Visa noteringsrutan i behandlingsdialogerna
+ Angivet: %.2f enheter. Levererat: %.2f enheter. Felkod: %d
+ Första snabbknabben för insulin
+ Andra snabbknabben för insulin
+ Tredje snabbknabben för insulin
+ Första snabbknabben för kolhydrater
+ Andra snabbknabben för kolhydrater
+ Tredje snabbknabben för kolhydrater
+ AnvÀnd endast WiFi
+ AnslutningsinstÀllningar
+ TillÄtna SSID (separerade med semikolon)
+ TillÄt anslutning vid Roaming
+ Multiplikator för max daglig basal (max_daily)
+ Multiplikator för nuvarande basal (max_current)
+ -
+ Free-Peak Oref (ny berÀkningsmodell)
+ Hypo
+ Hypo lÀngd [min]
+ MĂ„l vid Hypo
+ Insulinresistent vuxen
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index e5b645dcc6..954184de6a 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -6,7 +6,7 @@
#FFFFCC03
#FFFB8C00
#ffea00
- #ff9500
+ #00ffff
#FFFFFF
#FFFFFF00
#FFFF00FF
@@ -52,7 +52,7 @@
#ca77dd
#de7550
- #1b5e20
+ #25912e
#47c8ff
#FFDD7792
@@ -64,4 +64,9 @@
#ff827c
#009705
+ #c8666666
+ #7200FF00
+ #72FF0000
+ #72000000
+
diff --git a/app/src/main/res/values/insight_alerts.xml b/app/src/main/res/values/insight_alerts.xml
index d78c448898..606868528e 100644
--- a/app/src/main/res/values/insight_alerts.xml
+++ b/app/src/main/res/values/insight_alerts.xml
@@ -4,8 +4,8 @@
Warning W32: Battery low
Warning W33: Invalid time/date
Warning W34: End of warranty
- Warning W36: TBR cancelled
- Warning W38: Bolus canelled
+ Warning W36: TBR canceled
+ Warning W38: Bolus canceled
Warning W39: Loantime warning
Maintenance M20: Cartridge not inserted
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index dd34d68d5b..e9482171b7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -710,7 +710,7 @@
Getting extended bolus status
Getting bolus status
Getting temporary basal status
- Gettings pump settings
+ Getting pump settings
Getting pump time
reuse
Controls from Watch
@@ -926,7 +926,7 @@
Category
Subcategory
Bolus will be recorded only
- Autobackfill missig BGs from NS
+ Autobackfill missig BGs from NS
ns_autobackfill
SMB set by pump
Sensitivity
@@ -982,7 +982,7 @@
Limiting IOB to %.1f U because of %s
max value in preferences
hard limit
- treatmentssafety_maxcarbs
+ treatmentssafety_maxcarbs
unsafe usage
openapsama_useautosens
Read status failed
@@ -1006,7 +1006,7 @@
Meal max absorption time [h]
Time at which any meal is considered absorbed. Remaining carbs will be cut off.
Time
- show_notes_entry_dialogs
+ show_notes_entry_dialogs
Show notes field in treatment dialogs
openapsama_min_5m_carbimpact
Asked: %.2fU Delivered: %.2fU Error code: %d
@@ -1020,8 +1020,10 @@
ns_wifionly
ns_wifi_ssids
ns_allowroaming
+ ns_chargingonly
Use WiFi connection only
WiFi SSID
+ Only if charging
Connection settings
Allowed SSIDs (semicolon separated)
Allow connection in roaming
@@ -1032,4 +1034,14 @@
Max daily safety multiplier
Current basal safety multiplier
n/a
+ Autobackfill BG
+ Wizard Settings
+ wearwizard_bg
+ wearwizard_trend
+ wearwizard_cob
+ wearwizard_bolusiob
+ wearwizard_basaliob
+ Calculations included in the Wizard result:
+ Display Settings
+ General Settings
diff --git a/app/src/main/res/xml/pref_nsclientinternal.xml b/app/src/main/res/xml/pref_nsclientinternal.xml
index 3a7dc91d4b..2241463e1a 100644
--- a/app/src/main/res/xml/pref_nsclientinternal.xml
+++ b/app/src/main/res/xml/pref_nsclientinternal.xml
@@ -105,6 +105,11 @@
android:key="@string/key_ns_allowroaming"
android:title="@string/ns_allowroaming" />
+
+
@@ -112,7 +117,8 @@
+ android:title="@string/ns_autobackfill_title"
+ android:summary="@string/ns_autobackfill_summary" />
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/test/java/info/nightscout/MainAppTest.java b/app/src/test/java/info/nightscout/MainAppTest.java
index 7aa50158f2..7bb58797be 100644
--- a/app/src/test/java/info/nightscout/MainAppTest.java
+++ b/app/src/test/java/info/nightscout/MainAppTest.java
@@ -76,7 +76,7 @@ public class MainAppTest {
if (Config.NSCLIENT || Config.G5UPLOADER)
expected = 1; // VirtualPump only
else
- expected = 6;
+ expected = 7;
Assert.assertEquals(expected, mainApp.getSpecificPluginsList(PluginType.PUMP).size());
}
@@ -87,7 +87,7 @@ public class MainAppTest {
if (Config.NSCLIENT || Config.G5UPLOADER)
expected = 1; // VirtualPump only
else
- expected = 6;
+ expected = 7;
Assert.assertEquals(expected, mainApp.getSpecificPluginsVisibleInList(PluginType.PUMP).size());
}
@@ -98,7 +98,7 @@ public class MainAppTest {
if (Config.NSCLIENT || Config.G5UPLOADER)
expected = 1; // VirtualPump only
else
- expected = 6;
+ expected = 7;
Assert.assertEquals(expected, mainApp.getSpecificPluginsListByInterface(PumpInterface.class).size());
}
@@ -109,7 +109,7 @@ public class MainAppTest {
if (Config.NSCLIENT || Config.G5UPLOADER)
expected = 1; // VirtualPump only
else
- expected = 6;
+ expected = 7;
Assert.assertEquals(expected, mainApp.getSpecificPluginsVisibleInListByInterface(PumpInterface.class, PluginType.PUMP).size());
}
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/ObjectivesFragmentTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/ObjectivesFragmentTest.java
index a4119e97e3..ca47477905 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/ObjectivesFragmentTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/ObjectivesFragmentTest.java
@@ -35,25 +35,10 @@ public class ObjectivesFragmentTest {
objectiveStartedTime, durationInDays, objectiveAccomplishedTime, requirementsMet, enableFakeValue));
// started
- // time calculation is false, requirements met is false
+ // time calculation is true, requirements met is true
objectiveStartedTime = 10;
durationInDays = 0;
requirementsMet = true;
- assertEquals(2, fragment.modifyVisibility(currentPosition, prevObjectiveAccomplishedTime,
- objectiveStartedTime, durationInDays, objectiveAccomplishedTime, requirementsMet, enableFakeValue));
-
- // started
- // time calculation is false, requirements met is true
- objectiveStartedTime = 10;
- durationInDays = 999999;
- requirementsMet = true;
- assertEquals(2, fragment.modifyVisibility(currentPosition, prevObjectiveAccomplishedTime,
- objectiveStartedTime, durationInDays, objectiveAccomplishedTime, requirementsMet, enableFakeValue));
-
- // started, after duration, requirements met --> show verify
- objectiveStartedTime = Long.MAX_VALUE;
- durationInDays = 0;
- requirementsMet = true;
assertEquals(3, fragment.modifyVisibility(currentPosition, prevObjectiveAccomplishedTime,
objectiveStartedTime, durationInDays, objectiveAccomplishedTime, requirementsMet, enableFakeValue));
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/NSClientInternal/NsClientReceiverDelegateTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/NSClientInternal/NsClientReceiverDelegateTest.java
new file mode 100644
index 0000000000..70e8d2c9b7
--- /dev/null
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/NSClientInternal/NsClientReceiverDelegateTest.java
@@ -0,0 +1,123 @@
+package info.nightscout.androidaps.plugins.NSClientInternal;
+
+import android.content.Context;
+import com.squareup.otto.Bus;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+import info.AAPSMocker;
+import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.events.EventChargingState;
+import info.nightscout.androidaps.events.EventNetworkChange;
+import info.nightscout.utils.SP;
+
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.when;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({MainApp.class, SP.class, Context.class})
+public class NsClientReceiverDelegateTest {
+
+ private NsClientReceiverDelegate sut;
+
+ @Before
+ public void prepare() {
+ AAPSMocker.mockMainApp();
+ AAPSMocker.mockApplicationContext();
+
+ Bus bus = MainApp.bus();
+ Context context = MainApp.instance().getApplicationContext();
+
+ sut = new NsClientReceiverDelegate(context, bus);
+ }
+
+ @Test
+ public void testCalculateStatusChargingState() {
+ PowerMockito.mockStatic(SP.class);
+ when(SP.getBoolean(anyInt(), anyBoolean())).thenReturn(false);
+ EventChargingState ev = new EventChargingState(true);
+ assertTrue(sut.calculateStatus(ev));
+ ev = new EventChargingState(false);
+ assertTrue(sut.calculateStatus(ev));
+
+ when(SP.getBoolean(anyInt(), anyBoolean())).thenReturn(true);
+ ev = new EventChargingState(true);
+ assertTrue(sut.calculateStatus(ev));
+ ev = new EventChargingState(false);
+ assertTrue(!sut.calculateStatus(ev));
+ }
+
+ @Test
+ public void testCalculateStatusNetworkState() {
+ PowerMockito.mockStatic(SP.class);
+ // wifiOnly = false
+ // allowRoaming = false as well
+ when(SP.getBoolean(anyInt(), anyBoolean())).thenReturn(false);
+ when(SP.getString(anyInt(), anyString())).thenReturn("");
+ EventNetworkChange ev = new EventNetworkChange();
+ ev.ssid = "";
+
+ ev.mobileConnected = true;
+ ev.wifiConnected = true;
+ assertTrue(sut.calculateStatus(ev));
+ ev.wifiConnected = false;
+ assertTrue(sut.calculateStatus(ev));
+
+ // wifiOnly = true
+ // allowRoaming = true as well
+ when(SP.getBoolean(anyInt(), anyBoolean())).thenReturn(true);
+ ev.wifiConnected = true;
+ assertTrue(sut.calculateStatus(ev));
+ ev.wifiConnected = false;
+ assertTrue(!sut.calculateStatus(ev));
+
+ // wifiOnly = false
+ // allowRoaming = false as well
+ when(SP.getBoolean(anyInt(), anyBoolean())).thenReturn(false);
+ ev.wifiConnected = false;
+ ev.roaming = true;
+ assertTrue(!sut.calculateStatus(ev));
+
+ // wifiOnly = false
+ // allowRoaming = true
+ when(SP.getBoolean(R.string.key_ns_wifionly, false)).thenReturn(false);
+ when(SP.getBoolean(R.string.key_ns_allowroaming, true)).thenReturn(true);
+ ev.wifiConnected = false;
+ ev.roaming = true;
+ assertTrue(sut.calculateStatus(ev));
+
+ // wifiOnly = true
+ // allowRoaming = true
+ when(SP.getBoolean(R.string.key_ns_wifionly, false)).thenReturn(true);
+ when(SP.getBoolean(R.string.key_ns_allowroaming, true)).thenReturn(true);
+ ev.wifiConnected = false;
+ ev.roaming = true;
+ assertTrue(!sut.calculateStatus(ev));
+
+ // wifiOnly = true
+ // allowRoaming = true
+ when(SP.getBoolean(R.string.key_ns_wifionly, false)).thenReturn(true);
+ when(SP.getBoolean(R.string.key_ns_allowroaming, true)).thenReturn(true);
+ ev.wifiConnected = true;
+ ev.roaming = true;
+ assertTrue(sut.calculateStatus(ev));
+
+ // wifiOnly = false
+ // allowRoaming = false
+ when(SP.getBoolean(R.string.key_ns_wifionly, false)).thenReturn(false);
+ when(SP.getBoolean(R.string.key_ns_allowroaming, true)).thenReturn(false);
+ ev.wifiConnected = true;
+ ev.roaming = true;
+ assertTrue(sut.calculateStatus(ev));
+ }
+}
diff --git a/wear/src/main/AndroidManifest.xml b/wear/src/main/AndroidManifest.xml
index 32cf7a5d1d..01423985d0 100644
--- a/wear/src/main/AndroidManifest.xml
+++ b/wear/src/main/AndroidManifest.xml
@@ -208,6 +208,10 @@
android:name=".interaction.actions.FillActivity"
android:label="Fill">
+
+
diff --git a/wear/src/main/java/info/nightscout/androidaps/data/BgWatchData.java b/wear/src/main/java/info/nightscout/androidaps/data/BgWatchData.java
index 8f20d77282..4f258ee074 100644
--- a/wear/src/main/java/info/nightscout/androidaps/data/BgWatchData.java
+++ b/wear/src/main/java/info/nightscout/androidaps/data/BgWatchData.java
@@ -1,5 +1,7 @@
package info.nightscout.androidaps.data;
+import java.util.Objects;
+
/**
* Created by emmablack on 1/7/15.
*/
@@ -8,12 +10,14 @@ public class BgWatchData implements Comparable{
public double high;
public double low;
public long timestamp;
+ public int color;
- public BgWatchData(double aSgv, double aHigh, double aLow, long aTimestamp) {
+ public BgWatchData(double aSgv, double aHigh, double aLow, long aTimestamp, int aColor) {
this.sgv = aSgv;
this.high = aHigh;
this.low = aLow;
this.timestamp = aTimestamp;
+ this.color = aColor;
}
public BgWatchData(){
@@ -25,12 +29,14 @@ public class BgWatchData implements Comparable{
if(! (that instanceof BgWatchData)){
return false;
}
+ if (this.color != ((BgWatchData) that).color)
+ return false;
return this.timestamp == ((BgWatchData) that).timestamp;
}
@Override
- public int hashCode(){
- return (int) (timestamp%Integer.MAX_VALUE);
+ public int hashCode() {
+ return Objects.hash(timestamp, color);
}
@Override
diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/actions/ECarbActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/ECarbActivity.java
new file mode 100644
index 0000000000..a598a39c2c
--- /dev/null
+++ b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/ECarbActivity.java
@@ -0,0 +1,134 @@
+package info.nightscout.androidaps.interaction.actions;
+
+
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.support.wearable.view.DotsPageIndicator;
+import android.support.wearable.view.GridPagerAdapter;
+import android.support.wearable.view.GridViewPager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+
+import java.text.DecimalFormat;
+
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.data.ListenerService;
+import info.nightscout.androidaps.interaction.utils.PlusMinusEditText;
+import info.nightscout.androidaps.interaction.utils.SafeParse;
+
+/**
+ * Created by adrian on 04/08/18.
+ */
+
+
+public class ECarbActivity extends ViewSelectorActivity {
+
+ PlusMinusEditText editCarbs;
+ PlusMinusEditText editStartTime;
+ PlusMinusEditText editDuration;
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.grid_layout);
+ final Resources res = getResources();
+ final GridViewPager pager = (GridViewPager) findViewById(R.id.pager);
+
+ pager.setAdapter(new MyGridViewPagerAdapter());
+ DotsPageIndicator dotsPageIndicator = (DotsPageIndicator) findViewById(R.id.page_indicator);
+ dotsPageIndicator.setPager(pager);
+ }
+
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ finish();
+ }
+
+
+ private class MyGridViewPagerAdapter extends GridPagerAdapter {
+ @Override
+ public int getColumnCount(int arg0) {
+ return 4;
+ }
+
+ @Override
+ public int getRowCount() {
+ return 1;
+ }
+
+ @Override
+ public Object instantiateItem(ViewGroup container, int row, int col) {
+
+ if(col == 0){
+ final View view = getInflatedPlusMinusView(container);
+ double def = 0;
+ if (editCarbs != null){
+ def = SafeParse.stringToDouble(editCarbs.editText.getText().toString());
+ }
+ editCarbs = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 0d, 150d, 1d, new DecimalFormat("0"), true);
+ setLabelToPlusMinusView(view, "carbs");
+ container.addView(view);
+ return view;
+ } else if(col == 1){
+ final View view = getInflatedPlusMinusView(container);
+ double def = 0;
+ if (editStartTime != null){
+ def = SafeParse.stringToDouble(editStartTime.editText.getText().toString());
+ }
+ editStartTime = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 0d, 300d, 15d, new DecimalFormat("0"), false);
+ setLabelToPlusMinusView(view, "start [min]");
+ container.addView(view);
+ return view;
+ } else if(col == 2){
+ final View view = getInflatedPlusMinusView(container);
+ double def = 0;
+ if (editDuration != null){
+ def = SafeParse.stringToDouble(editDuration.editText.getText().toString());
+ }
+ editDuration = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 0d, 8d, 1d, new DecimalFormat("0"), false);
+ setLabelToPlusMinusView(view, "duration [h]");
+ container.addView(view);
+ return view;
+ } else {
+
+ final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_send_item, container, false);
+ final ImageView confirmbutton = (ImageView) view.findViewById(R.id.confirmbutton);
+ confirmbutton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ //check if it can happen that the fagment is never created that hold data?
+ // (you have to swipe past them anyways - but still)
+
+ String actionstring = "ecarbs " +SafeParse.stringToInt(editCarbs.editText.getText().toString())
+ + " " + SafeParse.stringToInt(editStartTime.editText.getText().toString())
+ + " " + SafeParse.stringToInt(editDuration.editText.getText().toString());
+ ListenerService.initiateAction(ECarbActivity.this, actionstring);
+ finish();
+ }
+ });
+ container.addView(view);
+ return view;
+ }
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int row, int col, Object view) {
+ // Handle this to get the data before the view is destroyed?
+ // Object should still be kept by this, just setup for reinit?
+ container.removeView((View)view);
+ }
+
+ @Override
+ public boolean isViewFromObject(View view, Object object) {
+ return view==object;
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/actions/WizardActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/WizardActivity.java
index 7701b17d25..5c16063bb2 100644
--- a/wear/src/main/java/info/nightscout/androidaps/interaction/actions/WizardActivity.java
+++ b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/WizardActivity.java
@@ -32,9 +32,6 @@ public class WizardActivity extends ViewSelectorActivity {
PlusMinusEditText editCarbs;
PlusMinusEditText editPercentage;
- boolean useBG;
- boolean includeBolusIOB;
- boolean includeBasalIOB;
boolean hasPercentage;
@@ -63,7 +60,7 @@ public class WizardActivity extends ViewSelectorActivity {
private class MyGridViewPagerAdapter extends GridPagerAdapter {
@Override
public int getColumnCount(int arg0) {
- return hasPercentage?6:5;
+ return hasPercentage?3:2;
}
@Override
@@ -86,79 +83,7 @@ public class WizardActivity extends ViewSelectorActivity {
setLabelToPlusMinusView(view, "carbs");
container.addView(view);
return view;
- } else if(col == 1){
- final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_toggle_item, container, false);
- final TextView textView = (TextView) view.findViewById(R.id.label);
- textView.setText("include BG?");
-
- final ImageView togglebutton = (ImageView) view.findViewById(R.id.togglebutton);
- if(useBG){
- togglebutton.setImageResource(R.drawable.ic_toggle_on);
- } else {
- togglebutton.setImageResource(R.drawable.ic_toggle_off);
- }
- togglebutton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- useBG = !useBG;
- if(useBG){
- togglebutton.setImageResource(R.drawable.ic_toggle_on);
- } else {
- togglebutton.setImageResource(R.drawable.ic_toggle_off);
- }
- }
- });
- container.addView(view);
- return view;
- } else if(col == 2){
- final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_toggle_item, container, false);
- final TextView textView = (TextView) view.findViewById(R.id.label);
- textView.setText("Bolus IOB?");
-
- final ImageView togglebutton = (ImageView) view.findViewById(R.id.togglebutton);
- if(includeBolusIOB){
- togglebutton.setImageResource(R.drawable.ic_toggle_on);
- } else {
- togglebutton.setImageResource(R.drawable.ic_toggle_off);
- }
- togglebutton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- includeBolusIOB = !includeBolusIOB;
- if(includeBolusIOB){
- togglebutton.setImageResource(R.drawable.ic_toggle_on);
- } else {
- togglebutton.setImageResource(R.drawable.ic_toggle_off);
- }
- }
- });
- container.addView(view);
- return view;
- } else if(col == 3){
- final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_toggle_item, container, false);
- final TextView textView = (TextView) view.findViewById(R.id.label);
- textView.setText("Basal IOB?");
-
- final ImageView togglebutton = (ImageView) view.findViewById(R.id.togglebutton);
- if(includeBasalIOB){
- togglebutton.setImageResource(R.drawable.ic_toggle_on);
- } else {
- togglebutton.setImageResource(R.drawable.ic_toggle_off);
- }
- togglebutton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- includeBasalIOB = !includeBasalIOB;
- if(includeBasalIOB){
- togglebutton.setImageResource(R.drawable.ic_toggle_on);
- } else {
- togglebutton.setImageResource(R.drawable.ic_toggle_off);
- }
- }
- });
- container.addView(view);
- return view;
- } else if(col == 4 && hasPercentage){
+ } else if(col == 1 && hasPercentage){
final View view = getInflatedPlusMinusView(container);
if (editPercentage == null) {
editPercentage = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, 100d, 50d, 150d, 1d, new DecimalFormat("0"), false);
@@ -184,10 +109,7 @@ public class WizardActivity extends ViewSelectorActivity {
if (editPercentage != null) percentage = SafeParse.stringToInt(editPercentage.editText.getText().toString());
- String actionstring = "wizard " + SafeParse.stringToInt(editCarbs.editText.getText().toString())
- + " " + useBG
- + " " + includeBolusIOB
- + " " + includeBasalIOB
+ String actionstring = "wizard2 " + SafeParse.stringToInt(editCarbs.editText.getText().toString())
+ " " + percentage;
ListenerService.initiateAction(WizardActivity.this, actionstring);
finish();
diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/menus/MainMenuActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/menus/MainMenuActivity.java
index 34dce7dd11..fb8bb61e20 100644
--- a/wear/src/main/java/info/nightscout/androidaps/interaction/menus/MainMenuActivity.java
+++ b/wear/src/main/java/info/nightscout/androidaps/interaction/menus/MainMenuActivity.java
@@ -7,10 +7,10 @@ import android.preference.PreferenceManager;
import java.util.Vector;
-import info.nightscout.androidaps.BuildConfig;
import info.nightscout.androidaps.data.ListenerService;
import info.nightscout.androidaps.interaction.AAPSPreferences;
import info.nightscout.androidaps.interaction.actions.BolusActivity;
+import info.nightscout.androidaps.interaction.actions.ECarbActivity;
import info.nightscout.androidaps.interaction.actions.TempTargetActivity;
import info.nightscout.androidaps.interaction.utils.MenuListActivity;
import info.nightscout.androidaps.interaction.actions.WizardActivity;
@@ -46,8 +46,9 @@ public class MainMenuActivity extends MenuListActivity {
Vector menuitems = new Vector();
menuitems.add("TempT");
- menuitems.add("Bolus");
if(showWizard) menuitems.add("Wizard");
+ menuitems.add("eCarb");
+ menuitems.add("Bolus");
menuitems.add("Settings");
menuitems.add("Status");
if (showPrimeFill) menuitems.add("Prime/Fill");
@@ -86,6 +87,10 @@ public class MainMenuActivity extends MenuListActivity {
intent = new Intent(this, FillMenuActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);
- }
+ } else if ("eCarb".equals(action)) {
+ intent = new Intent(this, ECarbActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ this.startActivity(intent);
+ }
}
}
diff --git a/wear/src/main/java/info/nightscout/androidaps/watchfaces/BIGChart.java b/wear/src/main/java/info/nightscout/androidaps/watchfaces/BIGChart.java
index ce8c931078..b61bdc866b 100644
--- a/wear/src/main/java/info/nightscout/androidaps/watchfaces/BIGChart.java
+++ b/wear/src/main/java/info/nightscout/androidaps/watchfaces/BIGChart.java
@@ -428,6 +428,7 @@ public class BIGChart extends WatchFace implements SharedPreferences.OnSharedPre
BgWatchData bwd = new BgWatchData();
bwd.timestamp = prediction.getLong("timestamp");
bwd.sgv = prediction.getDouble("sgv");
+ bwd.color = prediction.getInt("color");
predictionList.add(bwd);
}
}
@@ -649,13 +650,15 @@ public class BIGChart extends WatchFace implements SharedPreferences.OnSharedPre
double high = entry.getDouble("high");
double low = entry.getDouble("low");
long timestamp = entry.getLong("timestamp");
- bgDataList.add(new BgWatchData(sgv, high, low, timestamp));
+ int color = entry.getInt("color", 0);
+ bgDataList.add(new BgWatchData(sgv, high, low, timestamp, color));
}
} else {
double sgv = dataMap.getDouble("sgvDouble");
double high = dataMap.getDouble("high");
double low = dataMap.getDouble("low");
long timestamp = dataMap.getLong("timestamp");
+ int color = dataMap.getInt("color", 0);
final int size = bgDataList.size();
if (size > 0) {
@@ -663,7 +666,7 @@ public class BIGChart extends WatchFace implements SharedPreferences.OnSharedPre
return; // Ignore duplicates.
}
- bgDataList.add(new BgWatchData(sgv, high, low, timestamp));
+ bgDataList.add(new BgWatchData(sgv, high, low, timestamp, color));
}
for (int i = 0; i < bgDataList.size(); i++) {
diff --git a/wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java b/wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java
index 3c980a713f..47ea3dbf08 100644
--- a/wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java
+++ b/wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java
@@ -604,13 +604,15 @@ public abstract class BaseWatchFace extends WatchFace implements SharedPreferen
double high = entry.getDouble("high");
double low = entry.getDouble("low");
long timestamp = entry.getLong("timestamp");
- bgDataList.add(new BgWatchData(sgv, high, low, timestamp));
+ int color = entry.getInt("color", 0);
+ bgDataList.add(new BgWatchData(sgv, high, low, timestamp, color));
}
} else {
double sgv = dataMap.getDouble("sgvDouble");
double high = dataMap.getDouble("high");
double low = dataMap.getDouble("low");
long timestamp = dataMap.getLong("timestamp");
+ int color = dataMap.getInt("color", 0);
final int size = bgDataList.size();
if (size > 0) {
@@ -618,7 +620,7 @@ public abstract class BaseWatchFace extends WatchFace implements SharedPreferen
return; // Ignore duplicates.
}
- bgDataList.add(new BgWatchData(sgv, high, low, timestamp));
+ bgDataList.add(new BgWatchData(sgv, high, low, timestamp, color));
}
for (int i = 0; i < bgDataList.size(); i++) {
@@ -689,6 +691,7 @@ public abstract class BaseWatchFace extends WatchFace implements SharedPreferen
BgWatchData bwd = new BgWatchData();
bwd.timestamp = prediction.getLong("timestamp");
bwd.sgv = prediction.getDouble("sgv");
+ bwd.color = prediction.getInt("color");
predictionList.add(bwd);
}
}
diff --git a/wear/src/main/java/info/nightscout/androidaps/watchfaces/BgGraphBuilder.java b/wear/src/main/java/info/nightscout/androidaps/watchfaces/BgGraphBuilder.java
index 7d50d7ff4c..4a401489d9 100644
--- a/wear/src/main/java/info/nightscout/androidaps/watchfaces/BgGraphBuilder.java
+++ b/wear/src/main/java/info/nightscout/androidaps/watchfaces/BgGraphBuilder.java
@@ -10,7 +10,9 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.TimeZone;
import info.nightscout.androidaps.data.BasalWatchData;
@@ -173,13 +175,12 @@ public class BgGraphBuilder {
}
}
+ addPredictionLines(lines);
lines.add(basalLine((float) minChart, factor, highlight));
lines.add(bolusLine((float) minChart));
lines.add(bolusInvalidLine((float) minChart));
lines.add(carbsLine((float) minChart));
lines.add(smbLine((float) minChart));
- lines.add(predictionLine());
-
return lines;
}
@@ -275,29 +276,30 @@ public class BgGraphBuilder {
}
- private Line predictionLine() {
-
- List pointValues = new ArrayList();
-
+ private void addPredictionLines(List lines) {
+ Map> values = new HashMap<>();
long endTime = getPredictionEndTime();
- for (BgWatchData bwd: predictionsList) {
- if(bwd.timestamp <= endTime) {
- pointValues.add(new PointValue(fuzz(bwd.timestamp), (float) bwd.sgv));
+ for (BgWatchData bwd : predictionsList) {
+ if (bwd.timestamp <= endTime) {
+ double value = bwd.sgv < 300 ? bwd.sgv : 300;
+ if (!values.containsKey(bwd.color)) {
+ values.put(bwd.color, new ArrayList<>());
+ }
+ values.get(bwd.color).add(new PointValue(fuzz(bwd.timestamp), (float) value));
}
}
- Line line = new Line(pointValues);
- line.setColor(Color.MAGENTA);
- line.setHasLines(false);
- int size = pointSize/2;
- size = (size>0)?size:1;
- line.setPointRadius(size);
- line.setHasPoints(true);
- return line;
+ for (Map.Entry> entry : values.entrySet()) {
+ Line line = new Line(entry.getValue());
+ line.setColor(entry.getKey());
+ line.setHasLines(false);
+ int size = pointSize / 2;
+ size = (size > 0) ? size : 1;
+ line.setPointRadius(size);
+ line.setHasPoints(true);
+ lines.add(line);
+ }
}
-
-
-
public Line highValuesLine() {
Line highValuesLine = new Line(highValues);
highValuesLine.setColor(highColor);
diff --git a/wear/src/main/java/info/nightscout/androidaps/watchfaces/CircleWatchface.java b/wear/src/main/java/info/nightscout/androidaps/watchfaces/CircleWatchface.java
index 3c479f3f86..4b6922fb90 100644
--- a/wear/src/main/java/info/nightscout/androidaps/watchfaces/CircleWatchface.java
+++ b/wear/src/main/java/info/nightscout/androidaps/watchfaces/CircleWatchface.java
@@ -573,7 +573,8 @@ public class CircleWatchface extends WatchFace implements SharedPreferences.OnSh
double high = dataMap.getDouble("high");
double low = dataMap.getDouble("low");
long timestamp = dataMap.getLong("timestamp");
- bgDataList.add(new BgWatchData(sgv, high, low, timestamp));
+ int color = dataMap.getInt("color", 0);
+ bgDataList.add(new BgWatchData(sgv, high, low, timestamp, color));
} else if (!sharedPrefs.getBoolean("animation", false)) {
// don't load history at once if animations are set (less resource consumption)
Log.d("addToWatchSet", "entries.size(): " + entries.size());
@@ -583,7 +584,8 @@ public class CircleWatchface extends WatchFace implements SharedPreferences.OnSh
double high = entry.getDouble("high");
double low = entry.getDouble("low");
long timestamp = entry.getLong("timestamp");
- bgDataList.add(new BgWatchData(sgv, high, low, timestamp));
+ int color = entry.getInt("color", 0);
+ bgDataList.add(new BgWatchData(sgv, high, low, timestamp, color));
}
} else