diff --git a/_docs/icons/ic_blueowl.svg b/_docs/icons/ic_blueowl.svg
new file mode 100644
index 0000000000..56d970fa1a
--- /dev/null
+++ b/_docs/icons/ic_blueowl.svg
@@ -0,0 +1,86 @@
+
+
+
\ No newline at end of file
diff --git a/_docs/icons/ic_yellowowl.svg b/_docs/icons/ic_yellowowl.svg
new file mode 100644
index 0000000000..8b739a831c
--- /dev/null
+++ b/_docs/icons/ic_yellowowl.svg
@@ -0,0 +1,86 @@
+
+
+
diff --git a/app-wear-shared/shared/src/main/res/values-af-rZA/strings.xml b/app-wear-shared/shared/src/main/res/values-af-rZA/strings.xml
index 12e3c4bf90..6f9ad74f9e 100644
--- a/app-wear-shared/shared/src/main/res/values-af-rZA/strings.xml
+++ b/app-wear-shared/shared/src/main/res/values-af-rZA/strings.xml
@@ -21,4 +21,5 @@
Handskudding
Gekoppel
Ontkoppel
+
diff --git a/app-wear-shared/shared/src/main/res/values-bg-rBG/strings.xml b/app-wear-shared/shared/src/main/res/values-bg-rBG/strings.xml
index 803b3124e9..413b2b31d4 100644
--- a/app-wear-shared/shared/src/main/res/values-bg-rBG/strings.xml
+++ b/app-wear-shared/shared/src/main/res/values-bg-rBG/strings.xml
@@ -33,4 +33,5 @@
Свързана
Разкачане
Изчакване за разкачане
+
diff --git a/app-wear-shared/shared/src/main/res/values-ca-rES/strings.xml b/app-wear-shared/shared/src/main/res/values-ca-rES/strings.xml
index 7dd443a35b..e2a9ff86bd 100644
--- a/app-wear-shared/shared/src/main/res/values-ca-rES/strings.xml
+++ b/app-wear-shared/shared/src/main/res/values-ca-rES/strings.xml
@@ -24,4 +24,5 @@
Connectat
Desconnectant
S\'està esperant la desconnexió
+
diff --git a/app-wear-shared/shared/src/main/res/values-cs-rCZ/strings.xml b/app-wear-shared/shared/src/main/res/values-cs-rCZ/strings.xml
index a4439c2e52..ccd535e84b 100644
--- a/app-wear-shared/shared/src/main/res/values-cs-rCZ/strings.xml
+++ b/app-wear-shared/shared/src/main/res/values-cs-rCZ/strings.xml
@@ -33,4 +33,11 @@
Připojeno
Odpojuji
Čekám na odpojení
+
+ Vytvořeno: %1$s
+ Autor: %1$s
+ Jméno %1$s
+ Název souboru: %1$s
+ Verze ciferníku: %1$s
+ Výchozí ciferník
diff --git a/app-wear-shared/shared/src/main/res/values-da-rDK/strings.xml b/app-wear-shared/shared/src/main/res/values-da-rDK/strings.xml
index 4ebcf8b79a..3dae764b93 100644
--- a/app-wear-shared/shared/src/main/res/values-da-rDK/strings.xml
+++ b/app-wear-shared/shared/src/main/res/values-da-rDK/strings.xml
@@ -33,4 +33,5 @@
Tilsuttet
Afbryder
Venter på afbrydelse
+
diff --git a/app-wear-shared/shared/src/main/res/values-de-rDE/strings.xml b/app-wear-shared/shared/src/main/res/values-de-rDE/strings.xml
index 77215fd049..6bd82feff6 100644
--- a/app-wear-shared/shared/src/main/res/values-de-rDE/strings.xml
+++ b/app-wear-shared/shared/src/main/res/values-de-rDE/strings.xml
@@ -33,4 +33,5 @@
Verbunden
Verbindung wird getrennt
Warte auf Trennung der Verbindung
+
diff --git a/app-wear-shared/shared/src/main/res/values-el-rGR/strings.xml b/app-wear-shared/shared/src/main/res/values-el-rGR/strings.xml
index 6f38c7e4d4..6e2511fd08 100644
--- a/app-wear-shared/shared/src/main/res/values-el-rGR/strings.xml
+++ b/app-wear-shared/shared/src/main/res/values-el-rGR/strings.xml
@@ -20,4 +20,5 @@
Δημιουργία σύνδεσης
Συνδέθηκε
Αποσυνδέεται
+
diff --git a/app-wear-shared/shared/src/main/res/values-es-rES/strings.xml b/app-wear-shared/shared/src/main/res/values-es-rES/strings.xml
index 3671d7b82d..bfd2113f9f 100644
--- a/app-wear-shared/shared/src/main/res/values-es-rES/strings.xml
+++ b/app-wear-shared/shared/src/main/res/values-es-rES/strings.xml
@@ -33,4 +33,5 @@
Conectado
Desconectando
Esperando la desconexión
+
diff --git a/app-wear-shared/shared/src/main/res/values-fr-rFR/strings.xml b/app-wear-shared/shared/src/main/res/values-fr-rFR/strings.xml
index eb4c2d8302..81daf56453 100644
--- a/app-wear-shared/shared/src/main/res/values-fr-rFR/strings.xml
+++ b/app-wear-shared/shared/src/main/res/values-fr-rFR/strings.xml
@@ -33,4 +33,5 @@
Connectée
Déconnexion en cours
Attente de déconnexion
+
diff --git a/app-wear-shared/shared/src/main/res/values-ga-rIE/strings.xml b/app-wear-shared/shared/src/main/res/values-ga-rIE/strings.xml
index 59e1334555..7f4c422d88 100644
--- a/app-wear-shared/shared/src/main/res/values-ga-rIE/strings.xml
+++ b/app-wear-shared/shared/src/main/res/values-ga-rIE/strings.xml
@@ -22,4 +22,5 @@
Ag nascadh le %1$d s
Nasctha
Dícheangal
+
diff --git a/app-wear-shared/shared/src/main/res/values-hu-rHU/strings.xml b/app-wear-shared/shared/src/main/res/values-hu-rHU/strings.xml
index 4bfb445290..a30f9e054a 100644
--- a/app-wear-shared/shared/src/main/res/values-hu-rHU/strings.xml
+++ b/app-wear-shared/shared/src/main/res/values-hu-rHU/strings.xml
@@ -5,4 +5,5 @@
n
Kapcsolódva
+
diff --git a/app-wear-shared/shared/src/main/res/values-it-rIT/strings.xml b/app-wear-shared/shared/src/main/res/values-it-rIT/strings.xml
index 41060994d2..1a2b166652 100644
--- a/app-wear-shared/shared/src/main/res/values-it-rIT/strings.xml
+++ b/app-wear-shared/shared/src/main/res/values-it-rIT/strings.xml
@@ -33,4 +33,5 @@
Connesso
Disconnessione
In attesa della disconnessione
+
diff --git a/app-wear-shared/shared/src/main/res/values-iw-rIL/strings.xml b/app-wear-shared/shared/src/main/res/values-iw-rIL/strings.xml
index b11eb3c440..7df3b8d5cb 100644
--- a/app-wear-shared/shared/src/main/res/values-iw-rIL/strings.xml
+++ b/app-wear-shared/shared/src/main/res/values-iw-rIL/strings.xml
@@ -33,4 +33,5 @@
מחובר
מתנתק
ממתין לניתוק
+
diff --git a/app-wear-shared/shared/src/main/res/values-ja-rJP/strings.xml b/app-wear-shared/shared/src/main/res/values-ja-rJP/strings.xml
index a72c1ec577..d78b6c6230 100644
--- a/app-wear-shared/shared/src/main/res/values-ja-rJP/strings.xml
+++ b/app-wear-shared/shared/src/main/res/values-ja-rJP/strings.xml
@@ -33,4 +33,5 @@
接続されました
切断中
切断待ち
+
diff --git a/app-wear-shared/shared/src/main/res/values-ro-rRO/strings.xml b/app-wear-shared/shared/src/main/res/values-ro-rRO/strings.xml
index f196eb74d0..10ce7af4ed 100644
--- a/app-wear-shared/shared/src/main/res/values-ro-rRO/strings.xml
+++ b/app-wear-shared/shared/src/main/res/values-ro-rRO/strings.xml
@@ -24,4 +24,5 @@
Conectat
Se deconectează
Se așteaptă deconectarea
+
diff --git a/app/build.gradle b/app/build.gradle
index f93cd70c50..57bf122073 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -148,7 +148,7 @@ android {
versionName version + "-aapsclient"
manifestPlaceholders = [
appIcon : "@mipmap/ic_yellowowl",
- appIconRound: "@null"
+ appIconRound: "@mipmap/ic_yellowowl"
]
}
aapsclient2 {
@@ -157,8 +157,8 @@ android {
resValue "string", "app_name", "AAPSClient2"
versionName version + "-aapsclient"
manifestPlaceholders = [
- appIcon : "@mipmap/ic_yellowowl",
- appIconRound: "@null"
+ appIcon : "@mipmap/ic_blueowl",
+ appIconRound: "@mipmap/ic_blueowl"
]
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/MainActivity.kt b/app/src/main/java/info/nightscout/androidaps/MainActivity.kt
index 2079a9a865..4d3cfc9ca6 100644
--- a/app/src/main/java/info/nightscout/androidaps/MainActivity.kt
+++ b/app/src/main/java/info/nightscout/androidaps/MainActivity.kt
@@ -21,6 +21,7 @@ import android.view.inputmethod.InputMethodManager
import android.widget.EditText
import android.widget.LinearLayout
import android.widget.TextView
+import androidx.activity.OnBackPressedCallback
import androidx.appcompat.app.ActionBarDrawerToggle
import androidx.appcompat.widget.Toolbar
import androidx.core.view.GravityCompat
@@ -151,7 +152,7 @@ class MainActivity : DaggerAppCompatActivityWithResult() {
.subscribe({ processPreferenceChange(it) }, fabricPrivacy::logException)
if (startWizard() && !isRunningRealPumpTest()) {
protectionCheck.queryProtection(this, ProtectionCheck.Protection.PREFERENCES, {
- startActivity(Intent(this, SetupWizardActivity::class.java))
+ startActivity(Intent(this, SetupWizardActivity::class.java).setAction("info.nightscout.androidaps.MainActivity"))
})
}
androidPermission.notifyForStoragePermission(this)
@@ -163,6 +164,17 @@ class MainActivity : DaggerAppCompatActivityWithResult() {
androidPermission.notifyForBtConnectPermission(this)
}
passwordResetCheck(this)
+ onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
+ override fun handleOnBackPressed() {
+ if (binding.mainDrawerLayout.isDrawerOpen(GravityCompat.START))
+ binding.mainDrawerLayout.closeDrawers()
+ else if (menuOpen)
+ menu?.close()
+ else if (binding.mainPager.currentItem != 0)
+ binding.mainPager.currentItem = 0
+ else finish()
+ }
+ })
}
private fun checkPluginPreferences(viewPager: ViewPager2) {
@@ -219,9 +231,11 @@ class MainActivity : DaggerAppCompatActivityWithResult() {
menuItem.setIcon(info.nightscout.core.ui.R.drawable.ic_settings)
}
menuItem.setOnMenuItemClickListener {
- val intent = Intent(this, SingleFragmentActivity::class.java)
- intent.putExtra("plugin", activePlugin.getPluginsList().indexOf(p))
- startActivity(intent)
+ startActivity(
+ Intent(this, SingleFragmentActivity::class.java)
+ .setAction("info.nightscout.androidaps.MainActivity")
+ .putExtra("plugin", activePlugin.getPluginsList().indexOf(p))
+ )
binding.mainDrawerLayout.closeDrawers()
true
}
@@ -318,26 +332,28 @@ class MainActivity : DaggerAppCompatActivityWithResult() {
when (item.itemId) {
R.id.nav_preferences -> {
protectionCheck.queryProtection(this, ProtectionCheck.Protection.PREFERENCES, {
- val i = Intent(this, PreferencesActivity::class.java)
- i.putExtra("id", -1)
- startActivity(i)
+ startActivity(
+ Intent(this, PreferencesActivity::class.java)
+ .setAction("info.nightscout.androidaps.MainActivity")
+ .putExtra("id", -1)
+ )
})
return true
}
R.id.nav_historybrowser -> {
- startActivity(Intent(this, HistoryBrowseActivity::class.java))
+ startActivity(Intent(this, HistoryBrowseActivity::class.java).setAction("info.nightscout.androidaps.MainActivity"))
return true
}
R.id.nav_treatments -> {
- startActivity(Intent(this, TreatmentsActivity::class.java))
+ startActivity(Intent(this, TreatmentsActivity::class.java).setAction("info.nightscout.androidaps.MainActivity"))
return true
}
R.id.nav_setupwizard -> {
protectionCheck.queryProtection(this, ProtectionCheck.Protection.PREFERENCES, {
- startActivity(Intent(this, SetupWizardActivity::class.java))
+ startActivity(Intent(this, SetupWizardActivity::class.java).setAction("info.nightscout.androidaps.MainActivity"))
})
return true
}
@@ -384,9 +400,11 @@ class MainActivity : DaggerAppCompatActivityWithResult() {
R.id.nav_plugin_preferences -> {
val plugin = (binding.mainPager.adapter as TabPageAdapter).getPluginAt(binding.mainPager.currentItem)
protectionCheck.queryProtection(this, ProtectionCheck.Protection.PREFERENCES, {
- val i = Intent(this, PreferencesActivity::class.java)
- i.putExtra("id", plugin.preferencesId)
- startActivity(i)
+ startActivity(
+ Intent(this, PreferencesActivity::class.java)
+ .setAction("info.nightscout.androidaps.MainActivity")
+ .putExtra("id", plugin.preferencesId)
+ )
})
return true
}
@@ -397,35 +415,18 @@ class MainActivity : DaggerAppCompatActivityWithResult() {
}
*/
R.id.nav_defaultprofile -> {
- startActivity(Intent(this, ProfileHelperActivity::class.java))
+ startActivity(Intent(this, ProfileHelperActivity::class.java).setAction("info.nightscout.androidaps.MainActivity"))
return true
}
R.id.nav_stats -> {
- startActivity(Intent(this, StatsActivity::class.java))
+ startActivity(Intent(this, StatsActivity::class.java).setAction("info.nightscout.androidaps.MainActivity"))
return true
}
}
return actionBarDrawerToggle.onOptionsItemSelected(item)
}
- override fun onBackPressed() {
- if (binding.mainDrawerLayout.isDrawerOpen(GravityCompat.START)) {
- binding.mainDrawerLayout.closeDrawers()
- return
- }
- if (menuOpen) {
- this.menu?.close()
- return
- }
- if (binding.mainPager.currentItem != 0) {
- binding.mainPager.currentItem = 0
- return
- }
- @Suppress("DEPRECATION")
- super.onBackPressed()
- }
-
// Correct place for calling setUserStats() would be probably MainApp
// but we need to have it called at least once a day. Thus this location
diff --git a/app/src/main/java/info/nightscout/androidaps/activities/PreferencesActivity.kt b/app/src/main/java/info/nightscout/androidaps/activities/PreferencesActivity.kt
index 7ea1d46f61..a6493ef61a 100644
--- a/app/src/main/java/info/nightscout/androidaps/activities/PreferencesActivity.kt
+++ b/app/src/main/java/info/nightscout/androidaps/activities/PreferencesActivity.kt
@@ -2,8 +2,10 @@ package info.nightscout.androidaps.activities
import android.os.Bundle
import android.view.Menu
+import android.view.MenuInflater
import android.view.MenuItem
import androidx.appcompat.widget.SearchView
+import androidx.core.view.MenuProvider
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceScreen
import info.nightscout.androidaps.R
@@ -33,25 +35,37 @@ class PreferencesActivity : DaggerAppCompatActivityWithResult(), PreferenceFragm
it.putInt("id", preferenceId)
}
if (savedInstanceState == null)
+ @Suppress("CommitTransaction")
supportFragmentManager.beginTransaction().replace(R.id.frame_layout, myPreferenceFragment!!).commit()
- }
- override fun onCreateOptionsMenu(menu: Menu): Boolean {
- menuInflater.inflate(R.menu.menu_preferences, menu)
- val searchItem = menu.findItem(R.id.menu_search)
- searchView = searchItem.actionView as SearchView
- searchView?.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
+ // Add menu items without overriding methods in the Activity
+ addMenuProvider(object : MenuProvider {
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
+ // Add menu items here
+ menuInflater.inflate(R.menu.menu_preferences, menu)
+ val searchItem = menu.findItem(R.id.menu_search)
+ searchView = searchItem.actionView as SearchView
+ searchView?.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
- override fun onQueryTextChange(newText: String): Boolean {
- myPreferenceFragment?.setFilter(newText)
- return false
+ override fun onQueryTextChange(newText: String): Boolean {
+ myPreferenceFragment?.setFilter(newText)
+ return false
+ }
+
+ override fun onQueryTextSubmit(query: String): Boolean = false
+ })
}
- override fun onQueryTextSubmit(query: String): Boolean {
- return false
- }
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean =
+ when (menuItem.itemId) {
+ android.R.id.home -> {
+ onBackPressedDispatcher.onBackPressed()
+ true
+ }
+
+ else -> false
+ }
})
- return super.onCreateOptionsMenu(menu)
}
override fun onPreferenceStartScreen(caller: PreferenceFragmentCompat, pref: PreferenceScreen): Boolean {
@@ -60,18 +74,8 @@ class PreferencesActivity : DaggerAppCompatActivityWithResult(), PreferenceFragm
it.putString(PreferenceFragmentCompat.ARG_PREFERENCE_ROOT, pref.key)
it.putInt("id", preferenceId)
}
+ @Suppress("CommitTransaction")
supportFragmentManager.beginTransaction().replace(R.id.frame_layout, fragment, pref.key).addToBackStack(pref.key).commit()
return true
}
-
- override fun onOptionsItemSelected(item: MenuItem): Boolean =
- when (item.itemId) {
- android.R.id.home -> {
- @Suppress("DEPRECATION")
- onBackPressed()
- true
- }
-
- else -> super.onOptionsItemSelected(item)
- }
}
\ No newline at end of file
diff --git a/app/src/main/java/info/nightscout/androidaps/implementations/ConfigImpl.kt b/app/src/main/java/info/nightscout/androidaps/implementations/ConfigImpl.kt
index 445b2bfe55..4d536a54aa 100644
--- a/app/src/main/java/info/nightscout/androidaps/implementations/ConfigImpl.kt
+++ b/app/src/main/java/info/nightscout/androidaps/implementations/ConfigImpl.kt
@@ -18,6 +18,8 @@ class ConfigImpl @Inject constructor(
override val SUPPORTED_NS_VERSION = 150000 // 15.0.0
override val APS = BuildConfig.FLAVOR == "full"
override val NSCLIENT = BuildConfig.FLAVOR == "aapsclient" || BuildConfig.FLAVOR == "aapsclient2"
+ override val NSCLIENT1 = BuildConfig.FLAVOR == "aapsclient"
+ override val NSCLIENT2 = BuildConfig.FLAVOR == "aapsclient2"
override val PUMPCONTROL = BuildConfig.FLAVOR == "pumpcontrol"
override val PUMPDRIVERS = BuildConfig.FLAVOR == "full" || BuildConfig.FLAVOR == "pumpcontrol"
override val FLAVOR = BuildConfig.FLAVOR
diff --git a/build.gradle b/build.gradle
index ecbc499da0..9fca843e97 100644
--- a/build.gradle
+++ b/build.gradle
@@ -20,7 +20,7 @@ buildscript {
material_version = '1.9.0'
gridlayout_version = '1.0.0'
constraintlayout_version = '2.1.4'
- preferencektx_version = '1.2.0'
+ preferencektx_version = '1.2.1'
commonslang3_version = '3.13.0'
commonscodec_version = '1.16.0'
guava_version = '32.1.2-jre'
diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/Config.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/Config.kt
index 0bfee9e610..a5c4b9c01c 100644
--- a/core/interfaces/src/main/java/info/nightscout/interfaces/Config.kt
+++ b/core/interfaces/src/main/java/info/nightscout/interfaces/Config.kt
@@ -4,7 +4,9 @@ package info.nightscout.interfaces
interface Config {
val SUPPORTED_NS_VERSION: Int
val APS: Boolean
- val NSCLIENT: Boolean
+ val NSCLIENT: Boolean // aapsclient || aapsclient2
+ val NSCLIENT1: Boolean // aapsclient
+ val NSCLIENT2: Boolean // aapsclient2
val PUMPCONTROL: Boolean
val PUMPDRIVERS: Boolean
val FLAVOR: String
diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/notifications/Notification.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/notifications/Notification.kt
index b15459c9b0..6509fb7f61 100644
--- a/core/interfaces/src/main/java/info/nightscout/interfaces/notifications/Notification.kt
+++ b/core/interfaces/src/main/java/info/nightscout/interfaces/notifications/Notification.kt
@@ -137,6 +137,7 @@ open class Notification {
const val PATCH_NOT_ACTIVE = 83
const val PUMP_SETTINGS_FAILED = 84
const val PUMP_TIMEZONE_UPDATE_FAILED = 85
+ const val BLUETOOTH_NOT_SUPPORTED = 86
const val USER_MESSAGE = 1000
diff --git a/core/ui/src/main/res/mipmap-hdpi/ic_blueowl.png b/core/ui/src/main/res/mipmap-hdpi/ic_blueowl.png
new file mode 100644
index 0000000000..edb03f42a8
Binary files /dev/null and b/core/ui/src/main/res/mipmap-hdpi/ic_blueowl.png differ
diff --git a/core/ui/src/main/res/mipmap-hdpi/ic_yellowowl.png b/core/ui/src/main/res/mipmap-hdpi/ic_yellowowl.png
index fd2d6dd22d..e937e70c33 100644
Binary files a/core/ui/src/main/res/mipmap-hdpi/ic_yellowowl.png and b/core/ui/src/main/res/mipmap-hdpi/ic_yellowowl.png differ
diff --git a/core/ui/src/main/res/mipmap-mdpi/ic_blueowl.png b/core/ui/src/main/res/mipmap-mdpi/ic_blueowl.png
new file mode 100644
index 0000000000..b47bd611b3
Binary files /dev/null and b/core/ui/src/main/res/mipmap-mdpi/ic_blueowl.png differ
diff --git a/core/ui/src/main/res/mipmap-mdpi/ic_yellowowl.png b/core/ui/src/main/res/mipmap-mdpi/ic_yellowowl.png
index 962fd4a848..e31afb9feb 100644
Binary files a/core/ui/src/main/res/mipmap-mdpi/ic_yellowowl.png and b/core/ui/src/main/res/mipmap-mdpi/ic_yellowowl.png differ
diff --git a/core/ui/src/main/res/mipmap-xhdpi/ic_blueowl.png b/core/ui/src/main/res/mipmap-xhdpi/ic_blueowl.png
new file mode 100644
index 0000000000..9f82d3e200
Binary files /dev/null and b/core/ui/src/main/res/mipmap-xhdpi/ic_blueowl.png differ
diff --git a/core/ui/src/main/res/mipmap-xhdpi/ic_yellowowl.png b/core/ui/src/main/res/mipmap-xhdpi/ic_yellowowl.png
index a1bf6cd6c3..59940e87be 100644
Binary files a/core/ui/src/main/res/mipmap-xhdpi/ic_yellowowl.png and b/core/ui/src/main/res/mipmap-xhdpi/ic_yellowowl.png differ
diff --git a/core/ui/src/main/res/mipmap-xxhdpi/ic_blueowl.png b/core/ui/src/main/res/mipmap-xxhdpi/ic_blueowl.png
new file mode 100644
index 0000000000..b66df081d5
Binary files /dev/null and b/core/ui/src/main/res/mipmap-xxhdpi/ic_blueowl.png differ
diff --git a/core/ui/src/main/res/mipmap-xxhdpi/ic_yellowowl.png b/core/ui/src/main/res/mipmap-xxhdpi/ic_yellowowl.png
index 8f6166d44e..bcc0263e88 100644
Binary files a/core/ui/src/main/res/mipmap-xxhdpi/ic_yellowowl.png and b/core/ui/src/main/res/mipmap-xxhdpi/ic_yellowowl.png differ
diff --git a/core/ui/src/main/res/mipmap-xxxhdpi/ic_blueowl.png b/core/ui/src/main/res/mipmap-xxxhdpi/ic_blueowl.png
new file mode 100644
index 0000000000..2e220aaab0
Binary files /dev/null and b/core/ui/src/main/res/mipmap-xxxhdpi/ic_blueowl.png differ
diff --git a/core/ui/src/main/res/mipmap-xxxhdpi/ic_yellowowl.png b/core/ui/src/main/res/mipmap-xxxhdpi/ic_yellowowl.png
index 304b0975dd..609afcb78c 100644
Binary files a/core/ui/src/main/res/mipmap-xxxhdpi/ic_yellowowl.png and b/core/ui/src/main/res/mipmap-xxxhdpi/ic_yellowowl.png differ
diff --git a/core/ui/src/main/res/values-cs-rCZ/strings.xml b/core/ui/src/main/res/values-cs-rCZ/strings.xml
index 01c5b42bfb..19b392f309 100644
--- a/core/ui/src/main/res/values-cs-rCZ/strings.xml
+++ b/core/ui/src/main/res/values-cs-rCZ/strings.xml
@@ -376,6 +376,9 @@
SACHARIDY %1$d g
ROZLOŽENÝ BOLUS %1$.2f U %2$d min
NAČÍST UDÁLOSTI
+ SMAZAT ALARMY
+ DEAKTIVOVAT
+ AKTUALIZOVAT ČAS
NAČÍST HISTORII %1$d
NAČÍST CDD
NASTAVIT PROFIL
@@ -453,6 +456,7 @@
COB vs. IOB
!!!!! Detekována pomalá absorbce sacharidů: %2$d%% času. Překontrolujte kalkulaci. COB může být nadhodnocené, a proto může být započítáno více inzulínu !!!!!]]>
Podat tuto část z výsledku kalkulace [%]
+ Časový limit staré glykémie [min]
Použito omezení bolusu: %1$.2f U na %2$.2f U
Bolus nebude pumpou vydán, pouze zaznamenán
Spustit alarm, když je čas na jídlo
diff --git a/core/ui/src/main/res/values-es-rES/strings.xml b/core/ui/src/main/res/values-es-rES/strings.xml
index 66ff0c0127..63a66e9048 100644
--- a/core/ui/src/main/res/values-es-rES/strings.xml
+++ b/core/ui/src/main/res/values-es-rES/strings.xml
@@ -376,6 +376,9 @@
CARBOHIDRATOS %1$d g
BOLO EXTENDIDO %1$.2f U %2$d min
CARGAR EVENTOS
+ BORRAR ALARMAS
+ DESACTIVAR
+ ACTUALIZAR HORA
CARGAR HISTORIAL %1$d
CARGAR TDDs
ESTABLECER PERFIL
@@ -453,6 +456,7 @@
COB vs IOB
¡Se ha detectado una absorción lenta de carbohidratos: %2$d%% de tiempo. Comprueba de nuevo el cálculo. Los COB se pueden sobrestimar, por lo que se podría administrar más insulina de la cuenta!]]>
Administrar esta parte del resultado del asistente de bolos [%]
+ Antiguo umbral de tiempo de glucemia [min]
Restricción de bolo aplicada: %1$.2f U a %2$.2f U
El bolo sólo se anotará (no será entregado por la bomba)
Ejecutar alarma cuando sea hora de comer
diff --git a/core/ui/src/main/res/values-fr-rFR/strings.xml b/core/ui/src/main/res/values-fr-rFR/strings.xml
index d50d8ec938..e5d6e0c5f2 100644
--- a/core/ui/src/main/res/values-fr-rFR/strings.xml
+++ b/core/ui/src/main/res/values-fr-rFR/strings.xml
@@ -376,6 +376,9 @@
GLUCIDES %1$d g
BOLUS ÉTENDU %1$.2f U %2$d min
CHARGER LES ÉVÉNEMENTS
+ SUPPRIMER LES ALARMES
+ DÉSACTIVER
+ METTRE À JOUR L\'HEURE
CHARGER L\'HISTORIQUE %1$d
CHARGER les DTQ
DÉFINIR LE PROFIL
@@ -451,8 +454,9 @@
Assistant bolus
Vous avez une glycémie élevée. Au lieu de manger maintenant, il est recommandé d\'attendre une meilleure glycémie. Voulez-vous faire un bolus de correction maintenant et avoir une alerte quand il sera temps de manger ? Dans ce cas, aucun glucide ne sera enregistré et vous devrez utiliser l\'assistant à nouveau lorsque nous vous le rappelons.
GA vs IA
- !!!!! Absorption lente des glucides détectée : %2$d%% du temps. Vérifiez de nouveau votre calcul. Les GA (Glucides Actifs) peuvent être surestimés et alors plus d\'insuline pourrait être délivré !!!!!]]>
+ !!!!! Absorption lente des glucides détectée dans %2$d%% des cas. Vérifiez de nouveau votre calcul. Les GA (Glucides Actifs) peuvent être surestimés et alors trop d\'insuline pourrait être injectée !!!!!]]>
Injecter ce pourcentage du bolus calculé par l’assistant [%]
+ Durée limite après la dernière Gly reçue pour appliquer le % de bolus [min]
Contrainte de Bolus appliquée : %1$.2f U vers %2$.2f U
Les bolus seront seulement enregistrés (pas délivrés par la pompe)
Alerter quand il est temps de manger
diff --git a/core/ui/src/main/res/values-it-rIT/strings.xml b/core/ui/src/main/res/values-it-rIT/strings.xml
index c43a90f3c3..b70d1551fe 100644
--- a/core/ui/src/main/res/values-it-rIT/strings.xml
+++ b/core/ui/src/main/res/values-it-rIT/strings.xml
@@ -376,6 +376,7 @@
CHO %1$d g
BOLO ESTESO %1$.2f U %2$d min
CARICA EVENTI
+ DISATTIVA
CARICA STORICO %1$d
CARICA TDD
IMPOSTA PROFILO
@@ -453,6 +454,7 @@
COB vs IOB
!!!!! Rilevato assorbimento lento dei carboidrati: %2$d%% del tempo. Ricontrolla il tuo calcolo. COB potrebbero essere sovrastimati e potrebbe essere somministrata più insulina !!!!!]]>
Eroga parte del risultato del calcolatore [%]
+ Soglia tempo glicemia \"vecchia\" [min]
Vincolo bolo applicato: %1$.2f U a %2$.2f U
Il bolo sarà solo registrato (non erogato dal micro)
Esegui allarme quando è tempo di mangiare
diff --git a/core/ui/src/main/res/values-ru-rRU/strings.xml b/core/ui/src/main/res/values-ru-rRU/strings.xml
index 83d3228c30..6fd3660f69 100644
--- a/core/ui/src/main/res/values-ru-rRU/strings.xml
+++ b/core/ui/src/main/res/values-ru-rRU/strings.xml
@@ -23,7 +23,7 @@
мг/дл
ммоль/л
Сохранить
- Отложить
+ Убрать оповещение
Виртуальная помпа
Ограничения
Суперболюс
@@ -527,7 +527,7 @@
Сообщение
OK
Отменить
- ОТКЛОНИТЬ
+ УБРАТЬ
Да
Нет
Закрыть
diff --git a/implementation/src/main/java/info/nightscout/implementation/resources/IconsProviderImplementation.kt b/implementation/src/main/java/info/nightscout/implementation/resources/IconsProviderImplementation.kt
index b252cb654c..5b7ad08334 100644
--- a/implementation/src/main/java/info/nightscout/implementation/resources/IconsProviderImplementation.kt
+++ b/implementation/src/main/java/info/nightscout/implementation/resources/IconsProviderImplementation.kt
@@ -11,7 +11,8 @@ class IconsProviderImplementation @Inject constructor(private val config: Config
override fun getIcon(): Int =
when {
- config.NSCLIENT -> info.nightscout.core.ui.R.mipmap.ic_yellowowl
+ config.NSCLIENT2 -> info.nightscout.core.ui.R.mipmap.ic_blueowl
+ config.NSCLIENT1 -> info.nightscout.core.ui.R.mipmap.ic_yellowowl
config.PUMPCONTROL -> info.nightscout.core.ui.R.mipmap.ic_pumpcontrol
else -> info.nightscout.core.ui.R.mipmap.ic_launcher
}
diff --git a/plugins/aps/src/main/res/values-fr-rFR/strings.xml b/plugins/aps/src/main/res/values-fr-rFR/strings.xml
index d66cd58d5c..14ee2eb279 100644
--- a/plugins/aps/src/main/res/values-fr-rFR/strings.xml
+++ b/plugins/aps/src/main/res/values-fr-rFR/strings.xml
@@ -70,9 +70,9 @@
Activer les SMB lorsqu\'il y a une cible temporaire active (repas imminent, exercise)
Activer les SMB avec cibles temp hautes
Activer les SMB quand il y a une cible temp haute active (exercise, au dessus de 100 mg/dl ou 5.5 mmol/l)
- Max minutes de basal pour limiter le SMB
+ Max minutes de basal comme limite des SMB
SMB RNS minutes max
- Minutes de basal max pour limiter les SMB des RNS
+ Minutes de basal max comme limite des SMB pendant les RNS
Glucides minimum requis pour suggestion
Quantité de glucides minimum en g pour afficher une alerte de suggestion de glucides. Les suggestions inférieures ne déclencheront pas de notification.
Valeur glycémique au-dessous de laquelle l\'injection de l\'insuline est suspendu. La valeur par défaut utilise le modèle standard de la cible. L\'utilisateur peut choisir entre 60mg/dl (3.3mmol/l) et 100mg/dl (5.5mmol/l). Les valeurs au-dessous de 65/3.6 déclenchent l\'utilisation du modèle standard
diff --git a/plugins/automation/src/main/res/values-it-rIT/strings.xml b/plugins/automation/src/main/res/values-it-rIT/strings.xml
index 0ac3c06831..22eb2b16a1 100644
--- a/plugins/automation/src/main/res/values-it-rIT/strings.xml
+++ b/plugins/automation/src/main/res/values-it-rIT/strings.xml
@@ -92,6 +92,7 @@
Ora ultimo bolo %1$s %2$s min fa
COB
COB %1$s %2$.0f
+ Frequenza cardiaca
IOB [U]:
Dist [m]:
Tempo ricorrente
diff --git a/plugins/automation/src/main/res/values-no-rNO/strings.xml b/plugins/automation/src/main/res/values-no-rNO/strings.xml
index a7001a7448..b5fb9d3085 100644
--- a/plugins/automation/src/main/res/values-no-rNO/strings.xml
+++ b/plugins/automation/src/main/res/values-no-rNO/strings.xml
@@ -92,6 +92,8 @@
Siste bolus for %1$s %2$s min siden
COB
COB %1$s %2$.0f
+ Puls
+ HR %1$s %2$.0f
IOB [U]:
Dist [m]:
Gjentakende tidspunkt
diff --git a/plugins/automation/src/main/res/values-ru-rRU/strings.xml b/plugins/automation/src/main/res/values-ru-rRU/strings.xml
index e27718b842..e0dd020252 100644
--- a/plugins/automation/src/main/res/values-ru-rRU/strings.xml
+++ b/plugins/automation/src/main/res/values-ru-rRU/strings.xml
@@ -92,6 +92,8 @@
Время болюса %1$s %2$s мин назад
Активн углеводы
Активн углеводы %1$s %2$.0f
+ Частота сердечных сокращений
+ ЧСС%1$s%2$.0f
Акт инс IOB [U]:
Расст [м]:
Время повторения
diff --git a/plugins/configuration/src/main/java/info/nightscout/configuration/activities/SingleFragmentActivity.kt b/plugins/configuration/src/main/java/info/nightscout/configuration/activities/SingleFragmentActivity.kt
index cab20ee2e1..1e7e93ccbb 100644
--- a/plugins/configuration/src/main/java/info/nightscout/configuration/activities/SingleFragmentActivity.kt
+++ b/plugins/configuration/src/main/java/info/nightscout/configuration/activities/SingleFragmentActivity.kt
@@ -3,7 +3,9 @@ package info.nightscout.configuration.activities
import android.content.Intent
import android.os.Bundle
import android.view.Menu
+import android.view.MenuInflater
import android.view.MenuItem
+import androidx.core.view.MenuProvider
import info.nightscout.configuration.R
import info.nightscout.interfaces.plugin.ActivePlugin
import info.nightscout.interfaces.plugin.PluginBase
@@ -33,29 +35,32 @@ class SingleFragmentActivity : DaggerAppCompatActivityWithResult() {
supportFragmentManager.fragmentFactory.instantiate(ClassLoader.getSystemClassLoader(), plugin?.pluginDescription?.fragmentClass!!)
).commit()
}
- }
- override fun onOptionsItemSelected(item: MenuItem): Boolean =
- when (item.itemId) {
- android.R.id.home -> {
- finish()
- true
+ // Add menu items without overriding methods in the Activity
+ addMenuProvider(object : MenuProvider {
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
+ if (plugin?.preferencesId != -1) menuInflater.inflate(R.menu.menu_single_fragment, menu)
}
- R.id.nav_plugin_preferences -> {
- protectionCheck.queryProtection(this, ProtectionCheck.Protection.PREFERENCES, {
- val i = Intent(this, uiInteraction.preferencesActivity)
- i.putExtra("id", plugin?.preferencesId)
- startActivity(i)
- }, null)
- true
- }
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean =
+ when (menuItem.itemId) {
+ android.R.id.home -> {
+ onBackPressedDispatcher.onBackPressed()
+ true
+ }
- else -> super.onOptionsItemSelected(item)
- }
+ R.id.nav_plugin_preferences -> {
+ protectionCheck.queryProtection(this@SingleFragmentActivity, ProtectionCheck.Protection.PREFERENCES, {
+ val i = Intent(this@SingleFragmentActivity, uiInteraction.preferencesActivity)
+ .setAction("info.nightscout.configuration.activities.SingleFragmentActivity")
+ .putExtra("id", plugin?.preferencesId)
+ startActivity(i)
+ }, null)
+ true
+ }
- override fun onCreateOptionsMenu(menu: Menu): Boolean {
- if (plugin?.preferencesId != -1) menuInflater.inflate(R.menu.menu_single_fragment, menu)
- return super.onCreateOptionsMenu(menu)
+ else -> false
+ }
+ })
}
}
\ No newline at end of file
diff --git a/plugins/configuration/src/main/java/info/nightscout/configuration/maintenance/activities/PrefImportListActivity.kt b/plugins/configuration/src/main/java/info/nightscout/configuration/maintenance/activities/PrefImportListActivity.kt
index 27ec178c8d..acee12e375 100644
--- a/plugins/configuration/src/main/java/info/nightscout/configuration/maintenance/activities/PrefImportListActivity.kt
+++ b/plugins/configuration/src/main/java/info/nightscout/configuration/maintenance/activities/PrefImportListActivity.kt
@@ -3,9 +3,12 @@ package info.nightscout.configuration.maintenance.activities
import android.content.Intent
import android.os.Bundle
import android.view.LayoutInflater
+import android.view.Menu
+import android.view.MenuInflater
import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
+import androidx.core.view.MenuProvider
import androidx.fragment.app.FragmentActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
@@ -41,6 +44,21 @@ class PrefImportListActivity : TranslatedDaggerAppCompatActivity() {
binding.recyclerview.layoutManager = LinearLayoutManager(this)
binding.recyclerview.adapter = RecyclerViewAdapter(prefFileListProvider.listPreferenceFiles(loadMetadata = true))
+
+ // Add menu items without overriding methods in the Activity
+ addMenuProvider(object : MenuProvider {
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {}
+
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean =
+ when (menuItem.itemId) {
+ android.R.id.home -> {
+ onBackPressedDispatcher.onBackPressed()
+ true
+ }
+
+ else -> false
+ }
+ })
}
inner class RecyclerViewAdapter internal constructor(private var prefFileList: List) : RecyclerView.Adapter() {
@@ -106,12 +124,4 @@ class PrefImportListActivity : TranslatedDaggerAppCompatActivity() {
}
}
}
-
- override fun onOptionsItemSelected(item: MenuItem): Boolean {
- if (item.itemId == android.R.id.home) {
- finish()
- return true
- }
- return super.onOptionsItemSelected(item)
- }
}
\ No newline at end of file
diff --git a/plugins/configuration/src/main/java/info/nightscout/configuration/setupwizard/SetupWizardActivity.kt b/plugins/configuration/src/main/java/info/nightscout/configuration/setupwizard/SetupWizardActivity.kt
index a3ae79c65a..0bd2c50e21 100644
--- a/plugins/configuration/src/main/java/info/nightscout/configuration/setupwizard/SetupWizardActivity.kt
+++ b/plugins/configuration/src/main/java/info/nightscout/configuration/setupwizard/SetupWizardActivity.kt
@@ -4,6 +4,7 @@ import android.content.Intent
import android.os.Bundle
import android.view.View
import android.widget.TextView
+import androidx.activity.OnBackPressedCallback
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.R
import info.nightscout.configuration.activities.DaggerAppCompatActivityWithResult
@@ -64,6 +65,12 @@ class SetupWizardActivity : DaggerAppCompatActivityWithResult() {
generateLayout()
updateButtons()
}
+ onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
+ override fun handleOnBackPressed() {
+ if (currentWizardPage == 0)
+ OKDialog.showConfirmation(this@SetupWizardActivity, rh.gs(R.string.exitwizard)) { finish() } else showPreviousPage(null)
+ }
+ })
}
override fun onPause() {
@@ -134,10 +141,6 @@ class SetupWizardActivity : DaggerAppCompatActivityWithResult() {
}
}
- override fun onBackPressed() {
- if (currentWizardPage == 0) OKDialog.showConfirmation(this, rh.gs(R.string.exitwizard)) { finish() } else showPreviousPage(null)
- }
-
@Suppress("UNUSED_PARAMETER")
fun exitPressed(view: View?) {
sp.putBoolean(R.string.key_setupwizard_processed, true)
@@ -147,7 +150,7 @@ class SetupWizardActivity : DaggerAppCompatActivityWithResult() {
@Suppress("UNUSED_PARAMETER")
fun showNextPage(view: View?) {
finish()
- val intent = Intent(this, SetupWizardActivity::class.java)
+ val intent = Intent(this, SetupWizardActivity::class.java).setAction("info.nightscout.configuration.setupwizard.SetupWizardActivity")
intent.putExtra(intentMessage, nextPage(null))
startActivity(intent)
}
@@ -155,7 +158,7 @@ class SetupWizardActivity : DaggerAppCompatActivityWithResult() {
@Suppress("UNUSED_PARAMETER")
fun showPreviousPage(view: View?) {
finish()
- val intent = Intent(this, SetupWizardActivity::class.java)
+ val intent = Intent(this, SetupWizardActivity::class.java).setAction("info.nightscout.configuration.setupwizard.SetupWizardActivity")
intent.putExtra(intentMessage, previousPage(null))
startActivity(intent)
}
@@ -164,7 +167,7 @@ class SetupWizardActivity : DaggerAppCompatActivityWithResult() {
@Suppress("UNUSED_PARAMETER")
fun finishSetupWizard(view: View?) {
sp.putBoolean(R.string.key_setupwizard_processed, true)
- val intent = Intent(this, uiInteraction.mainActivity)
+ val intent = Intent(this, uiInteraction.mainActivity).setAction("info.nightscout.configuration.setupwizard.SetupWizardActivity")
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(intent)
finish()
diff --git a/plugins/main/src/main/res/values-cs-rCZ/strings.xml b/plugins/main/src/main/res/values-cs-rCZ/strings.xml
index 3dbe4da682..b299bb55b8 100644
--- a/plugins/main/src/main/res/values-cs-rCZ/strings.xml
+++ b/plugins/main/src/main/res/values-cs-rCZ/strings.xml
@@ -243,6 +243,7 @@
Krátké názvy modulů
Zobrazovat kolonku poznámky v dialozích ošetření
Kalkulátor provede výpočet, ale dodána je pouze tato část inzulínu. Výhodné při používání SMB algoritmu.
+ Vydat celý bolus (100%), pokud je glykémie starší než
Povolit poradce s bolusem
Při vysoké glykémii použijte připomenutí, abyste začali jíst později, namísto výsledku z kalkulátoru („prebolus“)
Povolit superbolus
@@ -315,6 +316,11 @@
Ukazovat SMB na hodinkách jako normální bolus.
Zobrazovat predikce na hodinkách.
Predikce
+ Vlastní ciferník: %1$s
+ Nahrát ciferník
+ Odeslat ciferník
+ Exportovat ciferník
+ Vlastní ciferník exportován
Znovu poslat všechna data
Otevřít nastavení na hodinkách Wear
diff --git a/plugins/main/src/main/res/values-es-rES/strings.xml b/plugins/main/src/main/res/values-es-rES/strings.xml
index a603ac9bf9..1a6086c56f 100644
--- a/plugins/main/src/main/res/values-es-rES/strings.xml
+++ b/plugins/main/src/main/res/values-es-rES/strings.xml
@@ -243,6 +243,7 @@
Nombres cortos en pestañas
Mostrar el campo notas en diálogos de tratamientos
El asistente de bolos realiza el cálculo, pero solo se entrega esta parte de la insulina calculada. Útil con el algoritmo SMB.
+ Administrar bolo completo (100%) si la glucemia es mayor de
Habilitar asistente de bolo
Utiliza un recordatorio para empezar a comer más tarde, en lugar del resultado del asistente durante una glucemia alta (\"pre-bolo\")
Activar superbolo en asistente
diff --git a/plugins/main/src/main/res/values-fr-rFR/strings.xml b/plugins/main/src/main/res/values-fr-rFR/strings.xml
index ab4b81dc68..09d2dff60d 100644
--- a/plugins/main/src/main/res/values-fr-rFR/strings.xml
+++ b/plugins/main/src/main/res/values-fr-rFR/strings.xml
@@ -243,6 +243,7 @@
Raccourcir les titres des onglets
Affiche les notes dans les dialogues
L\'assistant bolus effectue le calcul mais seulement ce pourcentage de l\'insuline calculée est délivré. Utile avec l\'algorithme SMB.
+ Faire un bolus complet (100%) si la glycémie est plus ancienne que
Activer l\'assistant bolus
Utiliser un rappel pour commencer le repas à la place du résultat de l\'assistant quand la glycémie est élevée (\"pré-bolus\")
Activer les Superbolus dans l’Assistant
diff --git a/plugins/main/src/main/res/values-it-rIT/strings.xml b/plugins/main/src/main/res/values-it-rIT/strings.xml
index 11fe67fcef..1fdfed8233 100644
--- a/plugins/main/src/main/res/values-it-rIT/strings.xml
+++ b/plugins/main/src/main/res/values-it-rIT/strings.xml
@@ -243,6 +243,7 @@
Accorcia titoli schede
Finestre tratt.nto: mostra campo note
Il calcolatore esegue il calcolo, ma solo questa parte dell\'insulina calcolata è erogata. Utile con algoritmo SMB.
+ Eroga bolo completo (100%) se la glicemia è più \"vecchia\" di
Abilita consiglio bolo
Usa un promemoria per iniziare a mangiare invece del risultato del calcolatore durante la glicemia alta (\"pre-bolo\")
Abilita superbolo nel calcolatore
diff --git a/plugins/sync/src/main/java/info/nightscout/plugins/sync/openhumans/ui/OHLoginActivity.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/openhumans/ui/OHLoginActivity.kt
index 1dc79a3912..b7df7d81d8 100644
--- a/plugins/sync/src/main/java/info/nightscout/plugins/sync/openhumans/ui/OHLoginActivity.kt
+++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/openhumans/ui/OHLoginActivity.kt
@@ -3,11 +3,15 @@ package info.nightscout.plugins.sync.openhumans.ui
import android.content.Intent
import android.net.Uri
import android.os.Bundle
+import android.view.Menu
+import android.view.MenuInflater
import android.view.MenuItem
import android.view.View
import android.widget.CheckBox
+import androidx.activity.OnBackPressedCallback
import androidx.activity.viewModels
import androidx.browser.customtabs.CustomTabsIntent
+import androidx.core.view.MenuProvider
import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
@@ -94,6 +98,25 @@ class OHLoginActivity : TranslatedDaggerAppCompatActivity() {
if (code != null) {
viewModel.submitBearerToken(code)
}
+ // Add menu items without overriding methods in the Activity
+ addMenuProvider(object : MenuProvider {
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {}
+
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean =
+ when (menuItem.itemId) {
+ android.R.id.home -> {
+ onBackPressedDispatcher.onBackPressed()
+ true
+ }
+
+ else -> false
+ }
+ })
+ onBackPressedDispatcher.addCallback(this, object: OnBackPressedCallback(true) {
+ override fun handleOnBackPressed() {
+ if (!viewModel.goBack()) finish()
+ }
+ })
}
override fun onNewIntent(intent: Intent) {
@@ -103,21 +126,4 @@ class OHLoginActivity : TranslatedDaggerAppCompatActivity() {
viewModel.submitBearerToken(code)
}
}
-
- override fun onBackPressed() {
- if (!viewModel.goBack()) {
- @Suppress("DEPRECATION")
- super.onBackPressed()
- }
- }
-
- override fun onOptionsItemSelected(item: MenuItem): Boolean =
- if (item.itemId == android.R.id.home) {
- @Suppress("DEPRECATION")
- onBackPressed()
- true
- } else {
- super.onOptionsItemSelected(item)
- }
-
}
\ No newline at end of file
diff --git a/pump/combov2/src/main/kotlin/info/nightscout/pump/combov2/ComboV2Plugin.kt b/pump/combov2/src/main/kotlin/info/nightscout/pump/combov2/ComboV2Plugin.kt
index cbe56f27f5..0fd7b2c9ff 100644
--- a/pump/combov2/src/main/kotlin/info/nightscout/pump/combov2/ComboV2Plugin.kt
+++ b/pump/combov2/src/main/kotlin/info/nightscout/pump/combov2/ComboV2Plugin.kt
@@ -12,6 +12,7 @@ import dagger.android.HasAndroidInjector
import info.nightscout.comboctl.android.AndroidBluetoothInterface
import info.nightscout.comboctl.base.BasicProgressStage
import info.nightscout.comboctl.base.BluetoothException
+import info.nightscout.comboctl.base.BluetoothNotAvailableException
import info.nightscout.comboctl.base.BluetoothNotEnabledException
import info.nightscout.comboctl.base.ComboException
import info.nightscout.comboctl.base.DisplayFrame
@@ -346,10 +347,24 @@ class ComboV2Plugin @Inject constructor (
_pairedStateUIFlow.value = paired
pumpManager = newPumpManager
+ } catch (_: BluetoothNotAvailableException) {
+ uiInteraction.addNotification(
+ Notification.BLUETOOTH_NOT_SUPPORTED,
+ text = rh.gs(R.string.combov2_bluetooth_not_supported),
+ level = Notification.URGENT
+ )
+
+ // Deliberately _not_ setting the driver state here before
+ // exiting this scope. We are essentially aborting the start
+ // since Bluetooth is not supported by the hardware, so the
+ // driver cannot do anything, and therefore cannot leave the
+ // DriverState.NotInitialized state.
+ aapsLogger.error(LTag.PUMP, "combov2 driver start cannot be completed since the hardware does not support Bluetooth")
+ return@runWithPermissionCheck
} catch (_: BluetoothNotEnabledException) {
uiInteraction.addNotification(
Notification.BLUETOOTH_NOT_ENABLED,
- text = rh.gs(info.nightscout.core.ui.R.string.ble_not_enabled),
+ text = rh.gs(R.string.combov2_bluetooth_disabled),
level = Notification.INFO
)
@@ -761,7 +776,7 @@ class ComboV2Plugin @Inject constructor (
} catch (_: BluetoothNotEnabledException) {
uiInteraction.addNotification(
Notification.BLUETOOTH_NOT_ENABLED,
- text = rh.gs(info.nightscout.core.ui.R.string.ble_not_enabled),
+ text = rh.gs(R.string.combov2_bluetooth_disabled),
level = Notification.INFO
)
} catch (e: Exception) {
diff --git a/pump/combov2/src/main/kotlin/info/nightscout/pump/combov2/activities/ComboV2PairingActivity.kt b/pump/combov2/src/main/kotlin/info/nightscout/pump/combov2/activities/ComboV2PairingActivity.kt
index 8ecbda0c7a..cc5c220f89 100644
--- a/pump/combov2/src/main/kotlin/info/nightscout/pump/combov2/activities/ComboV2PairingActivity.kt
+++ b/pump/combov2/src/main/kotlin/info/nightscout/pump/combov2/activities/ComboV2PairingActivity.kt
@@ -9,6 +9,7 @@ import android.text.Editable
import android.text.TextWatcher
import android.view.View
import androidx.activity.ComponentActivity
+import androidx.activity.OnBackPressedCallback
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.content.ContextCompat
@@ -17,9 +18,11 @@ import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import info.nightscout.comboctl.base.BasicProgressStage
+import info.nightscout.comboctl.base.PAIRING_PIN_SIZE
import info.nightscout.comboctl.base.PairingPIN
import info.nightscout.core.ui.activities.TranslatedDaggerAppCompatActivity
import info.nightscout.core.ui.dialogs.OKDialog
+import info.nightscout.core.ui.toast.ToastUtils
import info.nightscout.pump.combov2.ComboV2Plugin
import info.nightscout.pump.combov2.R
import info.nightscout.pump.combov2.databinding.Combov2PairingActivityBinding
@@ -184,13 +187,13 @@ class ComboV2PairingActivity : TranslatedDaggerAppCompatActivity() {
.launchIn(this)
}
}
- }
-
- override fun onBackPressed() {
- aapsLogger.info(LTag.PUMP, "User pressed the back button; cancelling any ongoing pairing")
- combov2Plugin.cancelPairing()
- @Suppress("DEPRECATION")
- super.onBackPressed()
+ onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
+ override fun handleOnBackPressed() {
+ aapsLogger.info(LTag.PUMP, "User pressed the back button; cancelling any ongoing pairing")
+ combov2Plugin.cancelPairing()
+ finish()
+ }
+ })
}
override fun onDestroy() {
@@ -334,6 +337,10 @@ class ComboV2PairingActivity : TranslatedDaggerAppCompatActivity() {
// We need to skip whitespaces since the
// TextWatcher above inserts some.
val pinString = binding.combov2PinEntryEdit.text.replace(whitespaceRemovalRegex, "")
+ if (pinString.length != PAIRING_PIN_SIZE) {
+ ToastUtils.showToastInUiThread(this, rh.gs(R.string.combov2_pairing_invalid_pin_length, PAIRING_PIN_SIZE, pinString.length))
+ return@setOnClickListener
+ }
runBlocking {
val PIN = PairingPIN(pinString.map { it - '0' }.toIntArray())
combov2Plugin.providePairingPIN(PIN)
diff --git a/pump/combov2/src/main/res/values-cs-rCZ/strings.xml b/pump/combov2/src/main/res/values-cs-rCZ/strings.xml
index 83e3e6a5d3..785c57faee 100644
--- a/pump/combov2/src/main/res/values-cs-rCZ/strings.xml
+++ b/pump/combov2/src/main/res/values-cs-rCZ/strings.xml
@@ -47,6 +47,7 @@ Pokud po více než ~5 minutách není navázáno žádné spojení:\n\n
Časový limit pro vyhledávání Combo dosažen
Párování se nezdařilo z důvodu chyby: %1$s
Párování přerušeno z neznámých důvodů
+ "Neplatná délka PINu párování: potřeba %1$d číslic, zadáno %2$d"
Vyhledávání pumpy
Navazování připojení Bluetooth (pokus č. %1$d)
Provádím navazování spojení s pumpou
@@ -124,4 +125,6 @@ Pokud po více než ~5 minutách není navázáno žádné spojení:\n\n
Obnovování stavu pumpy po nahlášení chyby
Zpět
Nelze provést párování, protože ovladač není inicializován. To se obvykle stává, protože nebyla udělena potřebná oprávnění Bluetooth. Jděte zpět, udělte oprávnění Bluetooth, pak zkuste znovu spárovat.
+ Nelze spustit ovladač - Bluetooth je zakázáno
+ Ovladač nelze spustit - toto zařízení nepodporuje Bluetooth
diff --git a/pump/combov2/src/main/res/values-es-rES/strings.xml b/pump/combov2/src/main/res/values-es-rES/strings.xml
index e3355b9989..b466ef2ddd 100644
--- a/pump/combov2/src/main/res/values-es-rES/strings.xml
+++ b/pump/combov2/src/main/res/values-es-rES/strings.xml
@@ -47,6 +47,7 @@ Si no puedes establecer ninguna conexión después de unos ~5 minutos:\n\n
Tiempo de espera de escaneo alcanzado
No se pudo emparejar debido al error: %1$s
Emparejamiento abortado por razones desconocidas
+ "Longitud del PIN de emparejamiento inválida: Necesita %1$d digits, obtuvo %2$d"
Buscando bomba
Estableciendo conexión Bluetooth (intento número %1$d)
Realizando emparejamiento con la bomba
@@ -124,4 +125,6 @@ Si no puedes establecer ninguna conexión después de unos ~5 minutos:\n\n
Actualizando el estado de la bomba después de que informara de un error
Retroceder
No se puede realizar el emparejamiento porque el controlador no está inicializado. Esto suele ocurrir porque no se han concedido los permisos Bluetooth necesarios. Vuelve atrás, concede los permisos Bluetooth e intenta de nuevo el emparejamiento
+ No se puede iniciar el controlador - El bluetooth está desactivado
+ El controlador no puede ejecutarse - este dispositivo no es compatible con Bluetooth
diff --git a/pump/combov2/src/main/res/values-it-rIT/strings.xml b/pump/combov2/src/main/res/values-it-rIT/strings.xml
index bf840709d1..8e14cf8101 100644
--- a/pump/combov2/src/main/res/values-it-rIT/strings.xml
+++ b/pump/combov2/src/main/res/values-it-rIT/strings.xml
@@ -97,6 +97,7 @@ Se non viene stabilita alcuna connessione dopo più di ~5 minuti:\n\n
Imposta TBR 100% (emulato)
Lasciando finire il TBR 100% (emulato) in esecuzione
TBR 100%: ignorando la richiesta ridondante
+ Limite inatteso riscontrato durante la regolazione di TBR: la percentuale target era %1$d%%, raggiunto un limite a %2$d%%
Impossibile impostare un TBR assoluto se la velocità basale di base è zero
Associa AndroidAPS e Android con un micro Accu-Chek Combo attualmente non associato
Disassocia AndroidAPS e Android dal micro Accu-Chek Combo attualmente associato
diff --git a/pump/combov2/src/main/res/values-iw-rIL/strings.xml b/pump/combov2/src/main/res/values-iw-rIL/strings.xml
index bc65ee458c..25020d71b0 100644
--- a/pump/combov2/src/main/res/values-iw-rIL/strings.xml
+++ b/pump/combov2/src/main/res/values-iw-rIL/strings.xml
@@ -90,6 +90,7 @@
הגדר בזאלי זמני 100% מדומה
מאפשר לבזאלי הזמני 100% המדומה לסיים
מתעלם מבקשה מיותרת של בזאלי זמני 100%
+ נמצאה מגבלה בלתי צפוי בעת הגדרת בזאלי זמני: אחוז המטרה היה %1$d%% והגיע למגבלה ב-%2$d%%
לא ניתן להגדיר בזאלי זמני אם המינון הבזאלי הבסיסי הוא 0
צימוד AndroidAPS ואנדרואיד עם משאבת Accu-Chek combo שאינה מצומדת
ביטול צימוד AndroidAPS ואנדרואיד ממשאבת Accu-Chek combo המצומדת
diff --git a/pump/combov2/src/main/res/values-no-rNO/strings.xml b/pump/combov2/src/main/res/values-no-rNO/strings.xml
index c6a2d22361..83d5d63dc2 100644
--- a/pump/combov2/src/main/res/values-no-rNO/strings.xml
+++ b/pump/combov2/src/main/res/values-no-rNO/strings.xml
@@ -98,6 +98,7 @@ knappene samtidig for å avbryte parringen)\n
Angi emulert 100% TBR
Lar aktive emulert 100% TBR få avslutte
Ignorerer redundant 100% TBR forespørsel
+ Uventet begrensning oppsto ved justering av TBR: målprosenten var %1$d%%, nådde grense på %2$d%%
Kan ikke sette absolutt TBR hvis basalraten er null
Sammenkoble AndroidAPS og Android med en ikke-tilkoblet Accu-Chek Combo pumpe
Koble fra AndroidAPS og Android fra den ilkoblede Accu-Chek Combo pumpen
diff --git a/pump/combov2/src/main/res/values-ru-rRU/strings.xml b/pump/combov2/src/main/res/values-ru-rRU/strings.xml
index 49f1fb8bcf..d564b3c8cc 100644
--- a/pump/combov2/src/main/res/values-ru-rRU/strings.xml
+++ b/pump/combov2/src/main/res/values-ru-rRU/strings.xml
@@ -98,6 +98,7 @@
Установить эмуляцию. временного базала TBR 100%
Позволить завершиться текущей эмуляции временного базала 100% TBR
Игнорирование избыточного запроса на 100% TBR
+ При настройке ВБС: обнаружен непредвиденный предел: целевой процент %1$d%%, достиг предела %2$d%%
Невозможно установить абсолютный TBR, если базовая скорость равна нулю
Выполнить сопряжение AndroidAPS и Android с помпой Accu-Chek Combo
Отключить AndroidAPS и AndroidAPS от помпы Accu-Chek Combo
diff --git a/pump/combov2/src/main/res/values/strings.xml b/pump/combov2/src/main/res/values/strings.xml
index 947df4df66..9c4933a7f1 100644
--- a/pump/combov2/src/main/res/values/strings.xml
+++ b/pump/combov2/src/main/res/values/strings.xml
@@ -53,6 +53,7 @@ buttons at the same time to cancel pairing)\n
Combo scan timeout reached
Pairing failed due to error: %1$s
Pairing aborted for unknown reasons
+ "Invalid pairing PIN length: need %1$d digits, got %2$d"
Scanning for pump
Establishing Bluetooth connection (attempt no. %1$d)
Performing handshake with pump
@@ -139,4 +140,6 @@ buttons at the same time to cancel pairing)\n
Refreshing pump status after the pump reported an error
Go back
Cannot perform pairing because the driver is not initialized. This typically happens because the necessary Bluetooth permissions have not been granted. Go back, grant the Bluetooth permissions, then try again to pair.
+ Cannot start driver - Bluetooth is disabled
+ Driver cannot run - this device does not support Bluetooth
diff --git a/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EopatchActivity.kt b/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EopatchActivity.kt
index 1f9cc7f15d..f30e06a5ff 100644
--- a/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EopatchActivity.kt
+++ b/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EopatchActivity.kt
@@ -6,6 +6,7 @@ import android.content.Intent
import android.content.pm.ActivityInfo
import android.os.Bundle
import android.view.MotionEvent
+import androidx.activity.OnBackPressedCallback
import androidx.appcompat.app.AlertDialog
import androidx.lifecycle.ViewModelProvider
import info.nightscout.androidaps.plugins.pump.eopatch.R
@@ -103,6 +104,16 @@ class EopatchActivity : EoBaseActivity() {
}
}
}
+ onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
+ override fun handleOnBackPressed() {
+ binding.viewModel?.apply {
+ when (patchStep.value) {
+ PatchStep.SAFE_DEACTIVATION -> this@EopatchActivity.finish()
+ else -> Unit
+ }
+ }
+ }
+ })
}
override fun onNewIntent(intent: Intent?) {
@@ -274,15 +285,6 @@ class EopatchActivity : EoBaseActivity() {
this@EopatchActivity.finish()
}
- override fun onBackPressed() {
- binding.viewModel?.apply{
- when(patchStep.value){
- PatchStep.SAFE_DEACTIVATION -> this@EopatchActivity.finish()
- else -> Unit
- }
- }
- }
-
companion object {
const val RESULT_DISCARDED = RESULT_FIRST_USER + 1
const val EXTRA_START_PATCH_STEP = "EXTRA_START_PATCH_FRAGMENT_UI"
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/MedtrumPlugin.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/MedtrumPlugin.kt
index 07446b938c..e9eb94d844 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/MedtrumPlugin.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/MedtrumPlugin.kt
@@ -293,12 +293,12 @@ import kotlin.math.abs
val pumpRate = constraintChecker.applyBasalConstraints(Constraint(absoluteRate), profile).value()
temporaryBasalStorage.add(PumpSync.PumpState.TemporaryBasal(dateUtil.now(), T.mins(durationInMinutes.toLong()).msecs(), pumpRate, true, tbrType, 0L, 0L))
val connectionOK = medtrumService?.setTempBasal(pumpRate, durationInMinutes) ?: false
- if (connectionOK
+ return if (connectionOK
&& medtrumPump.tempBasalInProgress
- && Math.abs(medtrumPump.tempBasalAbsoluteRate - pumpRate) <= 0.05
+ && abs(medtrumPump.tempBasalAbsoluteRate - pumpRate) <= 0.05
) {
- return PumpEnactResult(injector).success(true).enacted(true).duration(durationInMinutes).absolute(medtrumPump.tempBasalAbsoluteRate)
+ PumpEnactResult(injector).success(true).enacted(true).duration(durationInMinutes).absolute(medtrumPump.tempBasalAbsoluteRate)
.isPercent(false)
.isTempCancel(false)
} else {
@@ -306,7 +306,7 @@ import kotlin.math.abs
LTag.PUMP,
"setTempBasalAbsolute failed, connectionOK: $connectionOK, tempBasalInProgress: ${medtrumPump.tempBasalInProgress}, tempBasalAbsoluteRate: ${medtrumPump.tempBasalAbsoluteRate}"
)
- return PumpEnactResult(injector).success(false).enacted(false).comment("Medtrum setTempBasalAbsolute failed")
+ PumpEnactResult(injector).success(false).enacted(false).comment("Medtrum setTempBasalAbsolute failed")
}
}
@@ -325,11 +325,11 @@ import kotlin.math.abs
aapsLogger.info(LTag.PUMP, "cancelTempBasal - enforceNew: $enforceNew")
val connectionOK = medtrumService?.cancelTempBasal() ?: false
- if (connectionOK && !medtrumPump.tempBasalInProgress) {
- return PumpEnactResult(injector).success(true).enacted(true).isTempCancel(true)
+ return if (connectionOK && !medtrumPump.tempBasalInProgress) {
+ PumpEnactResult(injector).success(true).enacted(true).isTempCancel(true)
} else {
aapsLogger.error(LTag.PUMP, "cancelTempBasal failed, connectionOK: $connectionOK, tempBasalInProgress: ${medtrumPump.tempBasalInProgress}")
- return PumpEnactResult(injector).success(false).enacted(false).comment("Medtrum cancelTempBasal failed")
+ PumpEnactResult(injector).success(false).enacted(false).comment("Medtrum cancelTempBasal failed")
}
}
@@ -436,7 +436,7 @@ import kotlin.math.abs
if (isInitialized()) {
commandQueue.updateTime(object : Callback() {
override fun run() {
- if (this.result.success == false) {
+ if (!this.result.success) {
aapsLogger.error(LTag.PUMP, "Medtrum time update failed")
// Only notify here on failure (connection may be failed), service will handle success
medtrumService?.timeUpdateNotification(false)
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/MedtrumPump.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/MedtrumPump.kt
index fd24934cda..fb1ce89d05 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/MedtrumPump.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/MedtrumPump.kt
@@ -291,11 +291,11 @@ class MedtrumPump @Inject constructor(
}
fun loadUserSettingsFromSP() {
- desiredPatchExpiration = sp.getBoolean(info.nightscout.pump.medtrum.R.string.key_patch_expiration, false)
- val alarmSettingCode = sp.getString(info.nightscout.pump.medtrum.R.string.key_alarm_setting, AlarmSetting.LIGHT_VIBRATE_AND_BEEP.code.toString()).toByte()
+ desiredPatchExpiration = sp.getBoolean(R.string.key_patch_expiration, false)
+ val alarmSettingCode = sp.getString(R.string.key_alarm_setting, AlarmSetting.LIGHT_VIBRATE_AND_BEEP.code.toString()).toByte()
desiredAlarmSetting = AlarmSetting.values().firstOrNull { it.code == alarmSettingCode } ?: AlarmSetting.LIGHT_VIBRATE_AND_BEEP
- desiredHourlyMaxInsulin = sp.getInt(info.nightscout.pump.medtrum.R.string.key_hourly_max_insulin, 40)
- desiredDailyMaxInsulin = sp.getInt(info.nightscout.pump.medtrum.R.string.key_daily_max_insulin, 180)
+ desiredHourlyMaxInsulin = sp.getInt(R.string.key_hourly_max_insulin, 40)
+ desiredDailyMaxInsulin = sp.getInt(R.string.key_daily_max_insulin, 180)
_pumpSN = pumpSNFromSP
}
@@ -502,12 +502,12 @@ class MedtrumPump @Inject constructor(
AlarmState.PUMP_LOW_BATTERY -> R.string.alarm_pump_low_battery
AlarmState.PUMP_LOW_RESERVOIR -> R.string.alarm_pump_low_reservoir
AlarmState.PUMP_EXPIRES_SOON -> R.string.alarm_pump_expires_soon
- AlarmState.LOWBG_SUSPENDED -> R.string.alarm_lowbg_suspended
- AlarmState.LOWBG_SUSPENDED2 -> R.string.alarm_lowbg_suspended2
- AlarmState.AUTO_SUSPENDED -> R.string.alarm_auto_suspended
- AlarmState.HMAX_SUSPENDED -> R.string.alarm_hmax_suspended
- AlarmState.DMAX_SUSPENDED -> R.string.alarm_dmax_suspended
- AlarmState.SUSPENDED -> R.string.alarm_suspended
+ AlarmState.LOW_BG_SUSPENDED -> R.string.alarm_low_bg_suspended
+ AlarmState.LOW_BG_SUSPENDED2 -> R.string.alarm_low_bg_suspended2
+ AlarmState.AUTO_SUSPENDED -> R.string.alarm_auto_suspended
+ AlarmState.HOURLY_MAX_SUSPENDED -> R.string.alarm_hourly_max_suspended
+ AlarmState.DAILY_MAX_SUSPENDED -> R.string.alarm_daily_max_suspended
+ AlarmState.SUSPENDED -> R.string.alarm_suspended
AlarmState.PAUSED -> R.string.alarm_paused
AlarmState.OCCLUSION -> R.string.alarm_occlusion
AlarmState.EXPIRED -> R.string.alarm_expired
@@ -528,10 +528,10 @@ class MedtrumPump @Inject constructor(
private fun loadActiveAlarms() {
val alarmsStr = sp.getString(R.string.key_active_alarms, "")
- if (alarmsStr.isNullOrEmpty()) {
- activeAlarms = EnumSet.noneOf(AlarmState::class.java)
+ activeAlarms = if (alarmsStr.isEmpty()) {
+ EnumSet.noneOf(AlarmState::class.java)
} else {
- activeAlarms = alarmsStr.split(",")
+ alarmsStr.split(",")
.mapNotNull { AlarmState.values().find { alarm -> alarm.name == it } }
.let { EnumSet.copyOf(it) }
}
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/bindingadapters/ViewBindingAdapter.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/bindingadapters/ViewBindingAdapter.kt
index f4b51efe1a..17f5090276 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/bindingadapters/ViewBindingAdapter.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/bindingadapters/ViewBindingAdapter.kt
@@ -1,20 +1,7 @@
package info.nightscout.pump.medtrum.bindingadapters
import android.view.View
-import android.widget.TextView
-import androidx.annotation.ColorRes
import androidx.databinding.BindingAdapter
-import info.nightscout.pump.medtrum.extension.setVisibleOrGone
-
-@BindingAdapter("android:visibility")
-fun setVisibility(view: View, visible: Boolean) {
- view.setVisibleOrGone(visible)
-}
-
-@BindingAdapter("visibleOrGone")
-fun setVisibleOrGone(view: View, visibleOrGone: Boolean) {
- view.setVisibleOrGone(visibleOrGone)
-}
@BindingAdapter("onSafeClick")
fun View.setOnSafeClickListener(clickListener: View.OnClickListener?) {
@@ -22,8 +9,3 @@ fun View.setOnSafeClickListener(clickListener: View.OnClickListener?) {
setOnClickListener(OnSafeClickListener(it))
} ?: setOnClickListener(null)
}
-
-@BindingAdapter("textColor")
-fun setTextColor(view: TextView, @ColorRes colorResId: Int) {
- view.setTextColor(view.context.getColor(colorResId))
-}
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/ManufacturerData.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/ManufacturerData.kt
index 098d31d984..a6ef2f3ae8 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/ManufacturerData.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/ManufacturerData.kt
@@ -3,7 +3,7 @@ package info.nightscout.pump.medtrum.comm
import kotlin.experimental.and
import info.nightscout.pump.medtrum.extension.toLong
-class ManufacturerData(private val manufacturerDataBytes: ByteArray) {
+class ManufacturerData(manufacturerDataBytes: ByteArray) {
private var deviceID: Long = 0
private var deviceType = 0
private var version = 0
@@ -12,7 +12,7 @@ class ManufacturerData(private val manufacturerDataBytes: ByteArray) {
setData(manufacturerDataBytes)
}
- fun setData(inputData: ByteArray) {
+ private fun setData(inputData: ByteArray) {
var index = 0
val deviceIDBytes: ByteArray = inputData.copyOfRange(index, index + 4)
deviceID = deviceIDBytes.toLong()
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/WriteCommandPackets.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/WriteCommandPackets.kt
index ae0f18e9f4..31655f3ed9 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/WriteCommandPackets.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/WriteCommandPackets.kt
@@ -9,21 +9,20 @@ class WriteCommandPackets(data: ByteArray, sequenceNumber: Int) {
init {
// PackageIndex: 0 initially, if there are multiple packets, for the first packet it is set to 0 (not included in CRC calculation but sent in actual header)
- var pkgIndex = 0
- var header = byteArrayOf(
+ val header = byteArrayOf(
(data.size + 4).toByte(),
data[0],
sequenceNumber.toByte(),
- pkgIndex.toByte()
+ 0.toByte() // pkgIndex
)
var tmp: ByteArray = header + data.copyOfRange(1, data.size)
- var totalCommand: ByteArray = tmp + calcCrc8(tmp, tmp.size).toByte()
+ val totalCommand: ByteArray = tmp + calcCrc8(tmp, tmp.size).toByte()
if ((totalCommand.size - header.size) <= 15) {
packages.add(totalCommand + 0.toByte())
} else {
- pkgIndex = 1
+ var pkgIndex = 1
var remainingCommand = totalCommand.copyOfRange(4, totalCommand.size)
while (remainingCommand.size > 15) {
@@ -52,13 +51,13 @@ class WriteCommandPackets(data: ByteArray, sequenceNumber: Int) {
}
fun allPacketsConsumed(): Boolean {
- return !(index < packages.size)
+ return index >= packages.size
}
private fun calcCrc8(value: ByteArray, size: Int): Int {
var crc8 = 0
for (i in 0 until size) {
- crc8 = CRC_8_TABLE[(value[i].toInt() and 255) xor (crc8 and 255)].toInt() and 255
+ crc8 = CRC_8_TABLE[(value[i].toInt() and 255) xor (crc8 and 255)] and 255
}
return crc8
}
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/enums/AlarmState.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/enums/AlarmState.kt
index 50ae4e30f6..ebc4fc5601 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/enums/AlarmState.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/enums/AlarmState.kt
@@ -5,11 +5,11 @@ enum class AlarmState {
PUMP_LOW_BATTERY, // Mapped from error flag 1
PUMP_LOW_RESERVOIR, // Mapped from error flag 2
PUMP_EXPIRES_SOON, // Mapped from error flag 3
- LOWBG_SUSPENDED, // Mapped from pump status 64
- LOWBG_SUSPENDED2, // Mapped from pump status 65
+ LOW_BG_SUSPENDED, // Mapped from pump status 64
+ LOW_BG_SUSPENDED2, // Mapped from pump status 65
AUTO_SUSPENDED, // Mapped from pump status 66
- HMAX_SUSPENDED, // Mapped from pump status 67
- DMAX_SUSPENDED, // Mapped from pump status 68
+ HOURLY_MAX_SUSPENDED, // Mapped from pump status 67
+ DAILY_MAX_SUSPENDED, // Mapped from pump status 68
SUSPENDED, // Mapped from pump status 69
PAUSED, // Mapped from pump status 70
OCCLUSION, // Mapped from pump status 96
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/enums/MedtrumPumpState.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/enums/MedtrumPumpState.kt
index b52b9c1793..c17caa6ad9 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/enums/MedtrumPumpState.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/enums/MedtrumPumpState.kt
@@ -10,11 +10,11 @@ enum class MedtrumPumpState(val state: Byte) {
EJECTED(6),
ACTIVE(32),
ACTIVE_ALT(33),
- LOWBG_SUSPENDED(64),
- LOWBG_SUSPENDED2(65),
+ LOW_BG_SUSPENDED(64),
+ LOW_BG_SUSPENDED2(65),
AUTO_SUSPENDED(66),
- HMAX_SUSPENDED(67),
- DMAX_SUSPENDED(68),
+ HOURLY_MAX_SUSPENDED(67),
+ DAILY_MAX_SUSPENDED(68),
SUSPENDED(69),
PAUSED(70),
OCCLUSION(96),
@@ -28,6 +28,7 @@ enum class MedtrumPumpState(val state: Byte) {
STOPPED(128.toByte());
companion object {
+
fun fromByte(state: Byte) = values().find { it.state == state }
?: throw IllegalAccessException("")
}
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/ActivatePacket.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/ActivatePacket.kt
index 838fff9727..8ec37c2e2c 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/ActivatePacket.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/ActivatePacket.kt
@@ -55,7 +55,7 @@ class ActivatePacket(injector: HasAndroidInjector, private val basalProfile: Byt
* byte 6: predictiveLowSuspend // Value for auto mode, not used for AAPS
* byte 7: predictiveLowSuspendRange // Value for auto mode, not used for AAPS
* byte 8-9: hourlyMaxInsulin // Max hourly dose of insulin, divided by 0.05
- * byte 10-11: daylyMaxSet // Max daily dose of insulin, divided by 0.05
+ * byte 10-11: dailyMaxSet // Max daily dose of insulin, divided by 0.05
* byte 12-13: tddToday // Current TDD (of present day), divided by 0.05
* byte 14: 1 // Always 1
* bytes 15 - end // Basal profile > see MedtrumPump
@@ -98,7 +98,7 @@ class ActivatePacket(injector: HasAndroidInjector, private val basalProfile: Byt
medtrumPump.currentSequenceNumber = basalSequence // We are activated, set the new seq nr
medtrumPump.syncedSequenceNumber = basalSequence // We are activated, reset the synced seq nr ()
- // Sync canula change
+ // Sync cannula change
pumpSync.insertTherapyEventIfNewWithTimestamp(
timestamp = System.currentTimeMillis(),
type = DetailedBolusInfo.EventType.CANNULA_CHANGE,
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/CancelTempBasalPacket.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/CancelTempBasalPacket.kt
index f6b54aaa18..e271d53db7 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/CancelTempBasalPacket.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/CancelTempBasalPacket.kt
@@ -7,7 +7,6 @@ import info.nightscout.pump.medtrum.comm.enums.BasalType
import info.nightscout.pump.medtrum.extension.toInt
import info.nightscout.pump.medtrum.extension.toLong
import info.nightscout.pump.medtrum.util.MedtrumTimeUtil
-import info.nightscout.rx.logging.LTag
import info.nightscout.shared.utils.DateUtil
import javax.inject.Inject
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/ClearPumpAlarmPacket.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/ClearPumpAlarmPacket.kt
index 15f860fc50..023572873b 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/ClearPumpAlarmPacket.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/ClearPumpAlarmPacket.kt
@@ -4,7 +4,7 @@ import dagger.android.HasAndroidInjector
import info.nightscout.pump.medtrum.comm.enums.CommandType.CLEAR_ALARM
import info.nightscout.pump.medtrum.extension.toByteArray
-class ClearPumpAlarmPacket(injector: HasAndroidInjector, val clearType: Int) : MedtrumPacket(injector) {
+class ClearPumpAlarmPacket(injector: HasAndroidInjector, private val clearType: Int) : MedtrumPacket(injector) {
init {
opCode = CLEAR_ALARM.code
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/GetRecordPacket.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/GetRecordPacket.kt
index ad127fed14..3c3757f66e 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/GetRecordPacket.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/GetRecordPacket.kt
@@ -15,7 +15,6 @@ import info.nightscout.pump.medtrum.extension.toLong
import info.nightscout.pump.medtrum.util.MedtrumTimeUtil
import info.nightscout.rx.logging.LTag
import info.nightscout.shared.utils.DateUtil
-import info.nightscout.shared.utils.T
import javax.inject.Inject
class GetRecordPacket(injector: HasAndroidInjector, private val recordIndex: Int) : MedtrumPacket(injector) {
@@ -38,9 +37,9 @@ class GetRecordPacket(injector: HasAndroidInjector, private val recordIndex: Int
private const val RESP_RECORD_UNKNOWN1_END = RESP_RECORD_UNKNOWN1_START + 1
private const val RESP_RECORD_SERIAL_START = RESP_RECORD_UNKNOWN1_END
private const val RESP_RECORD_SERIAL_END = RESP_RECORD_SERIAL_START + 4
- private const val RESP_RECORD_PATCHID_START = RESP_RECORD_SERIAL_END
- private const val RESP_RECORD_PATCHID_END = RESP_RECORD_PATCHID_START + 2
- private const val RESP_RECORD_SEQUENCE_START = RESP_RECORD_PATCHID_END
+ private const val RESP_RECORD_PATCH_ID_START = RESP_RECORD_SERIAL_END
+ private const val RESP_RECORD_PATCH_ID_END = RESP_RECORD_PATCH_ID_START + 2
+ private const val RESP_RECORD_SEQUENCE_START = RESP_RECORD_PATCH_ID_END
private const val RESP_RECORD_SEQUENCE_END = RESP_RECORD_SEQUENCE_START + 2
private const val RESP_RECORD_DATA_START = RESP_RECORD_SEQUENCE_END
@@ -75,7 +74,7 @@ class GetRecordPacket(injector: HasAndroidInjector, private val recordIndex: Int
val recordUnknown = data.copyOfRange(RESP_RECORD_UNKNOWN_START, RESP_RECORD_UNKNOWN_END).toInt()
val recordType = data.copyOfRange(RESP_RECORD_TYPE_START, RESP_RECORD_TYPE_END).toInt()
val recordSerial = data.copyOfRange(RESP_RECORD_SERIAL_START, RESP_RECORD_SERIAL_END).toLong()
- val recordPatchId = data.copyOfRange(RESP_RECORD_PATCHID_START, RESP_RECORD_PATCHID_END).toInt()
+ val recordPatchId = data.copyOfRange(RESP_RECORD_PATCH_ID_START, RESP_RECORD_PATCH_ID_END).toInt()
val recordSequence = data.copyOfRange(RESP_RECORD_SEQUENCE_START, RESP_RECORD_SEQUENCE_END).toInt()
aapsLogger.debug(
@@ -101,13 +100,15 @@ class GetRecordPacket(injector: HasAndroidInjector, private val recordIndex: Int
val bolusCarb = data.copyOfRange(RESP_RECORD_DATA_START + 18, RESP_RECORD_DATA_START + 20).toInt()
val bolusGlucose = data.copyOfRange(RESP_RECORD_DATA_START + 20, RESP_RECORD_DATA_START + 22).toInt()
val bolusIOB = data.copyOfRange(RESP_RECORD_DATA_START + 22, RESP_RECORD_DATA_START + 24).toInt()
- val unkown1 = data.copyOfRange(RESP_RECORD_DATA_START + 24, RESP_RECORD_DATA_START + 26).toInt()
- val unkown2 = data.copyOfRange(RESP_RECORD_DATA_START + 26, RESP_RECORD_DATA_START + 28).toInt()
+ val unknown1 = data.copyOfRange(RESP_RECORD_DATA_START + 24, RESP_RECORD_DATA_START + 26).toInt()
+ val unknown2 = data.copyOfRange(RESP_RECORD_DATA_START + 26, RESP_RECORD_DATA_START + 28).toInt()
val bolusType = enumValues()[typeAndWizard and 0x0F]
val bolusWizard = (typeAndWizard and 0xF0) != 0
aapsLogger.debug(
LTag.PUMPCOMM,
- "GetRecordPacket HandleResponse: BOLUS_RECORD: typeAndWizard: $typeAndWizard, bolusCause: $bolusCause, unknown: $unknown, bolusStartTime: $bolusStartTime, " + "bolusNormalAmount: $bolusNormalAmount, bolusNormalDelivered: $bolusNormalDelivered, bolusExtendedAmount: $bolusExtendedAmount, bolusExtendedDuration: $bolusExtendedDuration, " + "bolusExtendedDelivered: $bolusExtendedDelivered, bolusCarb: $bolusCarb, bolusGlucose: $bolusGlucose, bolusIOB: $bolusIOB, unkown1: $unkown1, unkown2: $unkown2, " + "bolusType: $bolusType, bolusWizard: $bolusWizard"
+ "GetRecordPacket HandleResponse: BOLUS_RECORD: typeAndWizard: $typeAndWizard, bolusCause: $bolusCause, unknown: $unknown, bolusStartTime: $bolusStartTime, " +
+ "bolusNormalAmount: $bolusNormalAmount, bolusNormalDelivered: $bolusNormalDelivered, bolusExtendedAmount: $bolusExtendedAmount, bolusExtendedDuration: " +
+ "$bolusExtendedDuration, " + "bolusExtendedDelivered: $bolusExtendedDelivered, bolusCarb: $bolusCarb, bolusGlucose: $bolusGlucose, bolusIOB: $bolusIOB, unknown1: $unknown1, unknown2: $unknown2, " + "bolusType: $bolusType, bolusWizard: $bolusWizard"
)
if (bolusType == BolusType.NORMAL) {
@@ -123,7 +124,7 @@ class GetRecordPacket(injector: HasAndroidInjector, private val recordIndex: Int
pumpType = medtrumPump.pumpType(),
pumpSerial = medtrumPump.pumpSN.toString(radix = 16)
)
- if (syncOk == false) {
+ if (!syncOk) {
aapsLogger.warn(LTag.PUMPCOMM, "GetRecordPacket HandleResponse: BOLUS_RECORD: Failed to sync bolus with tempId: ${detailedBolusInfo.timestamp}")
// detailedInfo can be from another similar record. Reinsert
detailedBolusInfoStorage.add(detailedBolusInfo)
@@ -298,7 +299,7 @@ class GetRecordPacket(injector: HasAndroidInjector, private val recordIndex: Int
aapsLogger.debug(LTag.PUMPCOMM, "GetRecordPacket HandleResponse: TDD_RECORD")
val timestamp = MedtrumTimeUtil().convertPumpTimeToSystemTimeMillis(data.copyOfRange(RESP_RECORD_DATA_START, RESP_RECORD_DATA_START + 4).toLong())
val timeZoneOffset = data.copyOfRange(RESP_RECORD_DATA_START + 4, RESP_RECORD_DATA_START + 6).toInt()
- val tddMins = data.copyOfRange(RESP_RECORD_DATA_START + 6, RESP_RECORD_DATA_START + 8).toInt()
+ val tddMinutes = data.copyOfRange(RESP_RECORD_DATA_START + 6, RESP_RECORD_DATA_START + 8).toInt()
val glucoseRecordTime = data.copyOfRange(RESP_RECORD_DATA_START + 8, RESP_RECORD_DATA_START + 12).toLong()
val tdd = data.copyOfRange(RESP_RECORD_DATA_START + 12, RESP_RECORD_DATA_START + 16).toFloat()
val basalTdd = data.copyOfRange(RESP_RECORD_DATA_START + 16, RESP_RECORD_DATA_START + 20).toFloat()
@@ -315,7 +316,7 @@ class GetRecordPacket(injector: HasAndroidInjector, private val recordIndex: Int
val newUMax = data.copyOfRange(RESP_RECORD_DATA_START + 60, RESP_RECORD_DATA_START + 64).toFloat()
aapsLogger.debug(
- LTag.PUMPCOMM, "TDD_RECORD: timestamp: $timestamp, timeZoneOffset: $timeZoneOffset, tddMins: $tddMins, glucoseRecordTime: $glucoseRecordTime, tdd: " +
+ LTag.PUMPCOMM, "TDD_RECORD: timestamp: $timestamp, timeZoneOffset: $timeZoneOffset, tddMinutes: $tddMinutes, glucoseRecordTime: $glucoseRecordTime, tdd: " +
"$tdd, basalTdd: $basalTdd, glucose: $glucose, unknown: $unknown, meanSomething: $meanSomething, usedTdd: $usedTdd, usedIBasal: $usedIBasal, usedSgBasal: " +
"$usedSgBasal, usedUMax: $usedUMax, newTdd: $newTdd, newIBasal: $newIBasal, newSgBasal: $newSgBasal, newUMax: $newUMax"
)
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/MedtrumPacket.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/MedtrumPacket.kt
index 6b175c06df..cc6e7f5f77 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/MedtrumPacket.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/MedtrumPacket.kt
@@ -25,7 +25,7 @@ open class MedtrumPacket(protected var injector: HasAndroidInjector) {
}
init {
- // @Suppress("LeakingThis")
+ @Suppress("LeakingThis")
injector.androidInjector().inject(this)
}
@@ -33,7 +33,7 @@ open class MedtrumPacket(protected var injector: HasAndroidInjector) {
return byteArrayOf(opCode)
}
- /** handles a response from the Medtrum pump, returns true if command was successfull, returns false if command failed or waiting for response */
+ /** handles a response from the Medtrum pump, returns true if command was successful, returns false if command failed or waiting for response */
open fun handleResponse(data: ByteArray): Boolean {
// Check for broken packets
if (RESP_RESULT_END > data.size) {
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/NotificationPacket.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/NotificationPacket.kt
index a37b5323cd..e9a1cdae87 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/NotificationPacket.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/NotificationPacket.kt
@@ -19,7 +19,7 @@ class NotificationPacket(val injector: HasAndroidInjector) {
* but a notification packet. It is sent by the pump to the phone
* when the pump has a notification to send.
*
- * Notifications are sent regualary, regardless of the pump state.
+ * Notifications are sent regularly, regardless of the pump state.
*
* There can be multiple messages in one packet, this is noted by the fieldMask.
*
@@ -97,10 +97,10 @@ class NotificationPacket(val injector: HasAndroidInjector) {
if (fieldMask and MASK_NORMAL_BOLUS != 0) {
aapsLogger.debug(LTag.PUMPCOMM, "Normal bolus notification received")
- var bolusData = data.copyOfRange(offset, offset + 1).toInt()
- var bolusType = bolusData and 0x7F
+ val bolusData = data.copyOfRange(offset, offset + 1).toInt()
+ val bolusType = bolusData and 0x7F
val bolusCompleted: Boolean = ((bolusData shr 7) and 0x01) != 0
- var bolusDelivered = data.copyOfRange(offset + 1, offset + 3).toInt() * 0.05
+ val bolusDelivered = data.copyOfRange(offset + 1, offset + 3).toInt() * 0.05
aapsLogger.debug(LTag.PUMPCOMM, "Bolus type: $bolusType, bolusData: $bolusData bolus completed: $bolusCompleted, bolus delivered: $bolusDelivered")
medtrumPump.handleBolusStatusUpdate(bolusType, bolusCompleted, bolusDelivered)
offset += 3
@@ -115,12 +115,12 @@ class NotificationPacket(val injector: HasAndroidInjector) {
if (fieldMask and MASK_BASAL != 0) {
aapsLogger.debug(LTag.PUMPCOMM, "Basal notification received")
val basalType = enumValues()[data.copyOfRange(offset, offset + 1).toInt()]
- var basalSequence = data.copyOfRange(offset + 1, offset + 3).toInt()
- var basalPatchId = data.copyOfRange(offset + 3, offset + 5).toLong()
- var basalStartTime = MedtrumTimeUtil().convertPumpTimeToSystemTimeMillis(data.copyOfRange(offset + 5, offset + 9).toLong())
- var basalRateAndDelivery = data.copyOfRange(offset + 9, offset + 12).toInt()
- var basalRate = (basalRateAndDelivery and 0xFFF) * 0.05
- var basalDelivery = (basalRateAndDelivery shr 12) * 0.05
+ val basalSequence = data.copyOfRange(offset + 1, offset + 3).toInt()
+ val basalPatchId = data.copyOfRange(offset + 3, offset + 5).toLong()
+ val basalStartTime = MedtrumTimeUtil().convertPumpTimeToSystemTimeMillis(data.copyOfRange(offset + 5, offset + 9).toLong())
+ val basalRateAndDelivery = data.copyOfRange(offset + 9, offset + 12).toInt()
+ val basalRate = (basalRateAndDelivery and 0xFFF) * 0.05
+ val basalDelivery = (basalRateAndDelivery shr 12) * 0.05
aapsLogger.debug(
LTag.PUMPCOMM,
"Basal type: $basalType, basal sequence: $basalSequence, basal patch id: $basalPatchId, basal time: $basalStartTime, basal rate: $basalRate, basal delivery: $basalDelivery"
@@ -159,7 +159,7 @@ class NotificationPacket(val injector: HasAndroidInjector) {
if (fieldMask and MASK_BATTERY != 0) {
aapsLogger.debug(LTag.PUMPCOMM, "Battery notification received")
- var parameter = data.copyOfRange(offset, offset + 3).toInt()
+ val parameter = data.copyOfRange(offset, offset + 3).toInt()
// Precision for voltage A is a guess, voltage B is the important one, threshold: < 2.64
medtrumPump.batteryVoltage_A = (parameter and 0xFFF) / 512.0
medtrumPump.batteryVoltage_B = (parameter shr 12) / 512.0
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/ResumePumpPacket.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/ResumePumpPacket.kt
index aa613b3656..63ecaab62c 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/ResumePumpPacket.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/ResumePumpPacket.kt
@@ -2,7 +2,6 @@ package info.nightscout.pump.medtrum.comm.packets
import dagger.android.HasAndroidInjector
import info.nightscout.pump.medtrum.comm.enums.CommandType.RESUME_PUMP
-import info.nightscout.pump.medtrum.extension.toByteArray
class ResumePumpPacket(injector: HasAndroidInjector) : MedtrumPacket(injector) {
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/SetTimeZonePacket.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/SetTimeZonePacket.kt
index 129e665cf8..cbddb8c75d 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/SetTimeZonePacket.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/SetTimeZonePacket.kt
@@ -13,7 +13,7 @@ class SetTimeZonePacket(injector: HasAndroidInjector) : MedtrumPacket(injector)
@Inject lateinit var dateUtil: DateUtil
@Inject lateinit var medtrumPump: MedtrumPump
- var offsetMins: Int = 0
+ private var offsetMinutes: Int = 0
init {
opCode = SET_TIME_ZONE.code
@@ -21,15 +21,15 @@ class SetTimeZonePacket(injector: HasAndroidInjector) : MedtrumPacket(injector)
override fun getRequest(): ByteArray {
val time = MedtrumTimeUtil().getCurrentTimePumpSeconds()
- offsetMins = dateUtil.getTimeZoneOffsetMinutes(dateUtil.now())
- if (offsetMins < 0) offsetMins += 65536
- return byteArrayOf(opCode) + offsetMins.toByteArray(2) + time.toByteArray(4)
+ offsetMinutes = dateUtil.getTimeZoneOffsetMinutes(dateUtil.now())
+ if (offsetMinutes < 0) offsetMinutes += 65536
+ return byteArrayOf(opCode) + offsetMinutes.toByteArray(2) + time.toByteArray(4)
}
override fun handleResponse(data: ByteArray): Boolean {
val success = super.handleResponse(data)
if (success) {
- medtrumPump.pumpTimeZoneOffset = offsetMins
+ medtrumPump.pumpTimeZoneOffset = offsetMinutes
}
return success
}
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/SynchronizePacket.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/SynchronizePacket.kt
index 4df32dafe7..c7fd95acea 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/SynchronizePacket.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/comm/packets/SynchronizePacket.kt
@@ -16,7 +16,6 @@ class SynchronizePacket(injector: HasAndroidInjector) : MedtrumPacket(injector)
companion object {
private const val RESP_STATE_START = 6
- private const val RESP_STATE_END = RESP_STATE_START + 1
private const val RESP_FIELDS_START = 7
private const val RESP_FIELDS_END = RESP_FIELDS_START + 2
private const val RESP_SYNC_DATA_START = 9
@@ -34,7 +33,7 @@ class SynchronizePacket(injector: HasAndroidInjector) : MedtrumPacket(injector)
override fun handleResponse(data: ByteArray): Boolean {
val success = super.handleResponse(data)
if (success) {
- var state = MedtrumPumpState.fromByte(data[RESP_STATE_START])
+ val state = MedtrumPumpState.fromByte(data[RESP_STATE_START])
aapsLogger.debug(LTag.PUMPCOMM, "SynchronizePacket: state: $state")
if (state != medtrumPump.pumpState) {
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/encryption/Crypt.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/encryption/Crypt.kt
index ce5126de48..a4f7e6c0df 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/encryption/Crypt.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/encryption/Crypt.kt
@@ -8,7 +8,7 @@ class Crypt {
private val RIJNDEAL_S_BOX: IntArray = intArrayOf(99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22)
private val RIJNDEAL_INVERSE_S_BOX: IntArray = intArrayOf(82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125)
- val MED_CIPHER: Long = 1344751489
+ private val MED_CIPHER: Long = 1344751489
fun keyGen(input: Long): Long {
val key = randomGen(randomGen(MED_CIPHER xor input))
@@ -25,7 +25,7 @@ class Crypt {
private fun simpleCrypt(inputData: Long): Long {
var temp = inputData xor MED_CIPHER
for (i in 0 until 32) {
- temp = changeByTable(rotatoLeft(temp, 32, 1), RIJNDEAL_S_BOX).toLong()
+ temp = changeByTable(rotatoLeft(temp, 32, 1), RIJNDEAL_S_BOX)
}
return temp
}
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/extension/ByteArrayExtension.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/extension/ByteArrayExtension.kt
index 4e1d431086..dac514c20a 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/extension/ByteArrayExtension.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/extension/ByteArrayExtension.kt
@@ -21,7 +21,7 @@ fun ByteArray.toInt(): Int {
var result = 0
for (i in this.indices) {
val byte = this[i]
- val shifted = (byte.toInt() and 0xFF).toInt() shl 8 * i
+ val shifted = (byte.toInt() and 0xFF) shl 8 * i
result = result or shifted
}
return result
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/extension/ViewExtension.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/extension/ViewExtension.kt
index 5cf65baeb6..2bab7086c4 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/extension/ViewExtension.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/extension/ViewExtension.kt
@@ -9,26 +9,3 @@ fun View?.visible(vararg views: View?) {
for (view in views)
view.visible()
}
-
-fun View?.invisible() = this?.run { visibility = View.INVISIBLE }
-
-fun View?.invisible(vararg views: View?) {
- invisible()
- for (view in views)
- view.invisible()
-}
-
-fun View?.gone() = this?.run { visibility = View.GONE }
-
-fun View?.gone(vararg views: View?) {
- gone()
- for (view in views)
- view.gone()
-}
-
-fun View?.setVisibleOrGone(visibleOrGone: Boolean, vararg views: View?) {
- for (view in views)
- if (visibleOrGone) view.visible() else view.gone()
-}
-
-fun View?.setVisibleOrGone(visibleOrGone: Boolean) = setVisibleOrGone(visibleOrGone, this)
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/services/BLEComm.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/services/BLEComm.kt
index b4058efd49..13de8dfacc 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/services/BLEComm.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/services/BLEComm.kt
@@ -241,16 +241,16 @@ class BLEComm @Inject internal constructor(
}
override fun onCharacteristicRead(gatt: BluetoothGatt, characteristic: BluetoothGattCharacteristic, status: Int) {
- aapsLogger.debug(LTag.PUMPBTCOMM, "onCharacteristicRead data: " + characteristic.value.contentToString() + " UUID: " + characteristic.getUuid().toString() + " status: " + status)
+ aapsLogger.debug(LTag.PUMPBTCOMM, "onCharacteristicRead data: " + characteristic.value.contentToString() + " UUID: " + characteristic.uuid.toString() + " status: " + status)
}
override fun onCharacteristicChanged(gatt: BluetoothGatt, characteristic: BluetoothGattCharacteristic) {
- aapsLogger.debug(LTag.PUMPBTCOMM, "onCharacteristicChanged data: " + characteristic.value.contentToString() + " UUID: " + characteristic.getUuid().toString())
+ aapsLogger.debug(LTag.PUMPBTCOMM, "onCharacteristicChanged data: " + characteristic.value.contentToString() + " UUID: " + characteristic.uuid.toString())
- val value = characteristic.getValue()
- if (characteristic.getUuid() == UUID.fromString(READ_UUID)) {
+ val value = characteristic.value
+ if (characteristic.uuid == UUID.fromString(READ_UUID)) {
mCallback?.onNotification(value)
- } else if (characteristic.getUuid() == UUID.fromString(WRITE_UUID)) {
+ } else if (characteristic.uuid == UUID.fromString(WRITE_UUID)) {
synchronized(readLock) {
if (mReadPacket == null) {
mReadPacket = ReadDataPacket(value)
@@ -398,7 +398,7 @@ class BLEComm @Inject internal constructor(
@Synchronized
fun sendMessage(message: ByteArray) {
- aapsLogger.debug(LTag.PUMPBTCOMM, "sendMessage message = " + Arrays.toString(message))
+ aapsLogger.debug(LTag.PUMPBTCOMM, "sendMessage message = " + message.contentToString())
if (mWritePackets?.allPacketsConsumed() == false) {
aapsLogger.error(LTag.PUMPBTCOMM, "sendMessage not all packets consumed!! unable to sent message!")
return
@@ -455,7 +455,7 @@ class BLEComm @Inject internal constructor(
val gattService = getGattService() ?: return
var uuid: String
val gattCharacteristics = gattService.characteristics
- for (i in 0..gattCharacteristics.size - 1) {
+ for (i in 0 until gattCharacteristics.size) {
val gattCharacteristic = gattCharacteristics.get(i)
// Check whether read or write properties is set, the pump needs us to enable notifications on all characteristics that have these properties
if (gattCharacteristic.properties and NEEDS_ENABLE > 0) {
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/services/MedtrumService.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/services/MedtrumService.kt
index 9fc02a1625..da05d95f01 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/services/MedtrumService.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/services/MedtrumService.kt
@@ -29,7 +29,6 @@ import info.nightscout.pump.medtrum.code.ConnectionState
import info.nightscout.pump.medtrum.comm.enums.AlarmState
import info.nightscout.pump.medtrum.comm.enums.MedtrumPumpState
import info.nightscout.pump.medtrum.comm.packets.*
-import info.nightscout.pump.medtrum.util.MedtrumTimeUtil
import info.nightscout.rx.AapsSchedulers
import info.nightscout.rx.bus.RxBus
import info.nightscout.rx.events.EventAppExit
@@ -84,8 +83,6 @@ class MedtrumService : DaggerService(), BLECommCallback {
private const val ALARM_DAILY_MAX_CLEAR_CODE = 5
}
- val timeUtil = MedtrumTimeUtil()
-
private val disposable = CompositeDisposable()
private val mBinder: IBinder = LocalBinder()
@@ -124,7 +121,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
medtrumPump.loadUserSettingsFromSP()
commandQueue.setUserOptions(object : Callback() {
override fun run() {
- if (medtrumPlugin.isInitialized() && this.result.success == false) {
+ if (medtrumPlugin.isInitialized() && !this.result.success) {
uiInteraction.addNotification(
Notification.PUMP_SETTINGS_FAILED,
rh.gs(R.string.pump_setting_failed),
@@ -204,7 +201,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
}
fun readPumpStatus() {
- rxBus.send(EventPumpStatusChanged(rh.gs(R.string.gettingpumpstatus)))
+ rxBus.send(EventPumpStatusChanged(rh.gs(R.string.getting_pump_status)))
updateTimeIfNeeded(false)
loadEvents()
}
@@ -229,7 +226,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
fun updateTimeIfNeeded(needLoadHistory: Boolean = true): Boolean {
// Note we only check timeZone here, time is updated each connection attempt if needed, because the pump requires it to be checked
- // But we dont check timeZone each time, therefore we do it here (if needed)
+ // But we don't check timeZone each time, therefore we do it here (if needed)
var result = true
if (medtrumPump.pumpTimeZoneOffset != dateUtil.getTimeZoneOffsetMinutes(dateUtil.now())) {
result = sendPacketAndGetResponse(SetTimePacket(injector))
@@ -245,7 +242,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
}
fun loadEvents(): Boolean {
- rxBus.send(EventPumpStatusChanged(rh.gs(R.string.gettingpumpstatus)))
+ rxBus.send(EventPumpStatusChanged(rh.gs(R.string.getting_pump_status)))
// Sync records
val result = syncRecords()
if (result) {
@@ -261,16 +258,16 @@ class MedtrumService : DaggerService(), BLECommCallback {
var result = true
if (medtrumPump.pumpState in listOf(
MedtrumPumpState.PAUSED,
- MedtrumPumpState.HMAX_SUSPENDED,
- MedtrumPumpState.DMAX_SUSPENDED
+ MedtrumPumpState.HOURLY_MAX_SUSPENDED,
+ MedtrumPumpState.DAILY_MAX_SUSPENDED
)
) {
when (medtrumPump.pumpState) {
- MedtrumPumpState.HMAX_SUSPENDED -> {
+ MedtrumPumpState.HOURLY_MAX_SUSPENDED -> {
result = sendPacketAndGetResponse(ClearPumpAlarmPacket(injector, ALARM_HOURLY_MAX_CLEAR_CODE))
}
- MedtrumPumpState.DMAX_SUSPENDED -> {
+ MedtrumPumpState.DAILY_MAX_SUSPENDED -> {
result = sendPacketAndGetResponse(ClearPumpAlarmPacket(injector, ALARM_DAILY_MAX_CLEAR_CODE))
}
@@ -285,7 +282,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
}
fun setUserSettings(): Boolean {
- rxBus.send(EventPumpStatusChanged(rh.gs(R.string.settingpumpsettings)))
+ rxBus.send(EventPumpStatusChanged(rh.gs(R.string.setting_pump_settings)))
return sendPacketAndGetResponse(SetPatchPacket(injector))
}
@@ -301,16 +298,16 @@ class MedtrumService : DaggerService(), BLECommCallback {
medtrumPump.bolusStopped = false
medtrumPump.bolusProgressLastTimeStamp = bolusStart
- if (insulin > 0 && !medtrumPump.bolusStopped) {
+ if (insulin > 0) {
val result = sendPacketAndGetResponse(SetBolusPacket(injector, insulin))
- if (result == false) {
+ if (!result) {
aapsLogger.error(LTag.PUMPCOMM, "Failed to set bolus")
commandQueue.loadEvents(null) // make sure if anything is delivered (which is highly unlikely at this point) we get it
t.insulin = 0.0
return false
}
} else {
- aapsLogger.debug(LTag.PUMPCOMM, "Bolus not set, insulin: $insulin, bolusStopped: ${medtrumPump.bolusStopped}")
+ aapsLogger.debug(LTag.PUMPCOMM, "Bolus not set, insulin: $insulin")
t.insulin = 0.0
return false
}
@@ -384,7 +381,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
// Do not call update status directly, reconnection may be needed
commandQueue.loadEvents(object : Callback() {
override fun run() {
- rxBus.send(EventPumpStatusChanged(rh.gs(R.string.gettingbolusstatus)))
+ rxBus.send(EventPumpStatusChanged(rh.gs(R.string.getting_bolus_status)))
bolusingEvent.percent = 100
}
})
@@ -395,7 +392,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
aapsLogger.debug(LTag.PUMPCOMM, "bolusStop >>>>> @ " + if (medtrumPump.bolusingTreatment == null) "" else medtrumPump.bolusingTreatment?.insulin)
if (isConnected) {
var success = sendPacketAndGetResponse(CancelBolusPacket(injector))
- var timeout = System.currentTimeMillis() + T.secs(30).msecs()
+ val timeout = System.currentTimeMillis() + T.secs(30).msecs()
while (!success && System.currentTimeMillis() < timeout) {
success = sendPacketAndGetResponse(CancelBolusPacket(injector))
SystemClock.sleep(200)
@@ -414,11 +411,11 @@ class MedtrumService : DaggerService(), BLECommCallback {
}
if (result) result = sendPacketAndGetResponse(SetTempBasalPacket(injector, absoluteRate, durationInMinutes))
- // Get history records, this will update the prevoius basals
+ // Get history records, this will update the previous basals
// Do not call update status directly, reconnection may be needed
commandQueue.loadEvents(object : Callback() {
override fun run() {
- rxBus.send(EventPumpStatusChanged(rh.gs(R.string.gettingtempbasalstatus)))
+ rxBus.send(EventPumpStatusChanged(rh.gs(R.string.getting_temp_basal_status)))
}
})
@@ -426,13 +423,13 @@ class MedtrumService : DaggerService(), BLECommCallback {
}
fun cancelTempBasal(): Boolean {
- var result = sendPacketAndGetResponse(CancelTempBasalPacket(injector))
+ val result = sendPacketAndGetResponse(CancelTempBasalPacket(injector))
- // Get history records, this will update the prevoius basals
+ // Get history records, this will update the previous basals
// Do not call update status directly, reconnection may be needed
commandQueue.loadEvents(object : Callback() {
override fun run() {
- rxBus.send(EventPumpStatusChanged(rh.gs(R.string.gettingtempbasalstatus)))
+ rxBus.send(EventPumpStatusChanged(rh.gs(R.string.getting_temp_basal_status)))
}
})
@@ -462,7 +459,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
if (medtrumPump.syncedSequenceNumber < medtrumPump.currentSequenceNumber) {
for (sequence in (medtrumPump.syncedSequenceNumber + 1)..medtrumPump.currentSequenceNumber) {
result = sendPacketAndGetResponse(GetRecordPacket(injector, sequence), COMMAND_SYNC_TIMEOUT_SEC)
- if (result == false) break
+ if (!result) break
}
}
return result
@@ -471,23 +468,23 @@ class MedtrumService : DaggerService(), BLECommCallback {
private fun handlePumpStateUpdate(state: MedtrumPumpState) {
// Map the pump state to an alarm state and add it to the active alarms
val alarmState = when (state) {
- MedtrumPumpState.NONE -> AlarmState.NONE
- MedtrumPumpState.LOWBG_SUSPENDED -> AlarmState.LOWBG_SUSPENDED
- MedtrumPumpState.LOWBG_SUSPENDED2 -> AlarmState.LOWBG_SUSPENDED2
- MedtrumPumpState.AUTO_SUSPENDED -> AlarmState.AUTO_SUSPENDED
- MedtrumPumpState.HMAX_SUSPENDED -> AlarmState.HMAX_SUSPENDED
- MedtrumPumpState.DMAX_SUSPENDED -> AlarmState.DMAX_SUSPENDED
- MedtrumPumpState.SUSPENDED -> AlarmState.SUSPENDED
- MedtrumPumpState.PAUSED -> AlarmState.PAUSED
- MedtrumPumpState.OCCLUSION -> AlarmState.OCCLUSION
- MedtrumPumpState.EXPIRED -> AlarmState.EXPIRED
- MedtrumPumpState.RESERVOIR_EMPTY -> AlarmState.RESERVOIR_EMPTY
- MedtrumPumpState.PATCH_FAULT -> AlarmState.PATCH_FAULT
- MedtrumPumpState.PATCH_FAULT2 -> AlarmState.PATCH_FAULT2
- MedtrumPumpState.BASE_FAULT -> AlarmState.BASE_FAULT
- MedtrumPumpState.BATTERY_OUT -> AlarmState.BATTERY_OUT
- MedtrumPumpState.NO_CALIBRATION -> AlarmState.NO_CALIBRATION
- else -> null
+ MedtrumPumpState.NONE -> AlarmState.NONE
+ MedtrumPumpState.LOW_BG_SUSPENDED -> AlarmState.LOW_BG_SUSPENDED
+ MedtrumPumpState.LOW_BG_SUSPENDED2 -> AlarmState.LOW_BG_SUSPENDED2
+ MedtrumPumpState.AUTO_SUSPENDED -> AlarmState.AUTO_SUSPENDED
+ MedtrumPumpState.HOURLY_MAX_SUSPENDED -> AlarmState.HOURLY_MAX_SUSPENDED
+ MedtrumPumpState.DAILY_MAX_SUSPENDED -> AlarmState.DAILY_MAX_SUSPENDED
+ MedtrumPumpState.SUSPENDED -> AlarmState.SUSPENDED
+ MedtrumPumpState.PAUSED -> AlarmState.PAUSED
+ MedtrumPumpState.OCCLUSION -> AlarmState.OCCLUSION
+ MedtrumPumpState.EXPIRED -> AlarmState.EXPIRED
+ MedtrumPumpState.RESERVOIR_EMPTY -> AlarmState.RESERVOIR_EMPTY
+ MedtrumPumpState.PATCH_FAULT -> AlarmState.PATCH_FAULT
+ MedtrumPumpState.PATCH_FAULT2 -> AlarmState.PATCH_FAULT2
+ MedtrumPumpState.BASE_FAULT -> AlarmState.BASE_FAULT
+ MedtrumPumpState.BATTERY_OUT -> AlarmState.BATTERY_OUT
+ MedtrumPumpState.NO_CALIBRATION -> AlarmState.NO_CALIBRATION
+ else -> null
}
if (alarmState != null && alarmState != AlarmState.NONE) {
medtrumPump.addAlarm(alarmState)
@@ -533,8 +530,8 @@ class MedtrumService : DaggerService(), BLECommCallback {
medtrumPump.clearAlarmState()
}
- MedtrumPumpState.LOWBG_SUSPENDED,
- MedtrumPumpState.LOWBG_SUSPENDED2,
+ MedtrumPumpState.LOW_BG_SUSPENDED,
+ MedtrumPumpState.LOW_BG_SUSPENDED2,
MedtrumPumpState.AUTO_SUSPENDED,
MedtrumPumpState.SUSPENDED,
MedtrumPumpState.PAUSED -> {
@@ -546,7 +543,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
// Pump will report proper TBR for this
}
- MedtrumPumpState.HMAX_SUSPENDED -> {
+ MedtrumPumpState.HOURLY_MAX_SUSPENDED -> {
uiInteraction.addNotification(
Notification.PUMP_SUSPENDED,
rh.gs(R.string.pump_is_suspended_hour_max),
@@ -555,7 +552,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
// Pump will report proper TBR for this
}
- MedtrumPumpState.DMAX_SUSPENDED -> {
+ MedtrumPumpState.DAILY_MAX_SUSPENDED -> {
uiInteraction.addNotification(
Notification.PUMP_SUSPENDED,
rh.gs(R.string.pump_is_suspended_day_max),
@@ -721,8 +718,6 @@ class MedtrumService : DaggerService(), BLECommCallback {
// State for connect flow
private inner class AuthState : State() {
- val retryCounter = 0
-
override fun onEnter() {
aapsLogger.debug(LTag.PUMPCOMM, "Medtrum Service reached AuthState")
mPacket = AuthorizePacket(injector)
@@ -734,7 +729,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
override fun onIndication(data: ByteArray) {
if (mPacket?.handleResponse(data) == true) {
- // Succes!
+ // Success!
responseHandled = true
responseSuccess = true
// Check if we have a supported pump
@@ -776,7 +771,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
override fun onIndication(data: ByteArray) {
if (mPacket?.handleResponse(data) == true) {
- // Succes!
+ // Success!
responseHandled = true
responseSuccess = true
// Place holder, not really used (yet)
@@ -808,7 +803,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
override fun onIndication(data: ByteArray) {
if (mPacket?.handleResponse(data) == true) {
- // Succes!
+ // Success!
responseHandled = true
responseSuccess = true
val currTime = dateUtil.now()
@@ -843,7 +838,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
override fun onIndication(data: ByteArray) {
if (mPacket?.handleResponse(data) == true) {
- // Succes!
+ // Success!
responseHandled = true
responseSuccess = true
toState(SetTimeZoneState())
@@ -871,7 +866,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
override fun onIndication(data: ByteArray) {
if (mPacket?.handleResponse(data) == true) {
- // Succes!
+ // Success!
responseHandled = true
responseSuccess = true
medtrumPump.needCheckTimeUpdate = false
@@ -901,7 +896,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
override fun onIndication(data: ByteArray) {
if (mPacket?.handleResponse(data) == true) {
- // Succes!
+ // Success!
responseHandled = true
responseSuccess = true
toState(SubscribeState())
@@ -929,7 +924,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
override fun onIndication(data: ByteArray) {
if (mPacket?.handleResponse(data) == true) {
- // Succes!
+ // Success!
responseHandled = true
responseSuccess = true
toState(ReadyState())
@@ -949,7 +944,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
override fun onEnter() {
aapsLogger.debug(LTag.PUMPCOMM, "Medtrum Service reached ReadyState!")
// Now we are fully connected and authenticated and we can start sending commands. Let AAPS know
- if (isConnected == false) {
+ if (!isConnected) {
medtrumPump.connectionState = ConnectionState.CONNECTED
}
}
@@ -964,7 +959,7 @@ class MedtrumService : DaggerService(), BLECommCallback {
override fun onIndication(data: ByteArray) {
if (mPacket?.handleResponse(data) == true) {
- // Succes!
+ // Success!
responseHandled = true
responseSuccess = true
toState(ReadyState())
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumActivity.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumActivity.kt
index a7fd32336f..dbf48c36aa 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumActivity.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumActivity.kt
@@ -6,6 +6,7 @@ import android.content.pm.ActivityInfo
import android.os.Bundle
import android.view.MotionEvent
import android.view.WindowManager
+import androidx.activity.OnBackPressedCallback
import androidx.lifecycle.ViewModelProvider
import info.nightscout.core.utils.extensions.safeGetSerializableExtra
import info.nightscout.pump.medtrum.R
@@ -19,17 +20,13 @@ class MedtrumActivity : MedtrumBaseActivity() {
override fun getLayoutId(): Int = R.layout.activity_medtrum
- override fun dispatchTouchEvent(event: MotionEvent): Boolean {
- return super.dispatchTouchEvent(event)
- }
-
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LOCKED
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
binding.apply {
- viewModel = ViewModelProvider(this@MedtrumActivity, viewModelFactory).get(MedtrumViewModel::class.java)
+ viewModel = ViewModelProvider(this@MedtrumActivity, viewModelFactory)[MedtrumViewModel::class.java]
viewModel?.apply {
processIntent(intent)
@@ -70,6 +67,28 @@ class MedtrumActivity : MedtrumBaseActivity() {
}
}
}
+ onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
+ override fun handleOnBackPressed() {
+ binding.viewModel?.apply {
+ when (patchStep.value) {
+ PatchStep.PREPARE_PATCH,
+ PatchStep.START_DEACTIVATION,
+ PatchStep.RETRY_ACTIVATION -> {
+ handleCancel()
+ this@MedtrumActivity.finish()
+ }
+
+ PatchStep.COMPLETE,
+ PatchStep.DEACTIVATION_COMPLETE -> {
+ handleComplete()
+ this@MedtrumActivity.finish()
+ }
+
+ else -> Unit
+ }
+ }
+ }
+ })
}
override fun onNewIntent(intent: Intent?) {
@@ -88,20 +107,10 @@ class MedtrumActivity : MedtrumBaseActivity() {
}
}
- override fun onDestroy() {
- super.onDestroy()
- }
-
- override fun onBackPressed() {
- binding.viewModel?.apply {
- // Do nothing
- }
- }
-
companion object {
const val EXTRA_START_PATCH_STEP = "EXTRA_START_PATCH_FRAGMENT_UI"
- const val EXTRA_START_FROM_MENU = "EXTRA_START_FROM_MENU"
+ private const val EXTRA_START_FROM_MENU = "EXTRA_START_FROM_MENU"
@JvmStatic fun createIntentFromMenu(context: Context, patchStep: PatchStep): Intent {
return Intent(context, MedtrumActivity::class.java).apply {
@@ -115,5 +124,4 @@ class MedtrumActivity : MedtrumBaseActivity() {
private fun setupViewFragment(baseFragment: MedtrumBaseFragment<*>) {
replaceFragmentInActivity(baseFragment, R.id.framelayout_fragment, false)
}
-
}
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumPreparePatchFragment.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumPreparePatchFragment.kt
index 5e23d96632..425f7fac3f 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumPreparePatchFragment.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumPreparePatchFragment.kt
@@ -5,7 +5,6 @@ import android.view.View
import androidx.lifecycle.ViewModelProvider
import info.nightscout.pump.medtrum.R
import info.nightscout.pump.medtrum.databinding.FragmentMedtrumPreparePatchBinding
-import info.nightscout.pump.medtrum.ui.MedtrumBaseFragment
import info.nightscout.pump.medtrum.ui.viewmodel.MedtrumViewModel
import info.nightscout.rx.logging.AAPSLogger
import info.nightscout.rx.logging.LTag
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumPrimeCompleteFragment.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumPrimeCompleteFragment.kt
index 75b2bad284..f7e3c402d2 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumPrimeCompleteFragment.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumPrimeCompleteFragment.kt
@@ -8,7 +8,6 @@ import info.nightscout.core.ui.toast.ToastUtils
import info.nightscout.pump.medtrum.R
import info.nightscout.pump.medtrum.code.PatchStep
import info.nightscout.pump.medtrum.databinding.FragmentMedtrumPrimeCompleteBinding
-import info.nightscout.pump.medtrum.ui.MedtrumBaseFragment
import info.nightscout.pump.medtrum.ui.viewmodel.MedtrumViewModel
import info.nightscout.rx.logging.AAPSLogger
import info.nightscout.rx.logging.LTag
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumPrimeFragment.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumPrimeFragment.kt
index 3322c8a54f..80020abe46 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumPrimeFragment.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumPrimeFragment.kt
@@ -8,7 +8,6 @@ import info.nightscout.core.ui.toast.ToastUtils
import info.nightscout.pump.medtrum.R
import info.nightscout.pump.medtrum.code.PatchStep
import info.nightscout.pump.medtrum.databinding.FragmentMedtrumPrimeBinding
-import info.nightscout.pump.medtrum.ui.MedtrumBaseFragment
import info.nightscout.pump.medtrum.ui.viewmodel.MedtrumViewModel
import info.nightscout.rx.logging.AAPSLogger
import info.nightscout.rx.logging.LTag
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumPrimingFragment.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumPrimingFragment.kt
index fe1234a5c3..eeee99aa71 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumPrimingFragment.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumPrimingFragment.kt
@@ -8,7 +8,6 @@ import info.nightscout.core.ui.toast.ToastUtils
import info.nightscout.pump.medtrum.R
import info.nightscout.pump.medtrum.code.PatchStep
import info.nightscout.pump.medtrum.databinding.FragmentMedtrumPrimingBinding
-import info.nightscout.pump.medtrum.ui.MedtrumBaseFragment
import info.nightscout.pump.medtrum.ui.viewmodel.MedtrumViewModel
import info.nightscout.rx.logging.AAPSLogger
import info.nightscout.rx.logging.LTag
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumRetryActivationConnectFragment.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumRetryActivationConnectFragment.kt
index 466be92e7b..47de209db4 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumRetryActivationConnectFragment.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumRetryActivationConnectFragment.kt
@@ -7,7 +7,6 @@ import info.nightscout.core.ui.dialogs.OKDialog
import info.nightscout.pump.medtrum.R
import info.nightscout.pump.medtrum.code.PatchStep
import info.nightscout.pump.medtrum.databinding.FragmentMedtrumRetryActivationConnectBinding
-import info.nightscout.pump.medtrum.ui.MedtrumBaseFragment
import info.nightscout.pump.medtrum.ui.viewmodel.MedtrumViewModel
import info.nightscout.rx.logging.AAPSLogger
import info.nightscout.rx.logging.LTag
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumRetryActivationFragment.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumRetryActivationFragment.kt
index 5e1673685b..829f80d217 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumRetryActivationFragment.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/MedtrumRetryActivationFragment.kt
@@ -7,7 +7,6 @@ import info.nightscout.core.ui.dialogs.OKDialog
import info.nightscout.pump.medtrum.R
import info.nightscout.pump.medtrum.code.PatchStep
import info.nightscout.pump.medtrum.databinding.FragmentMedtrumRetryActivationBinding
-import info.nightscout.pump.medtrum.ui.MedtrumBaseFragment
import info.nightscout.pump.medtrum.ui.viewmodel.MedtrumViewModel
import info.nightscout.rx.logging.AAPSLogger
import info.nightscout.rx.logging.LTag
@@ -32,7 +31,7 @@ class MedtrumRetryActivationFragment : MedtrumBaseFragment : ViewModel() {
private var _navigator: WeakReference? = null
- var navigator: N?
+ private var navigator: N?
set(value) {
_navigator = WeakReference(value)
}
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/viewmodel/MedtrumOverviewViewModel.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/viewmodel/MedtrumOverviewViewModel.kt
index da742ea91d..1cd1de8a95 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/viewmodel/MedtrumOverviewViewModel.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/viewmodel/MedtrumOverviewViewModel.kt
@@ -114,7 +114,7 @@ class MedtrumOverviewViewModel @Inject constructor(
aapsLogger.debug(LTag.PUMP, "MedtrumViewModel pumpStateFlow: $state")
_canDoResetAlarms.postValue(
medtrumPump.pumpState in listOf(
- MedtrumPumpState.PAUSED, MedtrumPumpState.HMAX_SUSPENDED, MedtrumPumpState.DMAX_SUSPENDED
+ MedtrumPumpState.PAUSED, MedtrumPumpState.HOURLY_MAX_SUSPENDED, MedtrumPumpState.DAILY_MAX_SUSPENDED
)
)
@@ -153,7 +153,7 @@ class MedtrumOverviewViewModel @Inject constructor(
}
}
- fun updateGUI() {
+ private fun updateGUI() {
// Update less dynamic values
if (medtrumPump.lastConnection != 0L) {
val agoMilliseconds = System.currentTimeMillis() - medtrumPump.lastConnection
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/viewmodel/MedtrumViewModel.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/viewmodel/MedtrumViewModel.kt
index 688770f884..f12f49e6aa 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/viewmodel/MedtrumViewModel.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/ui/viewmodel/MedtrumViewModel.kt
@@ -10,13 +10,10 @@ import info.nightscout.pump.medtrum.MedtrumPump
import info.nightscout.pump.medtrum.R
import info.nightscout.pump.medtrum.code.ConnectionState
import info.nightscout.pump.medtrum.services.MedtrumService
-import info.nightscout.pump.medtrum.code.EventType
import info.nightscout.pump.medtrum.code.PatchStep
import info.nightscout.pump.medtrum.comm.enums.MedtrumPumpState
import info.nightscout.pump.medtrum.encryption.Crypt
import info.nightscout.pump.medtrum.ui.MedtrumBaseNavigator
-import info.nightscout.pump.medtrum.ui.event.SingleLiveEvent
-import info.nightscout.pump.medtrum.ui.event.UIEvent
import info.nightscout.rx.logging.AAPSLogger
import info.nightscout.rx.logging.LTag
import kotlinx.coroutines.CoroutineScope
@@ -43,10 +40,6 @@ class MedtrumViewModel @Inject constructor(
val title: LiveData
get() = _title
- private val _eventHandler = SingleLiveEvent>()
- val eventHandler: LiveData>
- get() = _eventHandler
-
private var oldPatchStep: PatchStep? = null
private var mInitPatchStep: PatchStep? = null
private var connectRetryCounter = 0
@@ -155,7 +148,7 @@ class MedtrumViewModel @Inject constructor(
PatchStep.RETRY_ACTIVATION_CONNECT,
PatchStep.PREPARE_PATCH_CONNECT -> {
- // Make sure we are disconnected, else dont move step
+ // Make sure we are disconnected, else don't move step
if (medtrumService?.isConnected == true) {
aapsLogger.info(LTag.PUMP, "moveStep: connected, not moving step")
return
@@ -167,7 +160,7 @@ class MedtrumViewModel @Inject constructor(
PatchStep.PRIME_COMPLETE,
PatchStep.ATTACH_PATCH,
PatchStep.ACTIVATE -> {
- // Make sure we are connected, else dont move step
+ // Make sure we are connected, else don't move step
if (medtrumService?.isConnected == false) {
aapsLogger.info(LTag.PUMP, "moveStep: not connected, not moving step")
return
@@ -321,7 +314,7 @@ class MedtrumViewModel @Inject constructor(
aapsLogger.info(LTag.PUMP, "prepareStep: title before cond: $stringResId")
if (currentTitle != stringResId) {
aapsLogger.info(LTag.PUMP, "prepareStep: title: $stringResId")
- _title.postValue(stringResId)
+ stringResId?.let { _title.postValue(it) }
}
patchStep.postValue(newStep)
diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/util/MedtrumTimeUtil.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/util/MedtrumTimeUtil.kt
index ad3910f0ec..fd6dc2ddd6 100644
--- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/util/MedtrumTimeUtil.kt
+++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/util/MedtrumTimeUtil.kt
@@ -5,19 +5,13 @@ import java.time.Instant
class MedtrumTimeUtil {
- fun getCurrentTimePumpSeconds() : Long {
+ fun getCurrentTimePumpSeconds(): Long {
val startInstant = Instant.parse("2014-01-01T00:00:00Z")
val currentInstant = Instant.now()
return Duration.between(startInstant, currentInstant).seconds
}
- fun getCurrentTimePumpMillis() : Long {
- val startInstant = Instant.parse("2014-01-01T00:00:00Z")
- val currentInstant = Instant.now()
- return Duration.between(startInstant, currentInstant).seconds * 1000
- }
-
- fun convertPumpTimeToSystemTimeMillis(pumpTime: Long) : Long {
+ fun convertPumpTimeToSystemTimeMillis(pumpTime: Long): Long {
val startInstant = Instant.parse("2014-01-01T00:00:00Z")
val pumpInstant = startInstant.plusSeconds(pumpTime)
val epochInstant = Instant.EPOCH
diff --git a/pump/medtrum/src/main/res/layout/activity_medtrum.xml b/pump/medtrum/src/main/res/layout/activity_medtrum.xml
index 2c1d16aad2..50b4d5451b 100644
--- a/pump/medtrum/src/main/res/layout/activity_medtrum.xml
+++ b/pump/medtrum/src/main/res/layout/activity_medtrum.xml
@@ -34,8 +34,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent"
- tools:text="@string/string_change_patch" />
+ app:layout_constraintTop_toTopOf="parent" />
diff --git a/pump/medtrum/src/main/res/layout/fragment_medtrum_deactivation_complete.xml b/pump/medtrum/src/main/res/layout/fragment_medtrum_deactivation_complete.xml
index cc564f230f..1fb333cb19 100644
--- a/pump/medtrum/src/main/res/layout/fragment_medtrum_deactivation_complete.xml
+++ b/pump/medtrum/src/main/res/layout/fragment_medtrum_deactivation_complete.xml
@@ -26,19 +26,33 @@
tools:context=".ui.MedtrumActivity">
+
+
+ xmlns:app="http://schemas.android.com/apk/res-auto">
diff --git a/pump/medtrum/src/main/res/values-af-rZA/arrays.xml b/pump/medtrum/src/main/res/values-af-rZA/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-af-rZA/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-af-rZA/strings.xml b/pump/medtrum/src/main/res/values-af-rZA/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-af-rZA/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-bg-rBG/arrays.xml b/pump/medtrum/src/main/res/values-bg-rBG/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-bg-rBG/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-bg-rBG/strings.xml b/pump/medtrum/src/main/res/values-bg-rBG/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-bg-rBG/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-ca-rES/arrays.xml b/pump/medtrum/src/main/res/values-ca-rES/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-ca-rES/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-ca-rES/strings.xml b/pump/medtrum/src/main/res/values-ca-rES/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-ca-rES/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-cs-rCZ/arrays.xml b/pump/medtrum/src/main/res/values-cs-rCZ/arrays.xml
new file mode 100644
index 0000000000..b6253b10b2
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-cs-rCZ/arrays.xml
@@ -0,0 +1,13 @@
+
+
+
+ - Světlo, vibrace a pípnutí
+ - Světlo a vibrace
+ - Světlo a pípnutí
+ - Světlo
+ - Vibrace a pípnutí
+ - Vibrace
+ - Pípnutí
+ - Ticho
+
+
diff --git a/pump/medtrum/src/main/res/values-cs-rCZ/strings.xml b/pump/medtrum/src/main/res/values-cs-rCZ/strings.xml
new file mode 100644
index 0000000000..0bd6c25637
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-cs-rCZ/strings.xml
@@ -0,0 +1,119 @@
+
+
+
+ Medtrum
+ MT
+ Integrace pumpy Medtrum Nano
+ Nastavení pumpy Medtrum
+ Chyba pumpy: %1$s!!
+ Nevyzkoušená pumpa: %1$d! Kontaktujte nás na Discordu nebo Githubu, kde získáte podporu.
+ Pumpa je pozastavena
+ Pumpa je pozastavena kvůli překročení maximálního množství inzulínu za hodinu
+ Pumpa je pozastavena kvůli překročení maximálního množství inzulínu za den
+ Patch není aktivován
+ Načtení uživatelského nastavení do pumpy selhalo!
+
+ Stav BLE
+ Naposledy připojeno
+ Stav pumpy
+ Aktivní alarmy
+ %.2f U
+ %.2f V
+ Typ bazálu
+ Bazální dávka
+ %.2f U/h
+ Typ pumpy
+ Verze FW
+ Č. patche
+ Patch vyprší
+ Obnovit
+ Resetovat alarmy
+ Vyměnit patch
+ Vyžádáno uživatelem
+ Nepovoleno
+
+ Žádný
+ Téměř vybitá baterie pumpy
+ Téměř prázdný zásobník pumpy
+ Pumpa brzy vyprší
+ Smyčka pozastavena nízká glykémie
+ Smyčka pozastavena nízká glykémie 2
+ Automatické pozastavení
+ Pozastavení z důvodu hodinového překročení
+ Pozastavení z důvodu denního překročení
+ Pozastaveno
+ Pozastaveno
+ Okluze
+ Expirováno
+ Prázdný zásobník
+ Chyba Patche
+ Chyba Patche 2
+ Chyba základny
+ Vybitá baterie
+ Žádná kalibrace
+ Nepodařilo se aktualizovat časové pásmo pumpy, odložit zprávu a aktualizovat ručně.
+
+ Opakovat
+ Další
+ Zahodit
+ Aktivovat Patch
+ Připojit a naplnit
+ Naplnit
+ Plnění
+ Plnění dokončeno
+ Připojit Patch
+ Aktivuji...
+ Aktivace dokončena
+ Deaktivovat Patch
+ Deaktivace...
+ Patch deaktivován
+ Aktivace probíhá
+ Neočekávaný stav: %1$s
+ Nebyl vybrán žádný profil. Vyberte prosím profil a zkuste to znovu.
+ Sériové číslo pumpy: %1$X
+ Žádný aktivní Patch. Stiskněte Další pro zahájení aktivačního procesu.
+ Základna by neměla být připojena ke kanyle až do dalšího kroku!
+ Připojte základnu k nové kanyle, odstraňte zbývající vzduch a doplňte inzulinem, poté stiskněte tlačítko Další.
+ Poznámka: Pro aktivaci je nutné nejméně 70 jednotek.
+ Prozatím nepřipojujte Patch k tělu.
+ Stiskněte tlačítko jehly do poloviny. Potom klepněte na Další pro spuštění plnění.
+ Počkejte prosím na dokončení plnění.
+ Nepodařilo se provést plnění, zkuste to znovu stisknutím tlačítka Opakovat.
+ Stiskněte Další pro pokračování.
+ Stiskněte Další pro spuštění aktivace.
+ Odstraňte bezpečnostní zámek. Připojte pumpu k tělu. Stiskněte tlačítko jehly.
+ Odstraňte bezpečnostní zámek. Připojte pumpu k tělu. Stiskněte tlačítko jehly.
+ Aktivace Pacthe a nastavení počátečního bazálu. Počkejte prosím.
+ Chyba při aktivaci, stiskněte Opakovat pro nový pokus.
+ Nový Patch aktivován. Zbývá %.2f jednotek.
+ Stiskněte OK pro návrat na hlavní obrazovku.
+ Opravdu chcete deaktivovat současný Patch?
+ Jste si jistý, že chcete zrušit aktivaci?
+ Jste si jisti? Tuto akci nelze vrátit zpět!!
+ Stiskněte Další pro deaktivaci nebo Zrušit pro návrat na hlavní obrazovku.
+ Deaktivace Patche. Počkejte prosím.
+ Nepodařilo se deaktivovat, stiskněte Zahodit pro zapomenutí Patche.
+ Zatížení jehly. Odstraňte Patch z těla.
+ Odstraňte základnu a vhodně zlikvidujte použitou kanylu.
+ Stiskněte OK pro návrat na hlavní obrazovku. Stiskněte Další pro zahájení aktivace nového Patche.
+ Jejda! Něco se pokazilo, zdá se, že již probíhá aktivace.
+ Stiskněte Další pro obnovení aktivace nebo Zahodit pro resetování stavu aktivace.
+ Počkejte prosím, čtení stavu aktivace z Patche.
+
+ Sériové číslo
+ Zadejte sériové číslo základny Patche.
+ Nastavení alarmů
+ Vyberte preferované nastavení alarmů.
+ Vypršení platnosti Patche
+ Pokud je povoleno, Patch vyprší po 3 dnech s maximální dobou odkladu 8 hodin.
+ Hodinové maximum inzulínu
+ Zadejte maximální povolený počet jednotek inzulínu za hodinu. Pokud je překročeno, pumpa bude pozastavena.
+ Denní maximální inzulín
+ Zadejte maximální povolené množství inzulínu za den. Pokud je překročeno, pumpa bude pozastavena.
+
+ Čekání na konec bolusu. Zbývá %1$d sek.
+ Nahrávám stav pumpy
+ Nahrávám stav bolusu
+ Nahrávám stav dočasného bazálu
+ Nastavení uživatelských voleb
+
diff --git a/pump/medtrum/src/main/res/values-da-rDK/arrays.xml b/pump/medtrum/src/main/res/values-da-rDK/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-da-rDK/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-da-rDK/strings.xml b/pump/medtrum/src/main/res/values-da-rDK/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-da-rDK/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-de-rDE/arrays.xml b/pump/medtrum/src/main/res/values-de-rDE/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-de-rDE/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-de-rDE/strings.xml b/pump/medtrum/src/main/res/values-de-rDE/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-de-rDE/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-el-rGR/arrays.xml b/pump/medtrum/src/main/res/values-el-rGR/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-el-rGR/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-el-rGR/strings.xml b/pump/medtrum/src/main/res/values-el-rGR/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-el-rGR/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-es-rES/arrays.xml b/pump/medtrum/src/main/res/values-es-rES/arrays.xml
new file mode 100644
index 0000000000..fb234690b1
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-es-rES/arrays.xml
@@ -0,0 +1,13 @@
+
+
+
+ - Luz, vibración y pitido
+ - Luz y vibración
+ - Luz y pitido
+ - Luz
+ - Vibración y pitido
+ - Vibración
+ - Pitido
+ - Silencio
+
+
diff --git a/pump/medtrum/src/main/res/values-es-rES/strings.xml b/pump/medtrum/src/main/res/values-es-rES/strings.xml
new file mode 100644
index 0000000000..0358cd08c9
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-es-rES/strings.xml
@@ -0,0 +1,119 @@
+
+
+
+ Medtrum
+ MT
+ Integración de bombas de insulina Medtrum Nano
+ Ajustes de bomba Medtrum
+ Error de bomba: %1$s !!
+ Bomba no probada: %1$d! Por favor, contacta con nosotros en Discord o GitHub para obtener soporte
+ Bomba suspendida
+ Bomba suspendida por superarse el máximo de insulina por hora
+ Bomba suspendida por superar el máximo diario de insulina
+ Parche no activado
+ Error al configurar los ajustes del usuario en la bomba
+
+ Estado BLE
+ Última conexión
+ Estado de la bomba
+ Alarmas activas
+ %.2f U
+ %.2f V
+ Tipo de basal
+ Tasa basal
+ %.2f U/h
+ Tipo de bomba
+ Versión de firmware
+ Parche sin etiqueta
+ El parche expira
+ Actualizar
+ Restablecer alarmas
+ Cambiar parche
+ Solicitado por el usuario
+ No habilitado
+
+ Ninguno
+ Batería baja de la bomba
+ Reservorio bajo en la bomba
+ El parche caduca pronto
+ Suspensión por glucosa baja
+ Suspensión por glucosa baja 2
+ Auto suspendido
+ suspensión por máximo por hora
+ suspensión por máximo por día
+ Suspendido
+ Pausado
+ Oclusión
+ Expirado
+ Reservorio vacío
+ Fallo del parche
+ Falta del parche 2
+ Fallo de base
+ Batería agotada
+ Sin calibración
+ Error al actualizar la zona horaria de la bomba, posponer zumbido y actualizar manualmente.
+
+ Reintentar
+ Siguiente
+ Descartar
+ Activar parche
+ Conectar y llenar
+ Purgar
+ Purgando
+ Purgado completado
+ Colocar parche
+ Activando...
+ Activación completa
+ Desactivar parche
+ Desactivando...
+ Parche desactivado
+ Activación en progreso
+ Estado inesperado: %1$s
+ No se ha seleccionado ningún perfil. Seleccione un perfil e inténtelo de nuevo.
+ Número de serie de base de la bomba: %1$X
+ No hay ningún parche activo. Presiona Siguiente para iniciar el proceso de activación.
+ ¡La base de la bomba no debe conectarse al parche hasta el siguiente paso!
+ Conecta la base de la bomba a un nuevo parche, elimina el aire residual y rellena con insulina. Después pulsa Siguiente.
+ Nota: Se necesitan un mínimo de 70 unidades para la actvación.
+ No pegues todavía el parche al cuerpo.
+ Pulsa el botón de la aguja hasta la mitad. A continuación, pulsa Siguiente para iniciar el purgado.
+ Espera a que finalice el cebado.
+ No se ha podido purgar, pulsa Reintentar para volver a intentarlo.
+ Presiona Siguiente para continuar.
+ Presiona Siguiente para comenzar la activación.
+ Retira el cierre de seguridad. Acopla la bomba al cuerpo. Pulsa el botón de la aguja.
+ Retira el cierre de seguridad. Acopla la bomba al cuerpo. Pulsa el botón de la aguja.
+ Activando la bomba y ajustando la tasa basal inicial. Espera por favor.
+ Fallo al activar, pulsa Reintentar para volver a intenetarlo.
+ Nuevo parche activado %.2f Unidades restantes.
+ Presiona OK para volver a la pantalla principal.
+ ¿Estás seguro de que quieres desactivar el parche actual?
+ ¿Estás seguro de que quieres cancelar la activación?
+ ¿Estás seguro? ¡¡Esta acción no se puede revertir!!
+ Presiona Siguiente para desactivar o Cancelar para volver a la pantalla principal.
+ Desactivando parche. Espere, por favor.
+ Fallo al desactivar, presiona Descartar para olvidar el parche.
+ Retira la aguja. Retira el parche del cuerpo.
+ Retira la base de bomba y desecha el parche usado de forma adecuada.
+ Presiona OK para volver a la pantalla principal. Presiona Siguiente para iniciar la activación de un nuevo parche.
+ ¡Ups! Algo ha ido mal, parece que hay una activación en curso.
+ Presiona Siguiente para reanudar la activación o Descartar para restablecer el estado de activación.
+ Por favor, espera, leyendo el estado de activación de la bomba.
+
+ Número de serie
+ Introduce el número de serie de la base de la bomba.
+ Ajustes de las alarmas
+ Selecciona los ajustes de la alarma de la bomba que prefieras.
+ Caducidad del parche
+ Cuando está activado, el parche caducará a los 3 días, con un periodo de gracia de 8 horas adicionales
+ Insulina máxima por hora
+ Especificar las unidades máximas de insulina permitidas por hora. Si se supera, la bomba se suspenderá.
+ Insulina máxima diaria
+ Especificar las unidades máximas de insulina permitidas por día. Si se superan, la bomba se suspenderá.
+
+ Esperando el fin del bolo. Quedan %1$d seg.
+ Obteniendo el estado de la bomba
+ Obteneniendo el estado del bolo
+ Obteniendo el estado de la basal temporal
+ Configurar las opciones del usuario
+
diff --git a/pump/medtrum/src/main/res/values-fr-rFR/arrays.xml b/pump/medtrum/src/main/res/values-fr-rFR/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-fr-rFR/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-fr-rFR/strings.xml b/pump/medtrum/src/main/res/values-fr-rFR/strings.xml
new file mode 100644
index 0000000000..8830648bd7
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-fr-rFR/strings.xml
@@ -0,0 +1,119 @@
+
+
+
+ Medtrum
+ MT
+ Intégration de pompe pour Medtrum Nano
+ Paramètres de la pompe Medtrum
+ Erreur pompe: %1$s!!
+ Pompe non testée : %1$d! Veuillez nous contacter sur discord ou github pour obtenir de l\'aide
+ La pompe est suspendue
+ La pompe est suspendue, la quantité maximum d\'insuline par heure est dépassée
+ La pompe est suspendue, la quantité maximum d\'insuline par jour est dépassée
+ Patch non activé
+ La configuration des paramètres de la pompe a échoué!
+
+ État BT
+ Dernière connexion
+ État de la pompe
+ Alarmes actives
+ %.2f U
+ %.2f V
+ Type de Basale
+ Débit de Basal
+ %.2f U/h
+ Type de pompe
+ Version du FW
+ N° du Patch
+ Expiration du Patch
+ Actualiser
+ Réinitialiser les alarmes
+ Changer le Patch
+ Demandé par l\'utilisateur
+ Non activé
+
+ Aucun
+ Batterie de la pompe faible
+ Réservoir bas
+ La pompe expire bientôt
+ Arrêt Glycémie Basse
+ Arrêt Glycémie Basse 2
+ Suspension auto
+ suspension max horaire
+ suspension max journalier
+ Suspendu
+ En pause
+ Occlusion
+ Expiré
+ Réservoir vide
+ Défaut Patch
+ Défaut Patch 2
+ Défaillance de la base
+ Pile morte
+ Absence d\'étalonnage
+ Impossible de mettre à jour le fuseau horaire de la pompe, mettre en veille le message et rafraîchir manuellement.
+
+ Réessayer
+ Suivant
+ Retirer
+ Activer le Patch
+ Connecter et remplir
+ Amorcer
+ Amorçage
+ Amorçage terminé
+ Fixer le Patch
+ En cours d\'activation...
+ Activation effectuée
+ Désactiver le Patch
+ Désactivation en cours...
+ Patch désactivé
+ Activation en cours
+ État inattendu : %1$s
+ Aucun profil sélectionné. Veuillez sélectionner un profil et réessayez.
+ N° de série de la base de la pompe : %1$X
+ Aucun Patch actif. Appuyez sur Suivant pour commencer le processus d\'activation.
+ La base de la pompe ne doit pas être connectée au Patch avant l\'étape suivante !
+ Connectez la base de la pompe à un nouveau Patch, retirez l\'air résiduel et remplissez avec de l\'insuline, puis appuyez sur Suivant.
+ Remarque : Un minimum de 70 unités est requis pour l\'activation.
+ Ne fixez pas encore le Patch sur le corps.
+ Appuyez à mi-course sur le bouton de l\'aiguille. Puis appuyez sur Suivant pour démarrer l\'amorçage.
+ Merci de patienter jusqu\'à la fin de l\'amorçage.
+ Échec d\'amorçage, appuyez sur Réessayez pour éssayer à nouveau.
+ Appuyez sur Suivant pour continuer.
+ Appuyez sur Suivant pour démarrer l\'activation.
+ Retirez le verrou de sécurité. Fixez la pompe au corps. Appuyez sur le bouton de l\'aiguille.
+ Retirez le verrou de sécurité. Fixez la pompe au corps. Appuyez sur le bouton de l\'aiguille.
+ Activation de la pompe et du débit de base initial. Veuillez patienter.
+ Échec de l\'activation, appuyez sur Réessayez pour éssayer à nouveau.
+ Nouveau Patch activé. %.2f Unités restantes.
+ Appuyez sur OK pour revenir à l\'écran principal.
+ Êtes-vous sûr de vouloir désactiver le Patch actuel ?
+ Êtes-vous sûr de vouloir annuler l\'activation?
+ Êtes-vous certain ? Cette action est irréversible!!
+ Appuyez sur Suivant pour désactiver ou Annuler pour revenir à l\'écran principal.
+ Désactivation du Patch. Veuillez patienter.
+ Échec de la désactivation, appuyez sur Supprimer pour oublier le Patch.
+ Retirer l\'aiguille. Retirer le Patch du corps.
+ Retirez la base de la pompe et jetez le Patch utilisé de façon appropriée.
+ Appuyez sur OK pour revenir à l\'écran principal. Appuyez sur Suivant pour démarrer l\'activation du nouveau Patch.
+ Oups ! Quelque chose s\'est mal passé, il semble qu\'il y ait déjà une activation en cours.
+ Appuyez sur Suivant pour reprendre l\'activation ou Supprimer pour réinitialiser l\'état d\'activation.
+ Veuillez patienter, lecture de l\'état d\'activation de la pompe.
+
+ Numéro de série
+ Entrez le numéro de série de la base de votre pompe.
+ Paramètres d\'Alarme
+ Sélectionnez vos préférences d’alarme de votre pompe.
+ Expiration du Patch
+ Lorsqu\'il est activé, le Patch expirera après 3 jours, avec un délai de grâce de 8 heures au-delà.
+ Insuline maximale horaire
+ Spécifiez le nombre maximum d\'unités d\'insuline autorisées par heure. Si ce montant est dépassé, la pompe sera suspendue.
+ Insuline maximale quotidienne
+ Spécifiez le nombre maximum d\'unités d\'insuline autorisées par jour. Si ce montant est dépassé, la pompe sera suspendue.
+
+ Bolus en cours. %1$d sec. restantes.
+ Obtenir l\'état de la pompe
+ Obtenir l\'état du bolus
+ Obtenir l\'état du basal temporaire
+ Réglage des paramètres utilisateur
+
diff --git a/pump/medtrum/src/main/res/values-ga-rIE/arrays.xml b/pump/medtrum/src/main/res/values-ga-rIE/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-ga-rIE/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-ga-rIE/strings.xml b/pump/medtrum/src/main/res/values-ga-rIE/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-ga-rIE/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-hr-rHR/arrays.xml b/pump/medtrum/src/main/res/values-hr-rHR/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-hr-rHR/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-hr-rHR/strings.xml b/pump/medtrum/src/main/res/values-hr-rHR/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-hr-rHR/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-hu-rHU/arrays.xml b/pump/medtrum/src/main/res/values-hu-rHU/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-hu-rHU/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-hu-rHU/strings.xml b/pump/medtrum/src/main/res/values-hu-rHU/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-hu-rHU/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-it-rIT/arrays.xml b/pump/medtrum/src/main/res/values-it-rIT/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-it-rIT/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-it-rIT/strings.xml b/pump/medtrum/src/main/res/values-it-rIT/strings.xml
new file mode 100644
index 0000000000..492785a918
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-it-rIT/strings.xml
@@ -0,0 +1,32 @@
+
+
+
+ Medtrum
+ MT
+ Errore micro: %1$s!!
+ Il micro è sospeso
+
+ Stato BLE
+ Ultima connessione
+ Stato micro
+ %.2f U
+ Tipo basale
+ Velocità basale
+ %.2f U/h
+ Tipo micro
+ Aggiorna
+ Non abilitato
+
+ Nessuno
+ Sospeso
+ In pausa
+ Occlusione
+ Scaduto
+ Serbatoio vuoto
+
+
+ Numero seriale
+ Impostazioni allarmi
+ Scadenza patch
+
+
diff --git a/pump/medtrum/src/main/res/values-iw-rIL/arrays.xml b/pump/medtrum/src/main/res/values-iw-rIL/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-iw-rIL/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-iw-rIL/strings.xml b/pump/medtrum/src/main/res/values-iw-rIL/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-iw-rIL/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-ja-rJP/arrays.xml b/pump/medtrum/src/main/res/values-ja-rJP/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-ja-rJP/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-ja-rJP/strings.xml b/pump/medtrum/src/main/res/values-ja-rJP/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-ja-rJP/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-ko-rKR/arrays.xml b/pump/medtrum/src/main/res/values-ko-rKR/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-ko-rKR/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-ko-rKR/strings.xml b/pump/medtrum/src/main/res/values-ko-rKR/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-ko-rKR/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-lt-rLT/arrays.xml b/pump/medtrum/src/main/res/values-lt-rLT/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-lt-rLT/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-lt-rLT/strings.xml b/pump/medtrum/src/main/res/values-lt-rLT/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-lt-rLT/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-nl-rNL/arrays.xml b/pump/medtrum/src/main/res/values-nl-rNL/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-nl-rNL/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-nl-rNL/strings.xml b/pump/medtrum/src/main/res/values-nl-rNL/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-nl-rNL/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-no-rNO/arrays.xml b/pump/medtrum/src/main/res/values-no-rNO/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-no-rNO/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-no-rNO/strings.xml b/pump/medtrum/src/main/res/values-no-rNO/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-no-rNO/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-pl-rPL/arrays.xml b/pump/medtrum/src/main/res/values-pl-rPL/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-pl-rPL/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-pl-rPL/strings.xml b/pump/medtrum/src/main/res/values-pl-rPL/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-pl-rPL/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-pt-rBR/arrays.xml b/pump/medtrum/src/main/res/values-pt-rBR/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-pt-rBR/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-pt-rBR/strings.xml b/pump/medtrum/src/main/res/values-pt-rBR/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-pt-rBR/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-pt-rPT/arrays.xml b/pump/medtrum/src/main/res/values-pt-rPT/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-pt-rPT/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-pt-rPT/strings.xml b/pump/medtrum/src/main/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-pt-rPT/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-ro-rRO/arrays.xml b/pump/medtrum/src/main/res/values-ro-rRO/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-ro-rRO/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-ro-rRO/strings.xml b/pump/medtrum/src/main/res/values-ro-rRO/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-ro-rRO/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-ru-rRU/arrays.xml b/pump/medtrum/src/main/res/values-ru-rRU/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-ru-rRU/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-ru-rRU/strings.xml b/pump/medtrum/src/main/res/values-ru-rRU/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-ru-rRU/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-sk-rSK/arrays.xml b/pump/medtrum/src/main/res/values-sk-rSK/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-sk-rSK/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-sk-rSK/strings.xml b/pump/medtrum/src/main/res/values-sk-rSK/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-sk-rSK/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-sr-rCS/arrays.xml b/pump/medtrum/src/main/res/values-sr-rCS/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-sr-rCS/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-sr-rCS/strings.xml b/pump/medtrum/src/main/res/values-sr-rCS/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-sr-rCS/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-sv-rSE/arrays.xml b/pump/medtrum/src/main/res/values-sv-rSE/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-sv-rSE/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-sv-rSE/strings.xml b/pump/medtrum/src/main/res/values-sv-rSE/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-sv-rSE/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-tr-rTR/arrays.xml b/pump/medtrum/src/main/res/values-tr-rTR/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-tr-rTR/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-tr-rTR/strings.xml b/pump/medtrum/src/main/res/values-tr-rTR/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-tr-rTR/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values-zh-rCN/arrays.xml b/pump/medtrum/src/main/res/values-zh-rCN/arrays.xml
new file mode 100644
index 0000000000..3ea04e700d
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-zh-rCN/arrays.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/pump/medtrum/src/main/res/values-zh-rCN/strings.xml b/pump/medtrum/src/main/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000000..36c8a820fe
--- /dev/null
+++ b/pump/medtrum/src/main/res/values-zh-rCN/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/pump/medtrum/src/main/res/values/strings.xml b/pump/medtrum/src/main/res/values/strings.xml
index 575782c9eb..361b32dbdd 100644
--- a/pump/medtrum/src/main/res/values/strings.xml
+++ b/pump/medtrum/src/main/res/values/strings.xml
@@ -6,8 +6,8 @@
patch_expiration
hourly_max_insulin
daily_max_insulin
-
- medtrumpump_settings
+
+ medtrum_pump_setting
pump_state
active_alarms
last_connection
@@ -26,7 +26,7 @@
Medtrum
MT
Pump integration for Medtrum Nano
- Medtrum pump settings
+ Medtrum pump settings
Pump error: %1$s !!
Pump untested: %1$d! Please contact us at discord or github for support
Pump is suspended
@@ -34,14 +34,14 @@
Pump is suspended due to daily max insulin exceeded
Patch not activated
Setting user settings to pump failed!
-
+
BLE Status
Last connected
Pump state
Active alarms
%.2f U
- %.2f V
+ %.2f V
Basal type
Basal rate
%.2f U/h
@@ -60,11 +60,11 @@
Pump low battery
Pump low reservoir
Pump expires soon
- Low BG suspended
- Low BG suspended 2
+ Low BG suspended
+ Low BG suspended 2
Auto suspended
- hourly max suspended
- daily max suspended
+ hourly max suspended
+ daily max suspended
Suspended
Paused
Occlusion
@@ -101,16 +101,15 @@
No active patch. Press Next to begin the activation process.
Pump base should not be connected to the patch until the next step!
Connect pump base to a new patch, remove the residual air and fill with insulin, then press Next.
- Note: A minimum of 70 units is required for actvation.
+ Note: A minimum of 70 units is required for activation.
Do not attach the patch to the body yet.
Half-press needle button. Then tap Next to start prime.
Please wait for the priming to complete.
Failed to prime, press Retry to try again.
Press Next to continue.
Press Next to start activation.
- Remove the safety lock. Attach the pump to the body. Press the needle button.
Remove the safety lock. Attach the pump to the body. Press the needle button.
- Activating pump and settng initial basal rate. Please Wait.
+ Activating pump and setting initial basal rate. Please Wait.
Failed to activate, press Retry to try again.
New patch activated. %.2f Units remaining.
Press OK to return to main screen.
@@ -142,10 +141,9 @@
Specify the maximum units of insulin allowed per day. If exceeded, the pump will suspend.
- Waiting for bolus end. Remaining %1$d sec.
- Getting pump status
- Getting bolus status
- Getting temporary basal status
- Setting user options
+ Getting pump status
+ Getting bolus status
+ Getting temporary basal status
+ Setting user options
diff --git a/pump/medtrum/src/main/res/xml/pref_medtrum_pump.xml b/pump/medtrum/src/main/res/xml/pref_medtrum_pump.xml
index 7d58491568..64081101e5 100644
--- a/pump/medtrum/src/main/res/xml/pref_medtrum_pump.xml
+++ b/pump/medtrum/src/main/res/xml/pref_medtrum_pump.xml
@@ -3,8 +3,8 @@
xmlns:validate="http://schemas.android.com/apk/res-auto">
-
+
diff --git a/pump/pump-common/src/main/java/info/nightscout/pump/common/ui/PumpBLEConfigActivity.kt b/pump/pump-common/src/main/java/info/nightscout/pump/common/ui/PumpBLEConfigActivity.kt
index 68c6f30eed..42928f570f 100644
--- a/pump/pump-common/src/main/java/info/nightscout/pump/common/ui/PumpBLEConfigActivity.kt
+++ b/pump/pump-common/src/main/java/info/nightscout/pump/common/ui/PumpBLEConfigActivity.kt
@@ -13,6 +13,8 @@ import android.content.Context
import android.os.Bundle
import android.os.Handler
import android.os.HandlerThread
+import android.view.Menu
+import android.view.MenuInflater
import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
@@ -20,6 +22,7 @@ import android.widget.AdapterView
import android.widget.AdapterView.OnItemClickListener
import android.widget.BaseAdapter
import android.widget.TextView
+import androidx.core.view.MenuProvider
import info.nightscout.core.ui.activities.TranslatedDaggerAppCompatActivity
import info.nightscout.core.ui.dialogs.OKDialog
import info.nightscout.interfaces.plugin.ActivePlugin
@@ -140,6 +143,21 @@ class PumpBLEConfigActivity : TranslatedDaggerAppCompatActivity() {
updateCurrentlySelectedBTDevice()
})
}
+
+ // Add menu items without overriding methods in the Activity
+ addMenuProvider(object : MenuProvider {
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {}
+
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean =
+ when (menuItem.itemId) {
+ android.R.id.home -> {
+ onBackPressedDispatcher.onBackPressed()
+ true
+ }
+
+ else -> false
+ }
+ })
}
private fun updateCurrentlySelectedBTDevice() {
@@ -156,16 +174,6 @@ class PumpBLEConfigActivity : TranslatedDaggerAppCompatActivity() {
}
}
- override fun onOptionsItemSelected(item: MenuItem): Boolean =
- when (item.itemId) {
- android.R.id.home -> {
- finish()
- true
- }
-
- else -> super.onOptionsItemSelected(item)
- }
-
override fun onResume() {
super.onResume()
bleSelector.onResume()
diff --git a/pump/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/dialog/RileyLinkBLEConfigActivity.kt b/pump/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/dialog/RileyLinkBLEConfigActivity.kt
index a9d0e976b3..da05125412 100644
--- a/pump/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/dialog/RileyLinkBLEConfigActivity.kt
+++ b/pump/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/dialog/RileyLinkBLEConfigActivity.kt
@@ -17,6 +17,8 @@ import android.os.Bundle
import android.os.Handler
import android.os.HandlerThread
import android.os.ParcelUuid
+import android.view.Menu
+import android.view.MenuInflater
import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
@@ -26,6 +28,7 @@ import android.widget.BaseAdapter
import android.widget.TextView
import android.widget.Toast
import androidx.core.app.ActivityCompat
+import androidx.core.view.MenuProvider
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.R
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.RileyLinkConst
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.RileyLinkUtil
@@ -118,6 +121,21 @@ class RileyLinkBLEConfigActivity : TranslatedDaggerAppCompatActivity() {
updateCurrentlySelectedRileyLink()
})
}
+
+ // Add menu items without overriding methods in the Activity
+ addMenuProvider(object : MenuProvider {
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {}
+
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean =
+ when (menuItem.itemId) {
+ android.R.id.home -> {
+ onBackPressedDispatcher.onBackPressed()
+ true
+ }
+
+ else -> false
+ }
+ })
}
private fun updateCurrentlySelectedRileyLink() {
@@ -148,16 +166,6 @@ class RileyLinkBLEConfigActivity : TranslatedDaggerAppCompatActivity() {
}
}
- override fun onOptionsItemSelected(item: MenuItem): Boolean =
- when (item.itemId) {
- android.R.id.home -> {
- finish()
- true
- }
-
- else -> super.onOptionsItemSelected(item)
- }
-
private fun prepareForScanning() {
val checkOK = blePreCheck.prerequisitesCheck(this)
if (checkOK) {
diff --git a/ui/src/main/java/info/nightscout/ui/activities/TreatmentsActivity.kt b/ui/src/main/java/info/nightscout/ui/activities/TreatmentsActivity.kt
index f53797d513..ee79248e3f 100644
--- a/ui/src/main/java/info/nightscout/ui/activities/TreatmentsActivity.kt
+++ b/ui/src/main/java/info/nightscout/ui/activities/TreatmentsActivity.kt
@@ -1,7 +1,10 @@
package info.nightscout.ui.activities
import android.os.Bundle
+import android.view.Menu
+import android.view.MenuInflater
import android.view.MenuItem
+import androidx.core.view.MenuProvider
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentTransaction
import com.google.android.material.tabs.TabLayout
@@ -61,23 +64,26 @@ class TreatmentsActivity : TranslatedDaggerAppCompatActivity() {
override fun onTabUnselected(tab: TabLayout.Tab) {}
override fun onTabReselected(tab: TabLayout.Tab) {}
})
+
+ addMenuProvider(object : MenuProvider {
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {}
+
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean =
+ when (menuItem.itemId) {
+ android.R.id.home -> {
+ onBackPressedDispatcher.onBackPressed()
+ true
+ }
+
+ else -> false
+ }
+ })
}
- override fun onOptionsItemSelected(item: MenuItem): Boolean =
- when (item.itemId) {
- android.R.id.home -> {
- finish()
- true
- }
-
- else -> super.onOptionsItemSelected(item)
- }
-
private fun setFragment(selectedFragment: Fragment) {
supportFragmentManager.beginTransaction()
.replace(R.id.fragment_container, selectedFragment)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
.commit()
}
-
}
\ No newline at end of file
diff --git a/wear/src/main/res/values-cs-rCZ/strings.xml b/wear/src/main/res/values-cs-rCZ/strings.xml
index 47c3a2d2ea..1e88264e5d 100644
--- a/wear/src/main/res/values-cs-rCZ/strings.xml
+++ b/wear/src/main/res/values-cs-rCZ/strings.xml
@@ -11,6 +11,7 @@
AAPS(Kokpit)
AAPS (Steampunk)
AAPS (DigitalStyle)
+ AAPS (vlastní)
AAPS(Akce)
AAPS(Doč. cíl)
AAPS(Rychlý bolus)
@@ -143,6 +144,7 @@
Zobrazit pouze čas a glykémii
Vibrovat každou hodinu
Zobrazit číslo týdne
+ Zobrazovat sekundy
Váš styl:
bez stylu
minimalistický styl
diff --git a/wear/src/main/res/values-es-rES/strings.xml b/wear/src/main/res/values-es-rES/strings.xml
index f39923de34..8437dddeed 100644
--- a/wear/src/main/res/values-es-rES/strings.xml
+++ b/wear/src/main/res/values-es-rES/strings.xml
@@ -72,7 +72,7 @@
Tratamiento
Trata
Bolo
- Carbohidratos
+ Carbos
eCarbs
Configuración
Estado
diff --git a/wear/src/main/res/values-ru-rRU/strings.xml b/wear/src/main/res/values-ru-rRU/strings.xml
index db94f8ded6..9414b826d7 100644
--- a/wear/src/main/res/values-ru-rRU/strings.xml
+++ b/wear/src/main/res/values-ru-rRU/strings.xml
@@ -184,7 +184,7 @@
000г
00,0
0,00 ед
- Отложить оповещения AAPS
+ Оповещение о переходе AAPS в режим энергосбережения
Отправка команды отложить оповещения AAPS
ч
н