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

This commit is contained in:
Timm Korte 2017-08-07 22:16:37 +02:00
commit 07822811ac
25 changed files with 100 additions and 136 deletions

View file

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

View file

@ -33,14 +33,6 @@ public class Constants {
public static final int CPP_MIN_PERCENTAGE = 50; public static final int CPP_MIN_PERCENTAGE = 50;
public static final int CPP_MAX_PERCENTAGE = 200; public static final int CPP_MAX_PERCENTAGE = 200;
// Defaults for settings
public static final Double MAX_BG_DEFAULT_MGDL = 180d;
public static final Double MAX_BG_DEFAULT_MMOL = 10d;
public static final Double MIN_BG_DEFAULT_MGDL = 100d;
public static final Double MIN_BG_DEFAULT_MMOL = 5d;
public static final Double TARGET_BG_DEFAULT_MGDL = 150d;
public static final Double TARGET_BG_DEFAULT_MMOL = 7d;
// Very Hard Limits Ranges // Very Hard Limits Ranges
// First value is the Lowest and second value is the Highest a Limit can define // First value is the Lowest and second value is the Highest a Limit can define
public static final int[] VERY_HARD_LIMIT_MIN_BG = {72,180}; public static final int[] VERY_HARD_LIMIT_MIN_BG = {72,180};

View file

@ -36,6 +36,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.Services.AlarmSoundService; import info.nightscout.androidaps.Services.AlarmSoundService;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.events.EventAppExit; import info.nightscout.androidaps.events.EventAppExit;
import info.nightscout.androidaps.events.EventPreferenceChange; import info.nightscout.androidaps.events.EventPreferenceChange;
import info.nightscout.androidaps.events.EventRefreshGui; import info.nightscout.androidaps.events.EventRefreshGui;
@ -79,6 +80,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
Manifest.permission.WRITE_EXTERNAL_STORAGE}, CASE_STORAGE); Manifest.permission.WRITE_EXTERNAL_STORAGE}, CASE_STORAGE);
} }
askForBatteryOptimizationPermission(); askForBatteryOptimizationPermission();
checkUpgradeToProfileTarget();
if (Config.logFunctionCalls) if (Config.logFunctionCalls)
log.debug("onCreate"); log.debug("onCreate");
@ -154,6 +156,29 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
} }
} }
private void checkUpgradeToProfileTarget() { // TODO: can be removed in the future
boolean oldKeyExists = SP.contains("openapsma_min_bg");
if (oldKeyExists) {
Profile profile = MainApp.getConfigBuilder().getProfile();
String oldRange = SP.getDouble("openapsma_min_bg", 0d) + " - " + SP.getDouble("openapsma_max_bg", 0d);
String newRange = "";
if (profile != null) {
newRange = profile.getTargetLow() + " - " + profile.getTargetHigh();
}
String message = "Target range is changed in current version.\n\nIt's not taken from preferences but from profile.\n\n!!! REVIEW YOUR SETTINGS !!!";
message += "\n\nOld settings: " + oldRange;
message += "\nProfile settings: " + newRange;
OKDialog.show(this, "Target range change", message, new Runnable() {
@Override
public void run() {
SP.remove("openapsma_min_bg");
SP.remove("openapsma_max_bg");
SP.remove("openapsma_target_bg");
}
});
}
}
//check for sms permission if enable in prefernces //check for sms permission if enable in prefernces
@Subscribe @Subscribe
public void onStatusEvent(final EventPreferenceChange ev) { public void onStatusEvent(final EventPreferenceChange ev) {

View file

@ -29,4 +29,5 @@ public class DetailedBolusInfo {
public Context context = null; // context for progress dialog public Context context = null; // context for progress dialog
public boolean addToTreatments = true; public boolean addToTreatments = true;
public long pumpId = 0; // id of record if comming from pump history (not a newly created treatment) public long pumpId = 0; // id of record if comming from pump history (not a newly created treatment)
public boolean isSMB = false; // is a Super-MicroBolus
} }

View file

@ -60,7 +60,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
public static final String DATABASE_CAREPORTALEVENTS = "CareportalEvents"; public static final String DATABASE_CAREPORTALEVENTS = "CareportalEvents";
public static final String DATABASE_PROFILESWITCHES = "ProfileSwitches"; public static final String DATABASE_PROFILESWITCHES = "ProfileSwitches";
private static final int DATABASE_VERSION = 7; private static final int DATABASE_VERSION = 8;
private static Long earliestDataChange = null; private static Long earliestDataChange = null;
@ -113,6 +113,11 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
@Override @Override
public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) { public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) {
try { try {
if (oldVersion == 7 && newVersion == 8) {
log.debug("Upgrading database from v7 to v8");
TableUtils.dropTable(connectionSource, Treatment.class, true);
TableUtils.createTableIfNotExists(connectionSource, Treatment.class);
} else {
log.info(DatabaseHelper.class.getName(), "onUpgrade"); log.info(DatabaseHelper.class.getName(), "onUpgrade");
TableUtils.dropTable(connectionSource, TempTarget.class, true); TableUtils.dropTable(connectionSource, TempTarget.class, true);
TableUtils.dropTable(connectionSource, Treatment.class, true); TableUtils.dropTable(connectionSource, Treatment.class, true);
@ -124,6 +129,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
TableUtils.dropTable(connectionSource, CareportalEvent.class, true); TableUtils.dropTable(connectionSource, CareportalEvent.class, true);
TableUtils.dropTable(connectionSource, ProfileSwitch.class, true); TableUtils.dropTable(connectionSource, ProfileSwitch.class, true);
onCreate(database, connectionSource); onCreate(database, connectionSource);
}
} catch (SQLException e) { } catch (SQLException e) {
log.error("Can't drop databases", e); log.error("Can't drop databases", e);
throw new RuntimeException(e); throw new RuntimeException(e);
@ -683,6 +689,8 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
treatment.insulin = trJson.has("insulin") ? trJson.getDouble("insulin") : 0d; treatment.insulin = trJson.has("insulin") ? trJson.getDouble("insulin") : 0d;
treatment.pumpId = trJson.has("pumpId") ? trJson.getLong("pumpId") : 0; treatment.pumpId = trJson.has("pumpId") ? trJson.getLong("pumpId") : 0;
treatment._id = trJson.getString("_id"); treatment._id = trJson.getString("_id");
if (trJson.has("isSMB"))
treatment.isSMB = trJson.getBoolean("isSMB");
if (trJson.has("eventType")) { if (trJson.has("eventType")) {
treatment.mealBolus = !trJson.get("eventType").equals("Correction Bolus"); treatment.mealBolus = !trJson.get("eventType").equals("Correction Bolus");
double carbs = treatment.carbs; double carbs = treatment.carbs;
@ -1260,6 +1268,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
scheduleExtendedBolusChange(); scheduleExtendedBolusChange();
} }
} }
public ExtendedBolus findExtendedBolusById(String _id) { public ExtendedBolus findExtendedBolusById(String _id) {
try { try {
QueryBuilder<ExtendedBolus, Long> queryBuilder = null; QueryBuilder<ExtendedBolus, Long> queryBuilder = null;

View file

@ -47,6 +47,8 @@ public class Treatment implements DataPointWithLabelInterface {
public double carbs = 0d; public double carbs = 0d;
@DatabaseField @DatabaseField
public boolean mealBolus = true; // true for meal bolus , false for correction bolus public boolean mealBolus = true; // true for meal bolus , false for correction bolus
@DatabaseField
public boolean isSMB = false;
@DatabaseField @DatabaseField
public int insulinInterfaceID = InsulinInterface.FASTACTINGINSULIN; public int insulinInterfaceID = InsulinInterface.FASTACTINGINSULIN;
@ -79,6 +81,7 @@ public class Treatment implements DataPointWithLabelInterface {
"date= " + date + "date= " + date +
", date= " + DateUtil.dateAndTimeString(date) + ", date= " + DateUtil.dateAndTimeString(date) +
", isValid= " + isValid + ", isValid= " + isValid +
", isSMB= " + isSMB +
", _id= " + _id + ", _id= " + _id +
", pumpId= " + pumpId + ", pumpId= " + pumpId +
", insulin= " + insulin + ", insulin= " + insulin +
@ -110,6 +113,8 @@ public class Treatment implements DataPointWithLabelInterface {
return false; return false;
if (pumpId != other.pumpId) if (pumpId != other.pumpId)
return false; return false;
if (isSMB != other.isSMB)
return false;
if (!Objects.equals(_id, other._id)) if (!Objects.equals(_id, other._id))
return false; return false;
return true; return true;
@ -122,6 +127,7 @@ public class Treatment implements DataPointWithLabelInterface {
carbs = t.carbs; carbs = t.carbs;
mealBolus = t.mealBolus; mealBolus = t.mealBolus;
pumpId = t.pumpId; pumpId = t.pumpId;
isSMB = t.isSMB;
} }
// ----------------- DataPointInterface -------------------- // ----------------- DataPointInterface --------------------

View file

@ -183,7 +183,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
profile = MainApp.getConfigBuilder().getProfile(); profile = MainApp.getConfigBuilder().getProfile();
profileStore = ConfigBuilderPlugin.getActiveProfileInterface().getProfile(); profileStore = ConfigBuilderPlugin.getActiveProfileInterface().getProfile();
ArrayList<CharSequence> profileList; ArrayList<CharSequence> profileList;
units = profile.getUnits(); units = profile != null ? profile.getUnits() : Constants.MGDL;
profileList = profileStore.getProfileList(); profileList = profileStore.getProfileList();
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(getContext(), ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(getContext(),
R.layout.spinner_centered, profileList); R.layout.spinner_centered, profileList);

View file

@ -12,7 +12,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -34,9 +33,6 @@ import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.IobCobCalculator.events.BasalData; import info.nightscout.androidaps.plugins.IobCobCalculator.events.BasalData;
import info.nightscout.androidaps.plugins.IobCobCalculator.events.EventAutosensCalculationFinished; import info.nightscout.androidaps.plugins.IobCobCalculator.events.EventAutosensCalculationFinished;
import info.nightscout.androidaps.plugins.IobCobCalculator.events.EventNewHistoryData; import info.nightscout.androidaps.plugins.IobCobCalculator.events.EventNewHistoryData;
import info.nightscout.utils.Round;
import info.nightscout.utils.SP;
import info.nightscout.utils.SafeParse;
/** /**
* Created by mike on 24.04.2017. * Created by mike on 24.04.2017.
@ -390,7 +386,7 @@ public class IobCobCalculatorPlugin implements PluginBase {
} }
delta = (bg - bucketed_data.get(i + 1).value); delta = (bg - bucketed_data.get(i + 1).value);
IobTotal iob = calulateFromTreatmentsAndTemps(bgTime); IobTotal iob = calculateFromTreatmentsAndTemps(bgTime);
double bgi = -iob.activity * sens * 5; double bgi = -iob.activity * sens * 5;
double deviation = delta - bgi; double deviation = delta - bgi;
@ -463,14 +459,20 @@ public class IobCobCalculatorPlugin implements PluginBase {
return getBGDataFrom; return getBGDataFrom;
} }
public static IobTotal calulateFromTreatmentsAndTemps(long time) { public static IobTotal calculateFromTreatmentsAndTempsSynchronized(long time) {
synchronized (dataLock) {
return calculateFromTreatmentsAndTemps(time);
}
}
public static IobTotal calculateFromTreatmentsAndTemps(long time) {
long now = System.currentTimeMillis(); long now = System.currentTimeMillis();
time = roundUpTime(time); time = roundUpTime(time);
if (time < now && iobTable.get(time) != null) { if (time < now && iobTable.get(time) != null) {
//og.debug(">>> calulateFromTreatmentsAndTemps Cache hit " + new Date(time).toLocaleString()); //og.debug(">>> calculateFromTreatmentsAndTemps Cache hit " + new Date(time).toLocaleString());
return iobTable.get(time); return iobTable.get(time);
} else { } else {
//log.debug(">>> calulateFromTreatmentsAndTemps Cache miss " + new Date(time).toLocaleString()); //log.debug(">>> calculateFromTreatmentsAndTemps Cache miss " + new Date(time).toLocaleString());
} }
IobTotal bolusIob = MainApp.getConfigBuilder().getCalculationToTimeTreatments(time).round(); IobTotal bolusIob = MainApp.getConfigBuilder().getCalculationToTimeTreatments(time).round();
IobTotal basalIob = MainApp.getConfigBuilder().getCalculationToTimeTempBasals(time).round(); IobTotal basalIob = MainApp.getConfigBuilder().getCalculationToTimeTempBasals(time).round();
@ -559,7 +561,7 @@ public class IobCobCalculatorPlugin implements PluginBase {
int pos = 0; int pos = 0;
for (int i = 0; i < len; i++) { for (int i = 0; i < len; i++) {
long t = time + i * 5 * 60000; long t = time + i * 5 * 60000;
IobTotal iob = calulateFromTreatmentsAndTemps(t); IobTotal iob = calculateFromTreatmentsAndTempsSynchronized(t);
array[pos] = iob; array[pos] = iob;
pos++; pos++;
} }

View file

@ -158,22 +158,11 @@ public class OpenAPSAMAPlugin implements PluginBase, APSInterface {
String units = profile.getUnits(); String units = profile.getUnits();
double maxBgDefault = Constants.MAX_BG_DEFAULT_MGDL;
double minBgDefault = Constants.MIN_BG_DEFAULT_MGDL;
double targetBgDefault = Constants.TARGET_BG_DEFAULT_MGDL;
if (!units.equals(Constants.MGDL)) {
maxBgDefault = Constants.MAX_BG_DEFAULT_MMOL;
minBgDefault = Constants.MIN_BG_DEFAULT_MMOL;
targetBgDefault = Constants.TARGET_BG_DEFAULT_MMOL;
}
Date now = new Date();
double maxIob = SP.getDouble("openapsma_max_iob", 1.5d); double maxIob = SP.getDouble("openapsma_max_iob", 1.5d);
double maxBasal = SP.getDouble("openapsma_max_basal", 1d); double maxBasal = SP.getDouble("openapsma_max_basal", 1d);
double minBg = Profile.toMgdl(SP.getDouble("openapsma_min_bg", minBgDefault), units); double minBg = Profile.toMgdl(profile.getTargetLow(), units);
double maxBg = Profile.toMgdl(SP.getDouble("openapsma_max_bg", maxBgDefault), units); double maxBg = Profile.toMgdl(profile.getTargetHigh(), units);
double targetBg = Profile.toMgdl(SP.getDouble("openapsma_target_bg", targetBgDefault), units); double targetBg = (minBg + maxBg) / 2;
minBg = Round.roundTo(minBg, 0.1d); minBg = Round.roundTo(minBg, 0.1d);
maxBg = Round.roundTo(maxBg, 0.1d); maxBg = Round.roundTo(maxBg, 0.1d);
@ -248,6 +237,8 @@ public class OpenAPSAMAPlugin implements PluginBase, APSInterface {
determineBasalAdapterAMAJS.release(); determineBasalAdapterAMAJS.release();
Date now = new Date();
try { try {
determineBasalResultAMA.json.put("timestamp", DateUtil.toISOString(now)); determineBasalResultAMA.json.put("timestamp", DateUtil.toISOString(now));
} catch (JSONException e) { } catch (JSONException e) {

View file

@ -156,22 +156,13 @@ public class OpenAPSMAPlugin implements PluginBase, APSInterface {
String units = profile.getUnits(); String units = profile.getUnits();
Double maxBgDefault = Constants.MAX_BG_DEFAULT_MGDL;
Double minBgDefault = Constants.MIN_BG_DEFAULT_MGDL;
Double targetBgDefault = Constants.TARGET_BG_DEFAULT_MGDL;
if (!units.equals(Constants.MGDL)) {
maxBgDefault = Constants.MAX_BG_DEFAULT_MMOL;
minBgDefault = Constants.MIN_BG_DEFAULT_MMOL;
targetBgDefault = Constants.TARGET_BG_DEFAULT_MMOL;
}
Date now = new Date(); Date now = new Date();
double maxIob = SP.getDouble("openapsma_max_iob", 1.5d); double maxIob = SP.getDouble("openapsma_max_iob", 1.5d);
double maxBasal = SafeParse.stringToDouble(SP.getString("openapsma_max_basal", "1")); double maxBasal = SafeParse.stringToDouble(SP.getString("openapsma_max_basal", "1"));
double minBg = Profile.toMgdl(SP.getDouble("openapsma_min_bg", minBgDefault), units); double minBg = Profile.toMgdl(profile.getTargetLow(), units);
double maxBg = Profile.toMgdl(SP.getDouble("openapsma_max_bg", maxBgDefault), units); double maxBg = Profile.toMgdl(profile.getTargetHigh(), units);
double targetBg = Profile.toMgdl(SP.getDouble("openapsma_target_bg", targetBgDefault), units); double targetBg = (minBg + maxBg) / 2;
minBg = Round.roundTo(minBg, 0.1d); minBg = Round.roundTo(minBg, 0.1d);
maxBg = Round.roundTo(maxBg, 0.1d); maxBg = Round.roundTo(maxBg, 0.1d);

View file

@ -959,16 +959,10 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
else else
tempTargetView.setText(Profile.toUnitsString(tempTarget.low, Profile.fromMgdlToUnits(tempTarget.low, units), units) + " - " + Profile.toUnitsString(tempTarget.high, Profile.fromMgdlToUnits(tempTarget.high, units), units)); tempTargetView.setText(Profile.toUnitsString(tempTarget.low, Profile.fromMgdlToUnits(tempTarget.low, units), units) + " - " + Profile.toUnitsString(tempTarget.high, Profile.fromMgdlToUnits(tempTarget.high, units), units));
} else { } else {
Double maxBgDefault = Constants.MAX_BG_DEFAULT_MGDL;
Double minBgDefault = Constants.MIN_BG_DEFAULT_MGDL;
if (!units.equals(Constants.MGDL)) {
maxBgDefault = Constants.MAX_BG_DEFAULT_MMOL;
minBgDefault = Constants.MIN_BG_DEFAULT_MMOL;
}
tempTargetView.setTextColor(Color.WHITE); tempTargetView.setTextColor(Color.WHITE);
tempTargetView.setBackgroundColor(MainApp.sResources.getColor(R.color.tempTargetDisabledBackground)); tempTargetView.setBackgroundColor(MainApp.sResources.getColor(R.color.tempTargetDisabledBackground));
double low = SP.getDouble("openapsma_min_bg", minBgDefault); double low = MainApp.getConfigBuilder().getProfile().getTargetLow();
double high = SP.getDouble("openapsma_max_bg", maxBgDefault); double high = MainApp.getConfigBuilder().getProfile().getTargetHigh();
if (low == high) if (low == high)
tempTargetView.setText("" + low); tempTargetView.setText("" + low);
else else
@ -1409,7 +1403,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
int lastCob = 0; int lastCob = 0;
for (long time = fromTime; time <= now; time += 5 * 60 * 1000L) { for (long time = fromTime; time <= now; time += 5 * 60 * 1000L) {
if (showIobView.isChecked()) { if (showIobView.isChecked()) {
double iob = IobCobCalculatorPlugin.calulateFromTreatmentsAndTemps(time).iob; double iob = IobCobCalculatorPlugin.calculateFromTreatmentsAndTempsSynchronized(time).iob;
if (Math.abs(lastIob - iob) > 0.02) { if (Math.abs(lastIob - iob) > 0.02) {
if (Math.abs(lastIob - iob) > 0.2) if (Math.abs(lastIob - iob) > 0.2)
iobArray.add(new DataPoint(time, lastIob)); iobArray.add(new DataPoint(time, lastIob));

View file

@ -380,6 +380,9 @@ public class DanaRPlugin implements PluginBase, PumpInterface, DanaRInterface, C
if (percentRate > getPumpDescription().maxTempPercent) { if (percentRate > getPumpDescription().maxTempPercent) {
percentRate = getPumpDescription().maxTempPercent; percentRate = getPumpDescription().maxTempPercent;
} }
if (Config.logPumpActions)
log.debug("setTempBasalAbsolute: Calculated percent rate: " + percentRate);
// If extended in progress // If extended in progress
if (MainApp.getConfigBuilder().isInHistoryExtendedBoluslInProgress() && useExtendedBoluses) { if (MainApp.getConfigBuilder().isInHistoryExtendedBoluslInProgress() && useExtendedBoluses) {
if (Config.logPumpActions) if (Config.logPumpActions)
@ -393,7 +396,10 @@ public class DanaRPlugin implements PluginBase, PumpInterface, DanaRInterface, C
// Check if some temp is already in progress // Check if some temp is already in progress
if (MainApp.getConfigBuilder().isInHistoryRealTempBasalInProgress()) { if (MainApp.getConfigBuilder().isInHistoryRealTempBasalInProgress()) {
// Correct basal already set ? // Correct basal already set ?
if (MainApp.getConfigBuilder().getRealTempBasalFromHistory(System.currentTimeMillis()).percentRate == percentRate) { TemporaryBasal running = MainApp.getConfigBuilder().getRealTempBasalFromHistory(System.currentTimeMillis());
if (Config.logPumpActions)
log.debug("setTempBasalAbsolute: currently running: " + running.toString());
if (running.percentRate == percentRate) {
result.success = true; result.success = true;
result.percent = percentRate; result.percent = percentRate;
result.absolute = MainApp.getConfigBuilder().getTempBasalAbsoluteRateHistory(); result.absolute = MainApp.getConfigBuilder().getTempBasalAbsoluteRateHistory();

View file

@ -477,18 +477,9 @@ public class ActionStringHandler {
ret += "\n\n"; ret += "\n\n";
} }
//Default Range/Target
Double maxBgDefault = Constants.MAX_BG_DEFAULT_MGDL;
Double minBgDefault = Constants.MIN_BG_DEFAULT_MGDL;
Double targetBgDefault = Constants.TARGET_BG_DEFAULT_MGDL;
if (!profile.getUnits().equals(Constants.MGDL)) {
maxBgDefault = Constants.MAX_BG_DEFAULT_MMOL;
minBgDefault = Constants.MIN_BG_DEFAULT_MMOL;
targetBgDefault = Constants.TARGET_BG_DEFAULT_MMOL;
}
ret += "DEFAULT RANGE: "; ret += "DEFAULT RANGE: ";
ret += SP.getDouble("openapsma_min_bg", minBgDefault) + " - " + SP.getDouble("openapsma_max_bg", maxBgDefault); ret += profile.getTargetLow() + " - " + profile.getTargetHigh();
ret += " target: " + SP.getDouble("openapsma_target_bg", targetBgDefault); ret += " target: " + (profile.getTargetLow() + profile.getTargetHigh()) / 2;
return ret; return ret;
} }

View file

@ -252,6 +252,7 @@ public class NSUpload {
if (detailedBolusInfo.carbs != 0d) data.put("carbs", (int) detailedBolusInfo.carbs); if (detailedBolusInfo.carbs != 0d) data.put("carbs", (int) detailedBolusInfo.carbs);
data.put("created_at", DateUtil.toISOString(detailedBolusInfo.date)); data.put("created_at", DateUtil.toISOString(detailedBolusInfo.date));
data.put("date", detailedBolusInfo.date); data.put("date", detailedBolusInfo.date);
data.put("isSMB", detailedBolusInfo.isSMB);
if (detailedBolusInfo.pumpId != 0) if (detailedBolusInfo.pumpId != 0)
data.put("pumpId", detailedBolusInfo.pumpId); data.put("pumpId", detailedBolusInfo.pumpId);
if (detailedBolusInfo.glucose != 0d) if (detailedBolusInfo.glucose != 0d)

View file

@ -88,12 +88,6 @@ public class SP {
editor.apply(); editor.apply();
} }
static public void removeBoolean(int resourceID) {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.remove(MainApp.sResources.getString(resourceID));
editor.apply();
}
static public void putLong(String key, long value) { static public void putLong(String key, long value) {
SharedPreferences.Editor editor = sharedPreferences.edit(); SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putLong(key, value); editor.putLong(key, value);
@ -130,9 +124,15 @@ public class SP {
editor.apply(); editor.apply();
} }
static public void removeString(int resourceID) { static public void remove(int resourceID) {
SharedPreferences.Editor editor = sharedPreferences.edit(); SharedPreferences.Editor editor = sharedPreferences.edit();
editor.remove(MainApp.sResources.getString(resourceID)); editor.remove(MainApp.sResources.getString(resourceID));
editor.apply(); editor.apply();
} }
static public void remove(String key) {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.remove(key);
editor.apply();
}
} }

View file

@ -68,7 +68,6 @@
<string name="openapsma_nopump">Няма избана помпа</string> <string name="openapsma_nopump">Няма избана помпа</string>
<string name="nochangerequested">Не се изисква промяна</string> <string name="nochangerequested">Не се изисква промяна</string>
<string name="openapsma_request_label">Искане</string> <string name="openapsma_request_label">Искане</string>
<string name="openapsma_minbg_label">Долна граница(КЗ)</string>
<string name="rate">Стойност</string> <string name="rate">Стойност</string>
<string name="duration">Срок</string> <string name="duration">Срок</string>
<string name="reason">Основание</string> <string name="reason">Основание</string>
@ -204,8 +203,6 @@
<string name="el_lang">Greek</string> <string name="el_lang">Greek</string>
<string name="it_lang">Italian</string> <string name="it_lang">Italian</string>
<string name="ru_lang">Russian</string> <string name="ru_lang">Russian</string>
<string name="openapsma_low_summary">Мин. стойност, която е в границите</string>
<string name="openapsma_high_summary">Максималната стойност на КЗ за да бъде в границите.</string>
<string name="openapsma_maxbasal_title">Максимално позволен временен базал Е</string> <string name="openapsma_maxbasal_title">Максимално позволен временен базал Е</string>
<string name="openapsma_maxbasal_summary">Макс. лимит на временен базал [Е/ч] </string> <string name="openapsma_maxbasal_summary">Макс. лимит на временен базал [Е/ч] </string>
<string name="openapsma_maxiob_title">Максимален IOB</string> <string name="openapsma_maxiob_title">Максимален IOB</string>
@ -311,7 +308,6 @@
<string name="objectives_5_gate">Една седмица успешно дневно използване с редовно въвеждане на въглехидрати</string> <string name="objectives_5_gate">Една седмица успешно дневно използване с редовно въвеждане на въглехидрати</string>
<string name="objectives_6_objective">Активиране на допълнителни функции за дневно използване, включително и advanced meal assist </string> <string name="objectives_6_objective">Активиране на допълнителни функции за дневно използване, включително и advanced meal assist </string>
<string name="youareonallowedlimit">Достигнахте лимита</string> <string name="youareonallowedlimit">Достигнахте лимита</string>
<string name="openapsma_target_bg">Целева стойност използвана в изчисленията</string>
<string name="noprofileselected">Няма избран профил</string> <string name="noprofileselected">Няма избран профил</string>
<string name="smscommunicator_loophasbeendisabled">Loop has been disabled</string> <string name="smscommunicator_loophasbeendisabled">Loop has been disabled</string>
<string name="smscommunicator_loophasbeenenabled">Loop has been enabled</string> <string name="smscommunicator_loophasbeenenabled">Loop has been enabled</string>

View file

@ -104,7 +104,6 @@
<string name="openapsma_lastenact_label">Poslední provedení</string> <string name="openapsma_lastenact_label">Poslední provedení</string>
<string name="openapsma_lastrun_label">Poslední spuštění</string> <string name="openapsma_lastrun_label">Poslední spuštění</string>
<string name="openapsma_mealdata_label">Data o jídle</string> <string name="openapsma_mealdata_label">Data o jídle</string>
<string name="openapsma_minbg_label">Cílová nízká glykémie</string>
<string name="openapsma_noglucosedata">Nedostupná data o glykémiích</string> <string name="openapsma_noglucosedata">Nedostupná data o glykémiích</string>
<string name="openapsma_noprofile">Nedostupný profil</string> <string name="openapsma_noprofile">Nedostupný profil</string>
<string name="openapsma_nopump">Žádná pumpa</string> <string name="openapsma_nopump">Žádná pumpa</string>
@ -184,8 +183,6 @@
<string name="nav_export">Exportovat nastavení</string> <string name="nav_export">Exportovat nastavení</string>
<string name="nav_import">Importovat nastavení</string> <string name="nav_import">Importovat nastavení</string>
<string name="de_lang">German</string> <string name="de_lang">German</string>
<string name="openapsma_high_summary">Maximální hodnota glykémie ještě v rozsahu</string>
<string name="openapsma_low_summary">Minimální hodnota glykémie ještě v rozsahu</string>
<string name="bg_lang">Bulgarian</string> <string name="bg_lang">Bulgarian</string>
<string name="dismiss">POTVRDIT</string> <string name="dismiss">POTVRDIT</string>
<string name="language">Jazyk</string> <string name="language">Jazyk</string>
@ -282,7 +279,6 @@
<string name="objectives_5_objective">Upravit bazály a koeficinty, když bude potřeba a povolit automatickou detekci citlivosti na inzulín</string> <string name="objectives_5_objective">Upravit bazály a koeficinty, když bude potřeba a povolit automatickou detekci citlivosti na inzulín</string>
<string name="objectives_6_objective">Povolit další fukce pro běžné používání jako AMA</string> <string name="objectives_6_objective">Povolit další fukce pro běžné používání jako AMA</string>
<string name="youareonallowedlimit">Dosaženo limitu</string> <string name="youareonallowedlimit">Dosaženo limitu</string>
<string name="openapsma_target_bg">Cílová hodnota pro výpočty</string>
<string name="bolusdelivering" formatted="false">Aplikováno %.2fU</string> <string name="bolusdelivering" formatted="false">Aplikováno %.2fU</string>
<string name="smscommunicator_loophasbeendisabled">Smyčka byla zakázána</string> <string name="smscommunicator_loophasbeendisabled">Smyčka byla zakázána</string>
<string name="smscommunicator_loophasbeenenabled">Smyčka byla povolena</string> <string name="smscommunicator_loophasbeenenabled">Smyčka byla povolena</string>

View file

@ -128,7 +128,6 @@
<string name="openapsma_nopump">Keine Pumpe verfügbar</string> <string name="openapsma_nopump">Keine Pumpe verfügbar</string>
<string name="openapsma_noprofile">Kein Profil verfügbar</string> <string name="openapsma_noprofile">Kein Profil verfügbar</string>
<string name="openapsma_noglucosedata">Keine BZ Daten verfügbar</string> <string name="openapsma_noglucosedata">Keine BZ Daten verfügbar</string>
<string name="openapsma_minbg_label">Low target</string>
<string name="openapsma_mealdata_label">Mahlzeiten Daten</string> <string name="openapsma_mealdata_label">Mahlzeiten Daten</string>
<string name="openapsma_lastrun_label">Last run</string> <string name="openapsma_lastrun_label">Last run</string>
<string name="openapsma_lastenact_label">Last enacted</string> <string name="openapsma_lastenact_label">Last enacted</string>
@ -185,8 +184,6 @@
<string name="de_lang">Deutsch</string> <string name="de_lang">Deutsch</string>
<string name="openapsma_maxbasal_summary">Max U/hr die man für eine Temp Basal setzen kann</string> <string name="openapsma_maxbasal_summary">Max U/hr die man für eine Temp Basal setzen kann</string>
<string name="openapsma_maxiob_summary">Maximale Menge von nicht bolus IOB die OpenAPs abgeben kann</string> <string name="openapsma_maxiob_summary">Maximale Menge von nicht bolus IOB die OpenAPs abgeben kann</string>
<string name="openapsma_high_summary">Maximalwert für deinen persönlichen Zielbereich.</string>
<string name="openapsma_low_summary">Minimalwert für deinen persönlichen Zielbereich.</string>
<string name="bg_lang">Bulgarian</string> <string name="bg_lang">Bulgarian</string>
<string name="nightscout">Nightscout</string> <string name="nightscout">Nightscout</string>
<string name="smscommunicator_allowednumbers_summary">+XXXXXXXXXX;+YYYYYYYYYY</string> <string name="smscommunicator_allowednumbers_summary">+XXXXXXXXXX;+YYYYYYYYYY</string>

View file

@ -66,7 +66,6 @@
<string name="openapsma_nopump">No se dispone de bomba</string> <string name="openapsma_nopump">No se dispone de bomba</string>
<string name="nochangerequested">Ninguna acción requerida</string> <string name="nochangerequested">Ninguna acción requerida</string>
<string name="openapsma_request_label">Solicitud</string> <string name="openapsma_request_label">Solicitud</string>
<string name="openapsma_minbg_label">Objetivo mínimo</string>
<string name="rate">Dosis</string> <string name="rate">Dosis</string>
<string name="duration">Duración</string> <string name="duration">Duración</string>
<string name="reason">Razón</string> <string name="reason">Razón</string>
@ -192,8 +191,6 @@
<string name="nav_export">Exportar ajustes</string> <string name="nav_export">Exportar ajustes</string>
<string name="nav_import">Importar ajustes</string> <string name="nav_import">Importar ajustes</string>
<string name="de_lang">German</string> <string name="de_lang">German</string>
<string name="openapsma_low_summary">Valor mínimo de BG para estar en rango</string>
<string name="openapsma_high_summary">Valor máximo BG para estar en rango</string>
<string name="openapsma_maxbasal_summary">Max valor U / hr en Basal temporal</string> <string name="openapsma_maxbasal_summary">Max valor U / hr en Basal temporal</string>
<string name="openapsma_maxiob_summary">Máximos basales IOB para OpenAPS [U]</string> <string name="openapsma_maxiob_summary">Máximos basales IOB para OpenAPS [U]</string>
<string name="bg_lang">Bulgarian</string> <string name="bg_lang">Bulgarian</string>
@ -294,7 +291,6 @@
<string name="objectives_5_gate">1 semana lazo cerrado completado con entrada regular de carbohidratos</string> <string name="objectives_5_gate">1 semana lazo cerrado completado con entrada regular de carbohidratos</string>
<string name="objectives_6_objective">Habilitar funciones adicionales para su uso durante el día, como asistente de comida avanzado</string> <string name="objectives_6_objective">Habilitar funciones adicionales para su uso durante el día, como asistente de comida avanzado</string>
<string name="youareonallowedlimit">Alcanzado el límite permitido</string> <string name="youareonallowedlimit">Alcanzado el límite permitido</string>
<string name="openapsma_target_bg">Valor objetivo para los cálculos</string>
<string name="noprofileselected">Sin perfil seleccionado</string> <string name="noprofileselected">Sin perfil seleccionado</string>
<string name="ko_lang">Korean</string> <string name="ko_lang">Korean</string>
<string name="actions">Acciones</string> <string name="actions">Acciones</string>

View file

@ -264,12 +264,9 @@
<string name="openapsma">OpenAPS MA</string> <string name="openapsma">OpenAPS MA</string>
<string name="openapsma_disabled">Plugin e\' disabilitato</string> <string name="openapsma_disabled">Plugin e\' disabilitato</string>
<string name="openapsma_glucosestatus_label">Stato glucosio</string> <string name="openapsma_glucosestatus_label">Stato glucosio</string>
<string name="openapsma_high_summary">Valore massimo di Bg nel range</string>
<string name="openapsma_inputparameters_label">Entrata parametro</string> <string name="openapsma_inputparameters_label">Entrata parametro</string>
<string name="openapsma_low_summary">Valore minimo di Bg nel range</string>
<string name="openapsma_maxbasal_summary">Il valore e\' chiamati basale in OpenAPS</string> <string name="openapsma_maxbasal_summary">Il valore e\' chiamati basale in OpenAPS</string>
<string name="openapsma_maxiob_title">Basale Massima in IOB OpenAPS</string> <string name="openapsma_maxiob_title">Basale Massima in IOB OpenAPS</string>
<string name="openapsma_minbg_label">Obbietivo minimo</string>
<string name="openapsma_iobdata_label">IOB dati</string> <string name="openapsma_iobdata_label">IOB dati</string>
<string name="openapsma_lastenact_label">Ultimo attuato</string> <string name="openapsma_lastenact_label">Ultimo attuato</string>
<string name="openapsma_lastrun_label">Ultimo corsa</string> <string name="openapsma_lastrun_label">Ultimo corsa</string>
@ -344,7 +341,6 @@
<string name="objectives_0_objective">Impostazione di visualizzazione, monitoraggio e analisi basali e rapporti</string> <string name="objectives_0_objective">Impostazione di visualizzazione, monitoraggio e analisi basali e rapporti</string>
<string name="objectives_1_gate">Eseguire in modalità Open Loop per alcuni giorni e impostare manualmente la basale tempor</string> <string name="objectives_1_gate">Eseguire in modalità Open Loop per alcuni giorni e impostare manualmente la basale tempor</string>
<string name="openapsma_scriptdebugdata_label">Script debug</string> <string name="openapsma_scriptdebugdata_label">Script debug</string>
<string name="openapsma_target_bg">Target per calcolare</string>
<string name="smscommunicator">Comunicazioni SMS</string> <string name="smscommunicator">Comunicazioni SMS</string>
<string name="smscommunicator_allowednumbers">Numero di telefono acettato</string> <string name="smscommunicator_allowednumbers">Numero di telefono acettato</string>
<string name="smscommunicator_bolusfailed">Bolo fallito</string> <string name="smscommunicator_bolusfailed">Bolo fallito</string>

View file

@ -68,7 +68,6 @@
<string name="openapsma_nopump">No pump available</string> <string name="openapsma_nopump">No pump available</string>
<string name="nochangerequested">변경사항 없음</string> <string name="nochangerequested">변경사항 없음</string>
<string name="openapsma_request_label">요청</string> <string name="openapsma_request_label">요청</string>
<string name="openapsma_minbg_label">Low target</string>
<string name="rate">Rate</string> <string name="rate">Rate</string>
<string name="duration">기간</string> <string name="duration">기간</string>
<string name="reason">근거</string> <string name="reason">근거</string>
@ -195,8 +194,6 @@
<string name="de_lang">German</string> <string name="de_lang">German</string>
<string name="es_lang">Spanish</string> <string name="es_lang">Spanish</string>
<string name="el_lang">Greek</string> <string name="el_lang">Greek</string>
<string name="openapsma_low_summary">목표범위 최소 혈당값</string>
<string name="openapsma_high_summary">목표범위 최대 혈당값</string>
<string name="openapsma_maxbasal_title">임시기초주입 최대량 [U/hr]</string> <string name="openapsma_maxbasal_title">임시기초주입 최대량 [U/hr]</string>
<string name="openapsma_maxbasal_summary">이 값은 OpenAPS에서 Max Basal(임시기초주입 최대량)로 설정되는 값입니다</string> <string name="openapsma_maxbasal_summary">이 값은 OpenAPS에서 Max Basal(임시기초주입 최대량)로 설정되는 값입니다</string>
<string name="openapsma_maxiob_title">OpenAPS가 주입할수 있는 최대 기초주입 IOB [U]</string> <string name="openapsma_maxiob_title">OpenAPS가 주입할수 있는 최대 기초주입 IOB [U]</string>
@ -304,7 +301,6 @@
<string name="objectives_5_gate">평소 먹는 탄수화물 입력하면서 Loop를 실행하고 1주일간 성공적으로 낮시간을 관리한다.</string> <string name="objectives_5_gate">평소 먹는 탄수화물 입력하면서 Loop를 실행하고 1주일간 성공적으로 낮시간을 관리한다.</string>
<string name="objectives_6_objective">AMA(Advanced Meal Assist)같은 주간용을 위한 추가적인 기능들을 실행하여 본다.</string> <string name="objectives_6_objective">AMA(Advanced Meal Assist)같은 주간용을 위한 추가적인 기능들을 실행하여 본다.</string>
<string name="youareonallowedlimit">허용된 제한값에 도달하였습니다</string> <string name="youareonallowedlimit">허용된 제한값에 도달하였습니다</string>
<string name="openapsma_target_bg">계산을 위한 목표 혈당 값</string>
<string name="noprofileselected">프로파일이 선택되지 않았습니다</string> <string name="noprofileselected">프로파일이 선택되지 않았습니다</string>
<string name="smscommunicator_loophasbeendisabled">Loop가 중지되었습니다.</string> <string name="smscommunicator_loophasbeendisabled">Loop가 중지되었습니다.</string>
<string name="smscommunicator_loophasbeenenabled">Loop가 실행되었습니다.</string> <string name="smscommunicator_loophasbeenenabled">Loop가 실행되었습니다.</string>

View file

@ -345,18 +345,15 @@
<string name="openapsma_currenttemp_label">текущий врем базал</string> <string name="openapsma_currenttemp_label">текущий врем базал</string>
<string name="openapsma_disabled">модуль не активен</string> <string name="openapsma_disabled">модуль не активен</string>
<string name="openapsma_glucosestatus_label">статус гликемии</string> <string name="openapsma_glucosestatus_label">статус гликемии</string>
<string name="openapsma_high_summary">макс значение СК диапазона</string>
<string name="openapsma_inputparameters_label">параметры ввода</string> <string name="openapsma_inputparameters_label">параметры ввода</string>
<string name="openapsma_iobdata_label">данные IOB (активн инс)</string> <string name="openapsma_iobdata_label">данные IOB (активн инс)</string>
<string name="openapsma_lastenact_label">последнее заданное</string> <string name="openapsma_lastenact_label">последнее заданное</string>
<string name="openapsma_lastrun_label">последнее выполненное</string> <string name="openapsma_lastrun_label">последнее выполненное</string>
<string name="openapsma_low_summary">мин значение СК диапазона</string>
<string name="openapsma_maxbasal_summary">в контексте OpenAPS называется макс базал</string> <string name="openapsma_maxbasal_summary">в контексте OpenAPS называется макс базал</string>
<string name="openapsma_maxbasal_title">макс разрешенный врем базал Е</string> <string name="openapsma_maxbasal_title">макс разрешенный врем базал Е</string>
<string name="openapsma_maxiob_summary">эта величина называется макс IOB (макс активн инс) в OpenAPS. Значение по умолчанию 0. Через несколько дней или недель пользования величину можно юстировать в зависимости от вашего уровня комфорта.</string> <string name="openapsma_maxiob_summary">эта величина называется макс IOB (макс активн инс) в OpenAPS. Значение по умолчанию 0. Через несколько дней или недель пользования величину можно юстировать в зависимости от вашего уровня комфорта.</string>
<string name="openapsma_maxiob_title">макс базал активн инс подаваемый с OpenAPS (ед)</string> <string name="openapsma_maxiob_title">макс базал активн инс подаваемый с OpenAPS (ед)</string>
<string name="openapsma_mealdata_label">данные приема пищи</string> <string name="openapsma_mealdata_label">данные приема пищи</string>
<string name="openapsma_minbg_label">нижнее целевое значение СК</string>
<string name="openapsma_noglucosedata">данные гликемии недоступны</string> <string name="openapsma_noglucosedata">данные гликемии недоступны</string>
<string name="openapsma_noprofile">профиль недоступен</string> <string name="openapsma_noprofile">профиль недоступен</string>
<string name="openapsma_nopump">помпа недоступна</string> <string name="openapsma_nopump">помпа недоступна</string>
@ -365,7 +362,6 @@
<string name="result">результат</string> <string name="result">результат</string>
<string name="openapsma_run">выполнить сейчас</string> <string name="openapsma_run">выполнить сейчас</string>
<string name="openapsma_scriptdebugdata_label">отладка скрипта</string> <string name="openapsma_scriptdebugdata_label">отладка скрипта</string>
<string name="openapsma_target_bg">целевое значение для расчетов</string>
<string name="openapsma_valuelimitedto" formatted="false">%.2f ограничено до %.2f</string> <string name="openapsma_valuelimitedto" formatted="false">%.2f ограничено до %.2f</string>
<string name="openapsma_valueoutofrange" formatted="false">величина %s недопустима</string> <string name="openapsma_valueoutofrange" formatted="false">величина %s недопустима</string>
<string name="openloop">открытый цикл</string> <string name="openloop">открытый цикл</string>

View file

@ -20,6 +20,7 @@
<item>@string/it_lang</item> <item>@string/it_lang</item>
<item>@string/ko_lang</item> <item>@string/ko_lang</item>
<item>@string/ru_lang</item> <item>@string/ru_lang</item>
<item>@string/sv_lang</item>
</string-array> </string-array>
<string-array name="languagesValues" translatable="false"> <string-array name="languagesValues" translatable="false">
<item>en</item> <item>en</item>
@ -31,6 +32,7 @@
<item>it</item> <item>it</item>
<item>ko</item> <item>ko</item>
<item>ru</item> <item>ru</item>
<item>sv</item>
</string-array> </string-array>
<string-array name="ageArray"> <string-array name="ageArray">
@ -43,5 +45,4 @@
<item>@string/key_teenage</item> <item>@string/key_teenage</item>
<item>@string/key_adult</item> <item>@string/key_adult</item>
</string-array> </string-array>
</resources> </resources>

View file

@ -69,7 +69,6 @@
<string name="openapsma_nopump">No pump available</string> <string name="openapsma_nopump">No pump available</string>
<string name="nochangerequested">No change requested</string> <string name="nochangerequested">No change requested</string>
<string name="openapsma_request_label">Request</string> <string name="openapsma_request_label">Request</string>
<string name="openapsma_minbg_label">Low target</string>
<string name="rate">Rate</string> <string name="rate">Rate</string>
<string name="duration">Duration</string> <string name="duration">Duration</string>
<string name="reason">Reason</string> <string name="reason">Reason</string>
@ -209,8 +208,7 @@
<string name="el_lang">Greek</string> <string name="el_lang">Greek</string>
<string name="it_lang">Italian</string> <string name="it_lang">Italian</string>
<string name="ru_lang">Russian</string> <string name="ru_lang">Russian</string>
<string name="openapsma_low_summary">The minimum BG value to be in range.</string> <string name="sv_lang">Swedish</string>
<string name="openapsma_high_summary">The maximum BG value to be in range.</string>
<string name="openapsma_maxbasal_title">Max U/hr a Temp Basal can be set to</string> <string name="openapsma_maxbasal_title">Max U/hr a Temp Basal can be set to</string>
<string name="openapsma_maxbasal_summary">This value is called max basal in OpenAPS context</string> <string name="openapsma_maxbasal_summary">This value is called max basal in OpenAPS context</string>
<string name="openapsma_maxiob_title">Maximum basal IOB OpenAPS can deliver [U]</string> <string name="openapsma_maxiob_title">Maximum basal IOB OpenAPS can deliver [U]</string>
@ -318,7 +316,6 @@
<string name="objectives_5_gate">1 week successful daytime looping with regular carb entry</string> <string name="objectives_5_gate">1 week successful daytime looping with regular carb entry</string>
<string name="objectives_6_objective">Enabling additional features for daytime use, such as advanced meal assist</string> <string name="objectives_6_objective">Enabling additional features for daytime use, such as advanced meal assist</string>
<string name="youareonallowedlimit">You reached allowed limit</string> <string name="youareonallowedlimit">You reached allowed limit</string>
<string name="openapsma_target_bg">Target value for calculations</string>
<string name="noprofileselected">No profile selected</string> <string name="noprofileselected">No profile selected</string>
<string name="smscommunicator_loophasbeendisabled">Loop has been disabled</string> <string name="smscommunicator_loophasbeendisabled">Loop has been disabled</string>
<string name="smscommunicator_loophasbeenenabled">Loop has been enabled</string> <string name="smscommunicator_loophasbeenenabled">Loop has been enabled</string>

View file

@ -3,22 +3,6 @@
<PreferenceCategory <PreferenceCategory
android:key="openaps" android:key="openaps"
android:title="@string/openapsma"> android:title="@string/openapsma">
<EditTextPreference
android:defaultValue=""
android:key="openapsma_min_bg"
android:numeric="decimal"
android:title="@string/openapsma_low_summary" />
<EditTextPreference
android:defaultValue=""
android:key="openapsma_max_bg"
android:numeric="decimal"
android:title="@string/openapsma_high_summary" />
<EditTextPreference
android:defaultValue=""
android:key="openapsma_target_bg"
android:numeric="decimal"
android:title="@string/openapsma_target_bg" />
<EditTextPreference <EditTextPreference
android:defaultValue="1" android:defaultValue="1"