diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index f447b1aa5c..792fcd1505 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -147,4 +147,6 @@ -keep class com.newrelic.** { *; } -dontwarn com.newrelic.** --keepattributes Exceptions, Signature, InnerClasses, LineNumberTable \ No newline at end of file +-keepattributes Exceptions, Signature, InnerClasses, LineNumberTable + +-keep class com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.* \ No newline at end of file diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java b/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java index a985fe6ac4..7de98bf8d7 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java @@ -51,6 +51,7 @@ import com.eveningoutpost.dexdrip.services.G5CollectionService; import com.eveningoutpost.dexdrip.services.Ob1G5CollectionService; import com.eveningoutpost.dexdrip.services.WifiCollectionService; +import com.eveningoutpost.dexdrip.ui.helpers.FloatingLocaleActivityWithScreenshot; import com.eveningoutpost.dexdrip.utilitymodels.JamorhamShowcaseDrawer; import com.eveningoutpost.dexdrip.utilitymodels.PersistentStore; import com.eveningoutpost.dexdrip.utilitymodels.Pref; @@ -64,7 +65,6 @@ import com.eveningoutpost.dexdrip.cgm.carelinkfollow.CareLinkFollowService; import com.eveningoutpost.dexdrip.insulin.inpen.InPenEntry; import com.eveningoutpost.dexdrip.insulin.inpen.InPenService; -import com.eveningoutpost.dexdrip.utils.ActivityWithMenu; import com.eveningoutpost.dexdrip.utils.DexCollectionType; import com.eveningoutpost.dexdrip.watch.lefun.LeFunEntry; import com.eveningoutpost.dexdrip.watch.lefun.LeFunService; @@ -81,7 +81,9 @@ import java.util.HashSet; import java.util.List; -public class MegaStatus extends ActivityWithMenu { +import lombok.val; + +public class MegaStatus extends FloatingLocaleActivityWithScreenshot { private static Activity mActivity; @@ -451,7 +453,10 @@ protected void onResume() { @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. - //getMenuInflater().inflate(R.menu.menu_mega_status, menu); + if (FloatingLocaleActivityWithScreenshot.localeString == null) { + // only if we are not forced to a locale + getMenuInflater().inflate(R.menu.menu_mega_status, menu); + } return true; } @@ -463,7 +468,13 @@ public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); //noinspection SimplifiableIfStatement - if (id == R.id.action_settings) { + if (id == R.id.action_screenshot) { + val lang = "en"; // force in this language + val intent = JoH.getStartActivityIntent(MegaStatus.class); + intent.putExtra(FORCE_ACTIVITY_LANGUAGE,lang); + intent.putExtra(SCREENSHOT_AND_EXIT, true); + FloatingLocaleActivityWithScreenshot.localeString = lang; + xdrip.getAppContext().startActivity(intent); return true; } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cloud/jamcm/Pusher.java b/app/src/main/java/com/eveningoutpost/dexdrip/cloud/jamcm/Pusher.java index becf5afc2a..4f33544e21 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cloud/jamcm/Pusher.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cloud/jamcm/Pusher.java @@ -63,6 +63,7 @@ public class Pusher { private static final PowerManager.WakeLock wakeLock = getWakeLock("pusher-wake", 1000); private static volatile boolean running; + private static volatile boolean reconnect; private static volatile Pusher instance; @@ -88,6 +89,7 @@ public static synchronized Pusher immortality() { running = true; final Pusher client = new Pusher(); instance = client; + reconnect = false; // already new final Thread t = new Thread(() -> { client.start(); running = false; @@ -113,6 +115,11 @@ public static synchronized Pusher getInstance() { } } + public static synchronized void requestReconnect() { + reconnect = true; + log("Reconnect requested"); + } + public static boolean enabled() { return Pref.getBoolean("use_xdrip_cloud_sync", false); } @@ -273,6 +280,11 @@ private void listenForMessages() throws IOException { } else { reconnectTimer = Math.max(0, reconnectTimer - 1000); // For each success reduce the reconnect timer by 1 second receivedStatistics.onMessage(); + if (reconnect) { + reconnect = false; + log("Initiating reconnection"); + closeConnection(); + } } } } catch (SocketTimeoutException te) { diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/nfc/NFControl.java b/app/src/main/java/com/eveningoutpost/dexdrip/nfc/NFControl.java index 68fc8db0ea..a55a3501e5 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/nfc/NFControl.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/nfc/NFControl.java @@ -40,9 +40,9 @@ private static int getReaderFlags() { // if 0 then nothing enabled } if (GlucoMen.isEnabled()) { - flags |= NfcAdapter.FLAG_READER_NFC_V - | NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK - | NfcAdapter.FLAG_READER_NO_PLATFORM_SOUNDS; + flags |= NfcAdapter.FLAG_READER_NFC_V + | NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK + | NfcAdapter.FLAG_READER_NO_PLATFORM_SOUNDS; } return flags; @@ -58,7 +58,11 @@ private static Bundle getOptionsBundle() { } } - public static void initNFC(final Activity context, final boolean disable) { + public static void initNFCbackground(final Activity context, final boolean disable) { + new Thread(() -> NFControl.initNFC(context, disable)).start(); + } + + public static synchronized void initNFC(final Activity context, final boolean disable) { UserError.Log.d(TAG, "InitNFC start"); val mNfcAdapter = NfcAdapter.getDefaultAdapter(context); val flags = disable ? 0 : getReaderFlags(); @@ -93,11 +97,19 @@ public static void initNFC(final Activity context, final boolean disable) { } UserError.Log.d(TAG, "Enabling reader mode with flags: " + flags); - mNfcAdapter.enableReaderMode(context, new TagMultiplexer(context), flags, getOptionsBundle()); + try { + mNfcAdapter.enableReaderMode(context, new TagMultiplexer(context), flags, getOptionsBundle()); + } catch (Exception e) { + UserError.Log.e(TAG, "Got exception enabling reader mode: " + e); + } } else { if (mNfcAdapter != null) { UserError.Log.d(TAG, "Disabling reader mode"); - mNfcAdapter.disableReaderMode(context); + try { + mNfcAdapter.disableReaderMode(context); + } catch (Exception e) { + UserError.Log.e(TAG, "Got exception disabling reader mode: " + e); + } } } } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/services/DoNothingService.java b/app/src/main/java/com/eveningoutpost/dexdrip/services/DoNothingService.java index 5701e39464..60087779b0 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/services/DoNothingService.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/services/DoNothingService.java @@ -241,8 +241,10 @@ public static List megaStatus() { val due = Pusher.getInstance().getNextReconnectionDue(); l.add(new StatusItem("Next reconnection", due != -1 ? niceTimeScalar(Math.max(msTill(due), 0)) : "Unknown")); } - l.add(new StatusItem("Sent hour / total", Pusher.sentLastHour() + " (" + Pusher.sentTotal() + ")")); - l.add(new StatusItem("Recv hour / total", Pusher.receivedLastHour() + " (" + Pusher.receivedTotal() + ")")); + if (Home.get_engineering_mode()) { + l.add(new StatusItem("Sent hour / total", Pusher.sentLastHour() + " (" + Pusher.sentTotal() + ")")); + l.add(new StatusItem("Recv hour / total", Pusher.receivedLastHour() + " (" + Pusher.receivedTotal() + ")")); + } } catch (Exception e) { diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/services/PlusSyncService.java b/app/src/main/java/com/eveningoutpost/dexdrip/services/PlusSyncService.java index c6e3497db9..ca7e9c038b 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/services/PlusSyncService.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/services/PlusSyncService.java @@ -12,6 +12,7 @@ import com.eveningoutpost.dexdrip.GcmActivity; import com.eveningoutpost.dexdrip.GoogleDriveInterface; +import com.eveningoutpost.dexdrip.cloud.jamcm.Pusher; import com.eveningoutpost.dexdrip.utilitymodels.UpdateActivity; import com.eveningoutpost.dexdrip.xdrip; @@ -35,6 +36,7 @@ public static void clearandRestartSyncService(Context context) { GoogleDriveInterface.invalidate(); GcmActivity.token = null; // invalidate speedup(); + Pusher.requestReconnect(); startSyncService(context, "clearAndRestart"); } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/ui/helpers/FloatingLocaleActivityWithScreenshot.java b/app/src/main/java/com/eveningoutpost/dexdrip/ui/helpers/FloatingLocaleActivityWithScreenshot.java new file mode 100644 index 0000000000..823a17dd9f --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/ui/helpers/FloatingLocaleActivityWithScreenshot.java @@ -0,0 +1,114 @@ +package com.eveningoutpost.dexdrip.ui.helpers; + +import android.Manifest; +import android.content.Context; +import android.content.pm.PackageManager; +import android.os.Environment; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; + +import com.eveningoutpost.dexdrip.models.JoH; +import com.eveningoutpost.dexdrip.utilitymodels.Inevitable; +import com.eveningoutpost.dexdrip.utils.ActivityWithMenu; +import com.eveningoutpost.dexdrip.xdrip; + +import java.io.File; +import java.util.Locale; + +/** + * JamOrHam + */ +public abstract class FloatingLocaleActivityWithScreenshot extends ActivityWithMenu { + + public static final String FORCE_ACTIVITY_LANGUAGE = "FORCE_ACTIVITY_LANGUAGE"; + public static final String SCREENSHOT_AND_EXIT = "SCREENSHOT_AND_EXIT"; + + private static final int MY_PERMISSIONS_REQUEST_STORAGE_SCREENSHOT = 39032; + + public static volatile String localeString = null; + private Locale locale; + + + private Context specialContext; + + private Context oldContext; + + @Override + protected void attachBaseContext(Context newBase) { + if (localeString != null) { + locale = new Locale(localeString); + specialContext = LocaleHelper.setLocale(newBase, locale); + super.attachBaseContext(specialContext); + } else { + super.attachBaseContext(newBase); + } + } + + @Override + protected void onResume() { + if (localeString != null) { + oldContext = xdrip.getAppContext(); + xdrip.setContextAlways(specialContext); + if (checkPermissions()) { + doScreenShot(); + } + } + super.onResume(); + } + + private boolean checkPermissions() { + if (ContextCompat.checkSelfPermission(getApplicationContext(), + Manifest.permission.WRITE_EXTERNAL_STORAGE) + != PackageManager.PERMISSION_GRANTED) { + + ActivityCompat.requestPermissions(this, + new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, + MY_PERMISSIONS_REQUEST_STORAGE_SCREENSHOT); + return false; + } + return true; + } + + + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + if (requestCode == MY_PERMISSIONS_REQUEST_STORAGE_SCREENSHOT) { + if ((grantResults.length > 0) && (grantResults[0] == PackageManager.PERMISSION_GRANTED)) { + doScreenShot(); + } else { + JoH.static_toast_long(this, "Cannot download without storage permission"); + } + } + } + + private void doScreenShot() { + Inevitable.task("screenshot-screen", 1500, () -> JoH.runOnUiThread(() -> { + View rootView = getWindow().getDecorView().getRootView(); + // TODO probably should centralize this code + String file_name = "xDrip-Status-Screenshot-" + JoH.dateTimeText(JoH.tsl()).replace(" ", "-").replace(":", "-").replace(".", "-") + ".png"; + final String dirPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath() + "/Screenshots"; + JoH.bitmapToFile(JoH.screenShot(rootView, "xDrip+ Status @ " + JoH.dateText(JoH.tsl())), dirPath, file_name); + JoH.shareImage(getApplicationContext(), new File(dirPath + "/" + file_name)); + finish(); + })); + } + + @Override + protected void onPause() { + super.onPause(); + if (localeString != null) { + xdrip.setContextAlways(oldContext); + } + } + + @Override + protected void onDestroy() { + localeString = null; + super.onDestroy(); + } + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/ui/helpers/LocaleHelper.java b/app/src/main/java/com/eveningoutpost/dexdrip/ui/helpers/LocaleHelper.java new file mode 100644 index 0000000000..0a9b4d3f47 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/ui/helpers/LocaleHelper.java @@ -0,0 +1,21 @@ +package com.eveningoutpost.dexdrip.ui.helpers; + +import android.content.Context; +import android.content.res.Configuration; +import android.content.res.Resources; + +import java.util.Locale; + +/** + * JamOrHam + */ +public class LocaleHelper { + + public static Context setLocale(Context context, Locale locale) { + Resources resources = context.getResources(); + Configuration configuration = resources.getConfiguration(); + configuration.setLocale(locale); + return context.createConfigurationContext(configuration); + } + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utilitymodels/Pref.java b/app/src/main/java/com/eveningoutpost/dexdrip/utilitymodels/Pref.java index d7aa093014..bf2ae6b6b2 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utilitymodels/Pref.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utilitymodels/Pref.java @@ -7,6 +7,8 @@ import com.eveningoutpost.dexdrip.models.UserError; import com.eveningoutpost.dexdrip.xdrip; +import lombok.val; + /** * Created by jamorham on 01/01/2018. *

@@ -100,6 +102,39 @@ public static String getStringTrimmed(final String pref, final String def) { return str; } + public static Object getValue(String key) { + initializePrefs(); + if (!prefs.contains(key)) { + return null; + } + + try { + return prefs.getBoolean(key, false); + } catch (ClassCastException e) { + // + } + + try { + return prefs.getString(key, null); + } catch (ClassCastException e) { + // + } + + return null; + } + + public static String getAsString(final String pref, String def) { + initializePrefs(); + val v = getValue(pref); + if (v instanceof Boolean) { + return Boolean.toString((Boolean) v); + } else if (v instanceof String) { + return (String)v; + } else { + return def; + } + } + public static boolean setString(final String pref, final String str) { initializePrefs(); if (prefs != null) { diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java index 0ea45c2b4c..a871195526 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java @@ -67,6 +67,9 @@ import com.eveningoutpost.dexdrip.cgm.nsfollow.NightscoutFollow; import com.eveningoutpost.dexdrip.cgm.sharefollow.ShareFollowService; import com.eveningoutpost.dexdrip.cgm.webfollow.Cpref; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.auth.CareLinkAuthenticator; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.auth.CareLinkCredentialStore; +import com.eveningoutpost.dexdrip.cloud.jamcm.Pusher; import com.eveningoutpost.dexdrip.g5model.DexSyncKeeper; import com.eveningoutpost.dexdrip.g5model.Ob1G5StateMachine; import com.eveningoutpost.dexdrip.healthconnect.HealthConnectEntry; @@ -571,6 +574,7 @@ public void showSearch(MenuItem item) { private final SharedPreferences.OnSharedPreferenceChangeListener xDripCloudListener = (sharedPreferences, key) -> { if (key!= null && key.equals("use_xdrip_cloud_sync")) { + Pusher.requestReconnect(); CollectionServiceStarter.restartCollectionServiceBackground(); } }; diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/xdrip.java b/app/src/main/java/com/eveningoutpost/dexdrip/xdrip.java index 5d8442e36f..a4a2f5bed7 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/xdrip.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/xdrip.java @@ -72,6 +72,14 @@ public static void setContext(final Context context) { } } + public static void setContextAlways(final Context context) { + if (context == null) return; + Log.d(TAG, "Set context: " + context.getResources().getConfiguration().getLocales().get(0).getLanguage() + + " was: " + xdrip.context.getResources().getConfiguration().getLocales().get(0).getLanguage()); + xdrip.context = context; + } + + @Override public void onCreate() { xdrip.context = getApplicationContext(); diff --git a/app/src/main/res/menu/menu_mega_status.xml b/app/src/main/res/menu/menu_mega_status.xml index 4f1f762409..e54fb30eb9 100644 --- a/app/src/main/res/menu/menu_mega_status.xml +++ b/app/src/main/res/menu/menu_mega_status.xml @@ -1,9 +1,11 @@

+ android:icon="@drawable/ic_share_variant_grey600_24dp" + android:title="@string/screenshot" + app:showAsAction="always" /> diff --git a/app/src/main/res/values-cs/strings-cs.xml b/app/src/main/res/values-cs/strings-cs.xml index 527e2710dd..a397efba0b 100644 --- a/app/src/main/res/values-cs/strings-cs.xml +++ b/app/src/main/res/values-cs/strings-cs.xml @@ -1415,6 +1415,7 @@ môže spôsobovať pády alebo zamrznutia telefónu! Klepnutím otestujte predt Ošetření, kalibrace a další jiné akce zadané sledujícími budou přijaty i na tomto zařízení Přijímat akce sledujícího Účast v Whole House síti + Používat nové cloudové servery xDrip+. Sledované (master) a sledující (follower) zařízení musí mít toto nastavení stejné. Whole House Toto zařízení bude kolektorem pro Whole House síť Libre Whole House @@ -1727,6 +1728,7 @@ môže spôsobovať pády alebo zamrznutia telefónu! Klepnutím otestujte predt Pokračovat Speciální způsob párování pro telefony Samsung Úsporný režim + Použít xDrip+ cloud Snížit spotřebu baterie a objem přenesených dat pomocí dávkového zpracování a vyloučení nepotřebných dat Zjednodušit grafy vyhlazením (odstraněním) odchylných hodnot glykémií. Toto nastavení neovlivní aktuální hodnotu glykémie, výstrahy a odesílanou hodnotu glykémie. Vyhlazování grafu @@ -1854,4 +1856,5 @@ môže spôsobovať pády alebo zamrznutia telefónu! Klepnutím otestujte predt Používat světlo fotoaparátu Blikat světlem fotoaparátu během trvání výstrahy, pokud je telefon připojen k nabíječce Senzor G7 by se měl spustit automaticky + Snímek obrazovky diff --git a/app/src/main/res/values-es/strings-es.xml b/app/src/main/res/values-es/strings-es.xml index 9d86e98acf..d3b0b63827 100644 --- a/app/src/main/res/values-es/strings-es.xml +++ b/app/src/main/res/values-es/strings-es.xml @@ -1395,6 +1395,7 @@ Se aceptarán tratamientos, calibraciones y otras acciones de los seguidores Aceptar acciones de los seguidores Participar en una Red Casera + Utilice los nuevos servidores de nube xDrip+. Maestro y seguidores deben tener este ajuste igual. Red Casera Este teléfono será colector en una red casera Red Casera Libre @@ -1715,6 +1716,7 @@ Continuar Método alternativo especial de emparejamiento Ahorro de energía + Usar xDrip Cloud Reducir la sobrecarga de la batería y red mediante el procesamiento por lotes y la exclusión de datos innecesarios Simplificar los gráficos suavizando las irregularidades Suavizar gráficos @@ -1842,4 +1844,5 @@ Usar luz de cámara Flashear luz de la cámara durante alertas al conectar a un cargador G7 debe iniciarse automáticamente + Captura de pantalla diff --git a/app/src/main/res/values-et/strings-et.xml b/app/src/main/res/values-et/strings-et.xml index f190a7dc34..0b1aac9598 100644 --- a/app/src/main/res/values-et/strings-et.xml +++ b/app/src/main/res/values-et/strings-et.xml @@ -1414,6 +1414,7 @@ Raviandmed, kalibreerimised ja muud jälgijate toimingud aktsepteeritakse Nõustuge jälgijate toimingutega Osale kogu maja võrgustikus + Kasuta uusi xDrip+ pilveservereid. Põhiseadmes ja jälgijatel peab see setting olema sama. Kogu maja See telefon on kogu maja võrgus vastuvõtjaks Libre kogu maja @@ -1734,6 +1735,7 @@ Jätka Spetsiaalne sidumise lahendus Säästa energiat + Kasuta xDrip pilveteenust Vähenda aku ja võrgu koormust, kasutades pakett-töötlust ja välistades mittevajalikke andmeid Lihtsusta graafikuid, siludes ebakorrapärasusi varasemates näitudes. See ei mõjuta hetkenäitu, alarme ja edastatud väärtust. Graafiku silumine @@ -1861,4 +1863,5 @@ Kasuta kaamera välku Vilguta alarmide ajal kaamera välku kui laadija on ühendatud G7 peaks automaatselt käivituma + Ekraanipilt diff --git a/app/src/main/res/values-fr/strings-fr.xml b/app/src/main/res/values-fr/strings-fr.xml index d07bef790e..d8421289a6 100644 --- a/app/src/main/res/values-fr/strings-fr.xml +++ b/app/src/main/res/values-fr/strings-fr.xml @@ -1414,6 +1414,7 @@ Les traitements et étalonnages des abonnés seront acceptés Accepter les actions des abonnés Participer au réseau de la maison + Utilisez les nouveaux serveurs cloud de xDrip+. Les maîtres et les abonnés doivent tous avoir ce paramètre défini à l\'identique. Maison entière Ce téléphone sera un collecteur dans tout le réseau domestique Mode Libre dans toute la maison @@ -1734,6 +1735,7 @@ Procéder Contournement de jumelage spécial Économiser l\'énergie + Utiliser xDrip Cloud Réduire la charge sur la batterie et le réseau en utilisant le traitement par lots et en excluant les données inutiles Simplifier les graphiques en lissant les irrégularités des lectures précédentes. La lecture actuelle, les alertes et la valeur de diffusion ne sont pas affectées par ce paramètre. Lissage du graphique @@ -1861,4 +1863,5 @@ Utiliser la lumière de la caméra Allumer la lumière de la caméra lors des alertes si connecté à un chargeur Le G7 devrait démarrer automatiquement + Capture d\'écran diff --git a/app/src/main/res/values-hu/strings-hu.xml b/app/src/main/res/values-hu/strings-hu.xml index 30649fdce3..8d8eabedcb 100644 --- a/app/src/main/res/values-hu/strings-hu.xml +++ b/app/src/main/res/values-hu/strings-hu.xml @@ -382,8 +382,8 @@ Stabli, béta vagy alfa verziók választása Üzenet és app értékelés küldése az xDrip fejlesztőjének Master-ként beállítás - Ez a készülék fog adatot küldeni a követőknek - Parakeet helyadatok küldése követőknek + Ez a készülék fog adatot küldeni a Követőknek + Parakeet helyadatok küldése Követőknek Parakeet helyadatok megosztása Minden szinkronizáció szüneteltetése Ideiglenes intézkedésként minden szinkronizáció leállítása. A visszaállítás után a telefon újraindítása szükséges lehet. Figyelmesen használja! @@ -721,8 +721,8 @@ Jelszó Engedélyezze a Dexcom szerverekre feltöltéshez VC-értékek feltöltése - Leállítva = a felhasználói profilja és a követő app-ok az USA-n kívüliek - Engedélyezve = a felhasználói profilja és a követő app-ok az USA-n belüliek + Leállítva = a felhasználói profilja és a Követő app-ok az USA-n kívüliek + Engedélyezve = a felhasználói profilja és a Követő app-ok az USA-n belüliek Dexcom USA felhasználó Az Ön felhasználóneve a Dexcom oldalán Dexcom felhasználói fiók neve @@ -780,7 +780,7 @@ Kollektor akku riasztás Alacsony akku töltöttségi szint (%) - Új adat a követőn jelzés + Új adatról jelzés a Követőn Szénhidrát arány Inzulin profilok Itt tudja kiválasztani vagy beállítani az inzulin profilokat @@ -833,8 +833,8 @@ Mozgások követése és mutatása A mozgásadatok a követett eszköz és nem mobil saját adatai alapján Távoli mozgáskövetés - Legyen a mozgásadatok Master-eként beállítva, még ha a készülék követő is. Csak egyetlen készülékre állítható ez be! - Masterként mozgáskövetésben + Legyen a mozgásadatok Master-eként beállítva, még ha a készülék Követő is. Csak egyetlen készülékre állítható ez be! + Master-ként mozgáskövetésben Aktiválja az extra funkciókat, jármű észlelése esetén Jármű mód bekapcsolása Már magasabb érték esetén bekapcsolja az alacsonyérték riasztást jármű módban @@ -1266,9 +1266,9 @@ Medtrum natív Hex-diagnosztikai teszt értéke Medtrum hibakeresés - Követő web címe - Nightscout követő URL - A kezeléseket is töltse le Nightscout követőként + Követendő Nighscout web címe + Nightscout URL + A Követő a kezeléseket is töltse le Nightscout-ból Kezelések letöltése Nightscout követő késleltetés