diff --git a/.idea/misc.xml b/.idea/misc.xml index 5d19981032..fbb68289f4 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -37,7 +37,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index 214175aa23..8d3d4d5399 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -23,8 +23,8 @@ android { applicationId "info.nightscout.androidaps" minSdkVersion 21 targetSdkVersion 23 - versionCode 1005 - versionName "1.0.05" + versionCode 1006 + versionName "1.0.06" } buildTypes { release { diff --git a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java index d3b9a1aca6..4e4214e91f 100644 --- a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java @@ -1,20 +1,29 @@ package info.nightscout.androidaps; import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.EditTextPreference; +import android.preference.ListPreference; +import android.preference.MultiSelectListPreference; +import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceFragment; +import android.preference.PreferenceGroup; import android.preference.PreferenceManager; -import android.os.Bundle; import info.nightscout.androidaps.events.EventPreferenceChange; import info.nightscout.androidaps.events.EventRefreshGui; +import info.nightscout.androidaps.plugins.DanaR.BluetoothDevicePreference; import info.nightscout.utils.LocaleHelper; public class PreferencesActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener { + MyPreferenceFragment myPreferenceFragment; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit(); + myPreferenceFragment = new MyPreferenceFragment(); + getFragmentManager().beginTransaction().replace(android.R.id.content, myPreferenceFragment).commit(); PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this); } @@ -22,12 +31,43 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { MainApp.bus().post(new EventPreferenceChange()); if (key.equals("language")) { - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); - String lang = SP.getString("language", "en"); + String lang = sharedPreferences.getString("language", "en"); LocaleHelper.setLocale(getApplicationContext(), lang); recreate(); MainApp.bus().post(new EventRefreshGui()); } + updatePrefSummary(myPreferenceFragment.getPreference(key)); + } + + private static void updatePrefSummary(Preference pref) { + if (pref instanceof ListPreference || pref instanceof BluetoothDevicePreference) { + ListPreference listPref = (ListPreference) pref; + pref.setSummary(listPref.getEntry()); + } + if (pref instanceof EditTextPreference) { + EditTextPreference editTextPref = (EditTextPreference) pref; + if (pref.getTitle().toString().toLowerCase().contains("password")) + { + pref.setSummary("******"); + } else { + pref.setSummary(editTextPref.getText()); + } + } + if (pref instanceof MultiSelectListPreference) { + EditTextPreference editTextPref = (EditTextPreference) pref; + pref.setSummary(editTextPref.getText()); + } + } + + private static void initSummary(Preference p) { + if (p instanceof PreferenceGroup) { + PreferenceGroup pGrp = (PreferenceGroup) p; + for (int i = 0; i < pGrp.getPreferenceCount(); i++) { + initSummary(pGrp.getPreference(i)); + } + } else { + updatePrefSummary(p); + } } public static class MyPreferenceFragment extends PreferenceFragment { @@ -42,9 +82,16 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre addPreferencesFromResource(R.xml.pref_openapsma); if (Config.LOWSUSPEDENABLED) addPreferencesFromResource(R.xml.pref_lowsuspend); + addPreferencesFromResource(R.xml.pref_nightscout); + if (Config.DANAR) + addPreferencesFromResource(R.xml.pref_danar); if (Config.CAREPORTALENABLED) addPreferencesFromResource(R.xml.pref_careportal); + initSummary(getPreferenceScreen()); + } + public Preference getPreference (String key) { + return findPreference(key); } } } \ No newline at end of file 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 4e9512f0b2..1b9b1ea3d5 100644 --- a/app/src/main/java/info/nightscout/androidaps/Services/DataService.java +++ b/app/src/main/java/info/nightscout/androidaps/Services/DataService.java @@ -2,7 +2,9 @@ package info.nightscout.androidaps.Services; import android.app.IntentService; import android.content.Intent; +import android.content.SharedPreferences; import android.os.Bundle; +import android.preference.PreferenceManager; import android.support.annotation.Nullable; import com.j256.ormlite.dao.Dao; @@ -224,7 +226,9 @@ public class DataService extends IntentService { } PumpInterface pump = MainApp.getConfigBuilder().getActivePump(); if (pump != null) { - pump.setNewBasalProfile(nsProfile); + SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + if (SP.getBoolean("syncprofiletopump", false)) + pump.setNewBasalProfile(nsProfile); } else { log.error("No active pump selected"); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/BluetoothDevicePreference.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/BluetoothDevicePreference.java new file mode 100644 index 0000000000..ba7ec5f533 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/BluetoothDevicePreference.java @@ -0,0 +1,37 @@ +package info.nightscout.androidaps.plugins.DanaR; + +import android.bluetooth.*; +import android.content.Context; +import android.preference.ListPreference; +import android.util.AttributeSet; + +import java.util.Set; + +public class BluetoothDevicePreference extends ListPreference { + + public BluetoothDevicePreference(Context context, AttributeSet attrs) { + super(context, attrs); + + BluetoothAdapter bta = BluetoothAdapter.getDefaultAdapter(); + Integer size = 0; + if (bta != null) { + size += bta.getBondedDevices().size(); + } + CharSequence[] entries = new CharSequence[size]; + int i = 0; + if (bta != null) { + Set pairedDevices = bta.getBondedDevices(); + for (BluetoothDevice dev : pairedDevices) { + entries[i] = dev.getName(); + i++; + } + } + setEntries(entries); + setEntryValues(entries); + } + + public BluetoothDevicePreference(Context context) { + this(context, null); + } + +} \ No newline at end of file diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index abf42e92e3..0089a3d87c 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -1,9 +1,6 @@ AndroidAPS - Closed Loop - Otevřená smyčka - Аларма APS режим Ср. изменение Базал @@ -68,154 +65,15 @@ English Ново действие КЗ: - Лимит - Smyčka - APS - Po zpracování omezení - Nastaveno pumpou - SMYČKA ZAKÁZÁNA OMEZENÍM - Low Suspend - Hodnota nízké glykémie - Ručně spuštěno - Předpokládaná nízká glykémie: - Max U/h dočasného bázálu jsou - Max bazál - Maximální množství nebolusového IOB, které může OpenAPS používat - Maximální bazální IOB - min zpět - Minimální trvání - Záloha - Ukončit - Nastavení - Aktualizuj ošetření z NS - Inicializuj databáze - Test alarmu - ŽÁDNÉ APS NEVYBRÁNO NEBO NEVRÁTILO VÝSLEDEK - Změna nepožadována - Dosud nebyl načten profil z NS - Používat absolutní hodnoty místo procent při nahrávání do NS - Použít absolutní hodnoty - NSClient - Aktivní profil: - Bazál: - Trvání inzulínu: - Inzulínosacharidový poměr: - ŽÁDNÝ PROFIL NENASTAVEN - Cíl: - Jednotky: - Cíle - Začátek - Kontrola - Splnit: - Cíl: - OK - Součaný bazál - Modul zakázán - Vstupní glykémie - Vstupní parametry - IOB data - Poslední provedení - Poslední spuštění - Data o jídle - Cílová nízká glykémie - Nedostupná data o glykémiích - Nedostupný profil - Žádná pumpa - Profil - Požadavek - Výsledek - Sputit teď - Dostupné nové doporučení - Přehled - Kalkulačka - Hodnota bazálu - % (100% = současný) - Bolus - NS profil - Stav pumpy dostupný v NS - Hodnota: - Zdůvodnění: - Opravdu aktualizovat ošetření z NS - Bezpečnost - Použít kombo bolusy pro bazály větší než 100% - Použít kombo bolusy - Spustit nový kombo bolus: - Spustit nový dočasný bazál: - Jednoduchý profil - Dočasné bazály - IOB: - Celkové IOB: - Inz: - Hodn: - Trv: - Nastavení - Chyba podání bolusu - Ošetření - Aktivita: - Sacharidy: - Inzulín: - IOB: - Celková aktivita IOB: - Celkové IOB: - Množtví sacharidů - Množství inzulínu - Bazální IOB - Glykémie - Bolusové IOB - Sacharidy - Korekce - CELKEM - U - Max. povolený bolus - Max. povolené sacharidy - Bezpečnost zadání ošetřeni - Nepodporovaná verze NSClient - Virtualní pumpa - Základní hodnota bazálu: - Baterie: - Kombo bolus: - Zásobník: - OK - Chyba databáze - Dočasný bazál: - VIRTUÁLNÍ PUMPA - xDrip - Kombo bolus - Dočasný bazál - Citlivost: - NSClient není nainstalován. Záznam je ztracen! - Předpokládaná nízká glykémie: Dočasný bazál 0% - Nízká glykémie: Dočasný bazál 0% - Low Suspend: Zrušení dočasného bazálu - Low Suspend: Тип събитие КЗ тип - AndroidAPS - OpenAPS MA Nightscout версия: NSClient версия: - POSLAT - Chybí - Enabled - Viditelný - Nahoru Настройките са експортирани - Nastavení importováno Импортирай настройки от: Файлът не съществува Експортирай настройки до - Exportovat nastavení - Importovat nastavení German - Limity APS - Maximální hodnota ještě v rozsahu - Horní limit - Minimální hodnota ještě v rozsahu - Dolní limit - Maximální povolený bazál [U/h] - Maximální bazál - Maximální IOB z bazálů - Maximální nebolusové IOB, které může OpenAPS použít - Cílový rozsah pro OpenAPS български + Nightscout diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 9698ecdd90..69bc8bfb8d 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -3,7 +3,6 @@ AndroidAPS Uzavřená smyčka Otevřená smyčka - Výstaha Typ smyčky Prům. změna Bazál @@ -68,7 +67,6 @@ English Zadej nové ošetření Glykémie: - Limity Smyčka APS Po zpracování omezení @@ -78,10 +76,6 @@ Hodnota nízké glykémie Ručně spuštěno Předpokládaná nízká glykémie: - Max U/h dočasného bázálu jsou - Max bazál - Maximální množství nebolusového IOB, které může OpenAPS používat - Maximální bazální IOB min zpět Minimální trvání Záloha @@ -93,8 +87,7 @@ ŽÁDNÉ APS NEVYBRÁNO NEBO NEVRÁTILO VÝSLEDEK Změna nepožadována Dosud nebyl načten profil z NS - Používat absolutní hodnoty místo procent při nahrávání do NS - Použít absolutní hodnoty + Vždy použít absolutní hodnoty bazálu NSClient Aktivní profil: Bazál: @@ -137,8 +130,7 @@ Zdůvodnění: Opravdu aktualizovat ošetření z NS Bezpečnost - Použít kombo bolusy pro bazály větší než 100% - Použít kombo bolusy + Použít kombo bolusy pro >200% Spustit nový kombo bolus: Spustit nový dočasný bazál: Jednoduchý profil @@ -148,7 +140,6 @@ Inz: Hodn: Trv: - Nastavení Chyba podání bolusu Ošetření Aktivita: @@ -166,8 +157,8 @@ Korekce CELKEM U - Max. povolený bolus - Max. povolené sacharidy + Maximální povolený bolus [U] + Maximální povolené sacharidy [g] Bezpečnost zadání ošetřeni Nepodporovaná verze NSClient Virtualní pumpa @@ -190,7 +181,6 @@ Low Suspend: Typ události Zadání glykémie - AndroidAPS OpenAPS MA Verze Nightscoutu: Verze NSClienta: @@ -207,16 +197,10 @@ Exportovat nastavení Importovat nastavení German - Limity APS - Maximální hodnota ještě v rozsahu - Horní limit - Minimální hodnota ještě v rozsahu - Dolní limit + Maximální hodnota glykémie ještě v rozsahu + Minimální hodnota glykémie ještě v rozsahu Maximální povolený bazál [U/h] - Maximální bazál - Maximální IOB z bazálů - Maximální nebolusové IOB, které může OpenAPS použít - Cílový rozsah pro OpenAPS + Maximální bazální IOB [U] Bulgarian POTVRDIT Jazyk @@ -224,4 +208,8 @@ Připojuji DanaR Odpojeno + DanaR Bluetooth zařízení + DanaR nastavení + Synchronizovat NS profil do pumpy + Nightscout \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index f67514c83a..077b4f7bcf 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -23,8 +23,6 @@ Ins: Ratio: Dur: - AndroidAPS - Einstellungen Bolus Abgabefehler Batterie: OK @@ -121,8 +119,7 @@ Einfaches Profil Setze neuen extended Bolus: Akzeptiere neue temp Basalrate: - Benutze extended Bolus - 200%)]]> + Benutze extended Bolus für hohe temps (\>200%)> Möchtest du die Treatments von Nightscout abrufen Pumpen Status verfügbar in NS % (100% = current) @@ -147,8 +144,7 @@ Objectives KEIN PROFIL GESETZT NSClient nicht installiert. Record lost! - Benutze absolute Werte - Use absolute basal values instead of percent in upload to NS + Use absolute basal values instead of percent in upload to NS Bisher noch kein Profil von NS geladen No change requested NO APS SELECTED OR PROVIDED RESULT @@ -179,20 +175,15 @@ LOOP DISABLED BY CONSTRAINTS After processed constraints Loop - Limits Low BG threshold LOW: Temp basal 0% Low projected: LOW PROJECTED: Temp basal 0% Manual enacts - Max U/hr of Temp Basal can be set to Carbs constraint applied Reset Datenbanken Minimale Dauer - Max basal IOB min ago - Maximum amount of non-bolus IOB OpenAPS can deliver - Max basal Erneure treatments von NS Exit Fehlend @@ -205,17 +196,11 @@ Einstellungen importiert Einstellungen exportieren Einstellungen importieren - Alarm Deutsch - APS Limit - Hoher Wert - Niedriger Wert - Max Basal - Max Basal IOB - APS Zielbereich Max U/hr die man für eine Temp Basal setzen kann Maximale Menge von nicht bolus IOB die OpenAPs abgeben kann Maximalwert für deinen persönlichen Zielbereich. Minimalwert für deinen persönlichen Zielbereich. Bulgarian + Nightscout diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index f773dd3555..f092799237 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -13,11 +13,13 @@ @string/en_lang @string/cs_lang + @string/de_lang @string/bg_lang en cs + de bg \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 53c1ff4d81..fee4e248a9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,11 +1,8 @@ AndroidAPS - AndroidAPS - - Preferences Tratments safety - Max allowed bolus - Max allowed carbs + Max allowed bolus [U] + Max allowed carbs [g] Preferences Refresh treatments from NS @@ -13,10 +10,9 @@ Test alarm Reset databases Exit - Use extended boluses - Use extended boluses for high temps (\>200%) - Use absolute values - Use absolute basal values instead of percent in upload to NS + Use extended boluses for >200% + DanaR Bluetooth device + Always use basal absolute values Objective: Gate: @@ -114,17 +110,11 @@ After processed constraints Set by pump Last enacted - Alert Do you want to refresh treatments from Nightscout OK Cancel NO APS SELECTED OR PROVIDED RESULT Safety - Limits - Max basal - Max U/hr of Temp Basal can be set to - Max basal IOB - Maximum amount of non-bolus IOB OpenAPS can deliver Low BG threshold Plugin is disabled Constraints violation @@ -215,16 +205,10 @@ Export settings Import settings German - APS target BG range - The minimum value you consider to be in range. - The maximum value you consider to be in range. - Low Value - High Value - APS Limits + The minimum BG value to be in range. + The maximum BG value to be in range. Max U/hr a Temp Basal can be set to - Maximum amount of non-bolus IOB OpenAPS can deliver - Max Basal - Max Basal IOB + Maximum basal IOB OpenAPS can deliver [U] Bulgarian DISMISS Language @@ -233,5 +217,8 @@ Connecting Connected Disconnected + Sync Nightscout profile to pump + DanaR pump settings + Nightscout diff --git a/app/src/main/res/xml/pref_closedmode.xml b/app/src/main/res/xml/pref_closedmode.xml index 28c73428e9..d0e3ac25e6 100644 --- a/app/src/main/res/xml/pref_closedmode.xml +++ b/app/src/main/res/xml/pref_closedmode.xml @@ -2,7 +2,7 @@ + android:title="@string/loop"> + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/pref_language.xml b/app/src/main/res/xml/pref_language.xml index 562089e27c..69ca28a8df 100644 --- a/app/src/main/res/xml/pref_language.xml +++ b/app/src/main/res/xml/pref_language.xml @@ -2,7 +2,7 @@ + android:title="@string/configbuilder_general"> + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/pref_openapsma.xml b/app/src/main/res/xml/pref_openapsma.xml index d9fc575519..f7d8699df8 100644 --- a/app/src/main/res/xml/pref_openapsma.xml +++ b/app/src/main/res/xml/pref_openapsma.xml @@ -1,37 +1,29 @@ + android:key="openaps" + android:title="@string/openapsma"> + android:title="@string/openapsma_low_summary" /> - - + android:title="@string/openapsma_high_summary" /> + android:title="@string/openapsma_maxbasal_summary" /> + android:title="@string/openapsma_maxiob_summary" /> \ No newline at end of file