diff --git a/app/build.gradle b/app/build.gradle
index eef64b9eed..c006866147 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -283,8 +283,6 @@ dependencies {
implementation "com.jjoe64:graphview:4.0.1"
implementation "com.joanzapata.iconify:android-iconify-fontawesome:2.2.2"
implementation 'com.madgag.spongycastle:core:1.58.0.0'
- // Omnipod wizard
- implementation(name: "com.atech-software.android.library.wizardpager-1.1.4", ext: "aar")
implementation("com.google.android:flexbox:0.3.0") {
exclude group: "com.android.support"
}
diff --git a/app/libs/com.atech-software.android.library.wizardpager-1.1.4.aar b/app/libs/com.atech-software.android.library.wizardpager-1.1.4.aar
deleted file mode 100644
index af0c6511cf..0000000000
Binary files a/app/libs/com.atech-software.android.library.wizardpager-1.1.4.aar and /dev/null differ
diff --git a/app/src/main/java/info/nightscout/androidaps/dependencyInjection/FragmentsModule.kt b/app/src/main/java/info/nightscout/androidaps/dependencyInjection/FragmentsModule.kt
index 80eef197bc..42dd3e2972 100644
--- a/app/src/main/java/info/nightscout/androidaps/dependencyInjection/FragmentsModule.kt
+++ b/app/src/main/java/info/nightscout/androidaps/dependencyInjection/FragmentsModule.kt
@@ -36,7 +36,7 @@ import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.dialog.RileyL
import info.nightscout.androidaps.plugins.pump.insight.LocalInsightFragment
import info.nightscout.androidaps.plugins.pump.medtronic.MedtronicFragment
import info.nightscout.androidaps.plugins.pump.medtronic.dialog.RileyLinkStatusDeviceMedtronic
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.OmnipodFragment
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.OmnipodOverviewFragment
import info.nightscout.androidaps.plugins.pump.virtual.VirtualPumpFragment
import info.nightscout.androidaps.plugins.source.BGSourceFragment
import info.nightscout.androidaps.plugins.treatments.TreatmentsFragment
@@ -68,7 +68,7 @@ abstract class FragmentsModule {
@ContributesAndroidInjector abstract fun contributesLoopFragment(): LoopFragment
@ContributesAndroidInjector abstract fun contributesMaintenanceFragment(): MaintenanceFragment
@ContributesAndroidInjector abstract fun contributesMedtronicFragment(): MedtronicFragment
- @ContributesAndroidInjector abstract fun contributesOmnipodFragment(): OmnipodFragment
+ @ContributesAndroidInjector abstract fun contributesOmnipodFragment(): OmnipodOverviewFragment
@ContributesAndroidInjector abstract fun contributesNSProfileFragment(): NSProfileFragment
@ContributesAndroidInjector abstract fun contributesNSClientFragment(): NSClientFragment
@ContributesAndroidInjector
diff --git a/app/src/main/java/info/nightscout/androidaps/setupwizard/SWDefinition.kt b/app/src/main/java/info/nightscout/androidaps/setupwizard/SWDefinition.kt
index 6c47f2c3d1..76e5057654 100644
--- a/app/src/main/java/info/nightscout/androidaps/setupwizard/SWDefinition.kt
+++ b/app/src/main/java/info/nightscout/androidaps/setupwizard/SWDefinition.kt
@@ -12,7 +12,11 @@ import info.nightscout.androidaps.activities.PreferencesActivity
import info.nightscout.androidaps.dialogs.ProfileSwitchDialog
import info.nightscout.androidaps.events.EventConfigBuilderChange
import info.nightscout.androidaps.events.EventPumpStatusChanged
-import info.nightscout.androidaps.interfaces.*
+import info.nightscout.androidaps.interfaces.ActivePluginProvider
+import info.nightscout.androidaps.interfaces.CommandQueueProvider
+import info.nightscout.androidaps.interfaces.PluginBase
+import info.nightscout.androidaps.interfaces.PluginType
+import info.nightscout.androidaps.interfaces.ProfileFunction
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin
@@ -27,6 +31,7 @@ import info.nightscout.androidaps.plugins.profile.local.LocalProfilePlugin
import info.nightscout.androidaps.plugins.profile.ns.NSProfileFragment
import info.nightscout.androidaps.plugins.profile.ns.NSProfilePlugin
import info.nightscout.androidaps.plugins.pump.omnipod.OmnipodPumpPlugin
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.ChangePodWizardActivity
import info.nightscout.androidaps.setupwizard.elements.*
import info.nightscout.androidaps.setupwizard.events.EventSWUpdate
import info.nightscout.androidaps.utils.AndroidPermission
@@ -299,18 +304,6 @@ class SWDefinition @Inject constructor(
.option(PluginType.PUMP, R.string.configbuilder_pump_description)
.label(R.string.configbuilder_pump))
.add(SWBreak(injector))
- .add(SWInfotext(injector)
- .label(R.string.setupwizard_pump_pump_not_initialized)
- .visibility(SWValidator { !isPumpInitialized(activePlugin.activePump) }))
- // BEGIN OMNIPOD
- .add(SWInfotext(injector)
- .label(R.string.setupwizard_pump_waiting_for_riley_link_connection)
- .visibility(SWValidator {
- val activePump = activePlugin.activePump
- activePump is OmnipodPumpPlugin && !activePump.isRileyLinkReady
- }))
- // TODO after refactoring Pod (de)activation Wizards, start init Pod activity from here
- // END OMNIPOD
.add(SWButton(injector)
.text(R.string.pumpsetup)
.action(Runnable {
@@ -322,6 +315,35 @@ class SWDefinition @Inject constructor(
}, null)
})
.visibility(SWValidator { (activePlugin.activePump as PluginBase).preferencesId > 0 }))
+ .add(SWInfotext(injector)
+ .label(R.string.setupwizard_pump_pump_not_initialized)
+ .visibility(SWValidator { !activePlugin.activePump.isInitialized }))
+ // BEGIN OMNIPOD
+ .add(SWInfotext(injector)
+ .label(R.string.setupwizard_pump_waiting_for_riley_link_connection)
+ .visibility(SWValidator {
+ val activePump = activePlugin.activePump
+ activePump is OmnipodPumpPlugin && !activePump.isRileyLinkReady
+ }))
+ .add(SWInfotext(injector)
+ .label(R.string.setupwizard_pump_waiting_for_pod_change)
+ .visibility(SWValidator {
+ val activePump = activePlugin.activePump
+ activePump is OmnipodPumpPlugin && activePump.isRileyLinkReady && !activePump.isInitialized
+ }))
+ .add(SWButton(injector)
+ .text(R.string.setupwizard_pump_omnipod_change_pod)
+ .action(Runnable {
+ protectionCheck.queryProtection(activity, ProtectionCheck.Protection.PREFERENCES, Runnable {
+ val i = Intent(activity, ChangePodWizardActivity::class.java)
+ activity.startActivity(i)
+ }, null)
+ })
+ .visibility(SWValidator {
+ val activePump = activePlugin.activePump
+ activePump is OmnipodPumpPlugin && activePump.isRileyLinkReady && !activePump.isInitialized
+ }))
+ // END OMNIPOD
.add(SWButton(injector)
.text(R.string.readstatus)
.action(Runnable { commandQueue.readStatus("Clicked connect to pump", null) })
@@ -329,13 +351,9 @@ class SWDefinition @Inject constructor(
.add(SWEventListener(injector, EventPumpStatusChanged::class.java))
.validator(SWValidator {
val activePump = activePlugin.activePump
- isPumpInitialized(activePump)
+ activePump.isInitialized
})
- private fun isPumpInitialized(activePump: PumpInterface) =
- activePump.isInitialized
- || (activePump is OmnipodPumpPlugin && activePump.isRileyLinkReady)
-
private val screenAps = SWScreen(injector, R.string.configbuilder_aps)
.skippable(false)
.add(SWInfotext(injector)
diff --git a/app/src/main/java/info/nightscout/androidaps/setupwizard/SetupWizardActivity.kt b/app/src/main/java/info/nightscout/androidaps/setupwizard/SetupWizardActivity.kt
index f2d763e32e..782e07f069 100644
--- a/app/src/main/java/info/nightscout/androidaps/setupwizard/SetupWizardActivity.kt
+++ b/app/src/main/java/info/nightscout/androidaps/setupwizard/SetupWizardActivity.kt
@@ -110,6 +110,7 @@ class SetupWizardActivity : NoSplashAppCompatActivity() {
updateButtons()
}) { fabricPrivacy.logException(it) }
)
+ updateButtons()
}
private fun generateLayout() {
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 696cd3b823..b76e703166 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -949,9 +949,10 @@
Configure BG sourcePlease select source of profile. If patient is a child you should use NS profile. If there is nobody following you on Nightscout you will probably prefer Local profile. Please remember that you are only selecting the profile source. To use it you must activate it by executing \"Profile switch\"Select one from availables algorithms. They are sorted from oldest to newest. Newer algorithm is usually more powerful and more aggressive. Thus if you are new looper you may probably start with AMA and not with latest one. Do not forget to read the OpenAPS documentation and configure it before use.
- Waiting for RileyLink connection\n
+ Waiting for RileyLink connection…\n
+ Waiting for Pod change…\nNote: You can continue setup once the pump has been initialized.\n
- Init Pod
+ Change PodStart your first objectivePermissionAsk for permission
diff --git a/core/src/main/java/info/nightscout/androidaps/utils/HtmlHelper.kt b/core/src/main/java/info/nightscout/androidaps/utils/HtmlHelper.kt
index dd0da3b72f..873c751e2e 100644
--- a/core/src/main/java/info/nightscout/androidaps/utils/HtmlHelper.kt
+++ b/core/src/main/java/info/nightscout/androidaps/utils/HtmlHelper.kt
@@ -1,11 +1,10 @@
package info.nightscout.androidaps.utils
-import android.os.Build
import android.text.Html
import android.text.Spanned
object HtmlHelper {
fun fromHtml(source: String): Spanned {
- return Html.fromHtml(source, Html.FROM_HTML_MODE_LEGACY)
+ return Html.fromHtml(source, Html.FROM_HTML_MODE_LEGACY)
}
}
\ No newline at end of file
diff --git a/omnipod/build.gradle b/omnipod/build.gradle
index 552e74e3c7..e520dc6323 100644
--- a/omnipod/build.gradle
+++ b/omnipod/build.gradle
@@ -91,7 +91,6 @@ dependencies {
implementation 'org.apache.commons:commons-lang3:3.10'
implementation 'net.danlew:android.joda:2.10.6'
implementation "com.google.code.gson:gson:2.8.6"
- implementation(name: "com.atech-software.android.library.wizardpager-1.1.4", ext: "aar")
implementation "com.google.dagger:dagger-android:$dagger_version"
implementation "com.google.dagger:dagger-android-support:$dagger_version"
diff --git a/omnipod/libs/com.atech-software.android.library.wizardpager-1.1.4.aar b/omnipod/libs/com.atech-software.android.library.wizardpager-1.1.4.aar
deleted file mode 100644
index af0c6511cf..0000000000
Binary files a/omnipod/libs/com.atech-software.android.library.wizardpager-1.1.4.aar and /dev/null differ
diff --git a/omnipod/src/main/AndroidManifest.xml b/omnipod/src/main/AndroidManifest.xml
index 924fee176f..7da09f6d06 100644
--- a/omnipod/src/main/AndroidManifest.xml
+++ b/omnipod/src/main/AndroidManifest.xml
@@ -9,9 +9,6 @@
-
-
+
\ No newline at end of file
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/OmnipodPumpPlugin.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/OmnipodPumpPlugin.java
index f904d28b7f..1201412345 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/OmnipodPumpPlugin.java
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/OmnipodPumpPlugin.java
@@ -83,7 +83,7 @@ import info.nightscout.androidaps.plugins.pump.omnipod.queue.command.CommandUpda
import info.nightscout.androidaps.plugins.pump.omnipod.queue.command.OmnipodCustomCommand;
import info.nightscout.androidaps.plugins.pump.omnipod.queue.command.OmnipodCustomCommandType;
import info.nightscout.androidaps.plugins.pump.omnipod.rileylink.service.RileyLinkOmnipodService;
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.OmnipodFragment;
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.OmnipodOverviewFragment;
import info.nightscout.androidaps.plugins.pump.omnipod.util.AapsOmnipodUtil;
import info.nightscout.androidaps.plugins.pump.omnipod.util.OmnipodAlertUtil;
import info.nightscout.androidaps.queue.commands.CustomCommand;
@@ -169,11 +169,11 @@ public class OmnipodPumpPlugin extends PumpPluginBase implements PumpInterface,
) {
super(new PluginDescription() //
.mainType(PluginType.PUMP) //
- .fragmentClass(OmnipodFragment.class.getName()) //
+ .fragmentClass(OmnipodOverviewFragment.class.getName()) //
.pluginName(R.string.omnipod_name) //
.shortName(R.string.omnipod_name_short) //
.preferencesId(R.xml.pref_omnipod) //
- .description(R.string.description_pump_omnipod), //
+ .description(R.string.omnipod_pump_description), //
injector, aapsLogger, resourceHelper, commandQueue);
this.aapsLogger = aapsLogger;
this.rxBus = rxBus;
@@ -358,7 +358,7 @@ public class OmnipodPumpPlugin extends PumpPluginBase implements PumpInterface,
rxBus.send(new EventNewNotification(notification));
} else {
if (podStateManager.isSuspended()) {
- Notification notification = new Notification(Notification.OMNIPOD_POD_SUSPENDED, resourceHelper.gs(R.string.omnipod_pod_suspended), Notification.NORMAL);
+ Notification notification = new Notification(Notification.OMNIPOD_POD_SUSPENDED, resourceHelper.gs(R.string.omnipod_confirmation_pod_suspended), Notification.NORMAL);
rxBus.send(new EventNewNotification(notification));
}
}
@@ -729,6 +729,8 @@ public class OmnipodPumpPlugin extends PumpPluginBase implements PumpInterface,
return executeCommand(OmnipodCommandType.SUSPEND_DELIVERY, aapsOmnipodManager::suspendDelivery);
case RESUME_DELIVERY:
return executeCommand(OmnipodCommandType.RESUME_DELIVERY, () -> aapsOmnipodManager.setBasalProfile(profileFunction.getProfile(), false));
+ case DEACTIVATE_POD:
+ return executeCommand(OmnipodCommandType.DEACTIVATE_POD, aapsOmnipodManager::deactivatePod);
case HANDLE_TIME_CHANGE:
return handleTimeChange(((CommandHandleTimeChange) command).isRequestedByUser());
case UPDATE_ALERT_CONFIGURATION:
@@ -806,7 +808,7 @@ public class OmnipodPumpPlugin extends PumpPluginBase implements PumpInterface,
if (!requestedByUser && aapsOmnipodManager.isTimeChangeEventEnabled()) {
Notification notification = new Notification(
Notification.TIME_OR_TIMEZONE_CHANGE,
- resourceHelper.gs(R.string.omnipod_confirmation_time_or_timezone_change),
+ resourceHelper.gs(R.string.omnipod_confirmation_time_on_pod_updated),
Notification.INFO, 60);
rxBus.send(new EventNewNotification(notification));
}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dagger/OmnipodInjectHelpers.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dagger/OmnipodInjectHelpers.kt
index e555dcb640..cd932bad82 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dagger/OmnipodInjectHelpers.kt
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dagger/OmnipodInjectHelpers.kt
@@ -17,7 +17,6 @@ annotation class OmnipodPluginQualifier
@MapKey
internal annotation class ViewModelKey(val value: KClass)
-
// TODO: These annotations and Factories could be used globally -> move to core or app
@Suppress("UNCHECKED_CAST")
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dagger/OmnipodModule.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dagger/OmnipodModule.kt
index 2bf3095cd4..a61a9425bf 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dagger/OmnipodModule.kt
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dagger/OmnipodModule.kt
@@ -9,11 +9,7 @@ import info.nightscout.androidaps.plugins.pump.omnipod.manager.AapsPodStateManag
import info.nightscout.androidaps.plugins.pump.omnipod.rileylink.manager.OmnipodRileyLinkCommunicationManager
import info.nightscout.androidaps.plugins.pump.omnipod.ui.PodHistoryActivity
import info.nightscout.androidaps.plugins.pump.omnipod.ui.PodManagementActivity
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.initpod.InitActionFragment
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.initpod.InitPodTask
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.pages.PodInfoFragment
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.removepod.RemoveActionFragment
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.ReplacePodWizardActivity
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.ChangePodWizardActivity
@Module
@Suppress("unused")
@@ -26,19 +22,13 @@ abstract class OmnipodModule {
@ActivityScope
@ContributesAndroidInjector(modules = [OmnipodWizardModule::class])
- abstract fun contributesWizardActivity(): ReplacePodWizardActivity
-
- // Fragments
- @ContributesAndroidInjector abstract fun initActionFragment(): InitActionFragment
- @ContributesAndroidInjector abstract fun removeActionFragment(): RemoveActionFragment
- @ContributesAndroidInjector abstract fun podInfoFragment(): PodInfoFragment
+ abstract fun contributesWizardActivity(): ChangePodWizardActivity
// Service
@ContributesAndroidInjector
abstract fun omnipodCommunicationManagerProvider(): OmnipodRileyLinkCommunicationManager
// Data
- @ContributesAndroidInjector abstract fun initPodTask(): InitPodTask
@ContributesAndroidInjector abstract fun rlHistoryItemOmnipod(): RLHistoryItemOmnipod
companion object {
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dagger/OmnipodWizardModule.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dagger/OmnipodWizardModule.kt
index fb7beb86c4..3fe8250a58 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dagger/OmnipodWizardModule.kt
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dagger/OmnipodWizardModule.kt
@@ -7,15 +7,13 @@ import dagger.Module
import dagger.Provides
import dagger.android.ContributesAndroidInjector
import dagger.multibindings.IntoMap
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.fragment.action.DeactivatePodActionFragment
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.fragment.action.InsertCannulaActionFragment
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.fragment.action.PairAndPrimePodActionFragment
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.fragment.info.AttachPodInfoFragment
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.fragment.info.DeactivatePodInfoFragment
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.fragment.info.FillPodInfoFragment
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.fragment.info.PodDeactivatedInfoFragment
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.fragment.info.PodReplacedInfoFragment
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.viewmodel.WizardViewModel1
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.action.DeactivatePodActionFragment
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.action.InsertCannulaActionFragment
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.action.PairAndPrimePodActionFragment
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.info.*
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.viewmodel.DeactivatePodActionViewModel
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.viewmodel.InsertCannulaActionViewModel
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.viewmodel.PairAndPrimePodActionViewModel
import javax.inject.Provider
@Module
@@ -23,7 +21,6 @@ abstract class OmnipodWizardModule {
companion object {
@Provides
- @JvmStatic
@OmnipodPluginQualifier
fun providesViewModelFactory(@OmnipodPluginQualifier viewModels: MutableMap, @JvmSuppressWildcards Provider>): ViewModelProvider.Factory {
return ViewModelFactory(viewModels)
@@ -34,12 +31,22 @@ abstract class OmnipodWizardModule {
@Binds
@IntoMap
@OmnipodPluginQualifier
- @ViewModelKey(WizardViewModel1::class)
- internal abstract fun bindWizardViewModel1(viewModel: WizardViewModel1): ViewModel
- // Add the rest of the view models
+ @ViewModelKey(PairAndPrimePodActionViewModel::class)
+ internal abstract fun pairAndPrimePodActionViewModel(viewModel: PairAndPrimePodActionViewModel): ViewModel
+
+ @Binds
+ @IntoMap
+ @OmnipodPluginQualifier
+ @ViewModelKey(InsertCannulaActionViewModel::class)
+ internal abstract fun insertCannulaActionViewModel(viewModel: InsertCannulaActionViewModel): ViewModel
+
+ @Binds
+ @IntoMap
+ @OmnipodPluginQualifier
+ @ViewModelKey(DeactivatePodActionViewModel::class)
+ internal abstract fun deactivatePodActionViewModel(viewModel: DeactivatePodActionViewModel): ViewModel
// #### FRAGMENTS ##############################################################################
-
@FragmentScope
@ContributesAndroidInjector
internal abstract fun contributesDeactivatePodActionFragment(): DeactivatePodActionFragment
@@ -70,7 +77,11 @@ abstract class OmnipodWizardModule {
@FragmentScope
@ContributesAndroidInjector
- internal abstract fun contributesPodReplacedInfoFragment(): PodReplacedInfoFragment
+ internal abstract fun contributesPodDiscardedInfoFragment(): PodDiscardedInfoFragment
+
+ @FragmentScope
+ @ContributesAndroidInjector
+ internal abstract fun contributesPodChangedInfoFragment(): PodChangedInfoFragment
}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/definition/OmnipodCommandType.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/definition/OmnipodCommandType.java
index e8f6341ab3..4f196cda3d 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/definition/OmnipodCommandType.java
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/definition/OmnipodCommandType.java
@@ -6,8 +6,8 @@ import info.nightscout.androidaps.plugins.pump.omnipod.R;
* Created by andy on 4.8.2019
*/
public enum OmnipodCommandType {
- PAIR_AND_PRIME_POD(R.string.omnipod_cmd_pair_and_prime), // First step of Pod activation
- FILL_CANNULA_AND_SET_BASAL_PROFILE(R.string.omnipod_cmd_fill_cannula_set_basal_profile), // Second step of Pod activation
+ ACTIVATE_POD(R.string.omnipod_cmd_activate_pod), // First step of Pod change
+ INSERT_CANNULA(R.string.omnipod_cmd_insert_cannula), // Second step of Pod change
DEACTIVATE_POD(R.string.omnipod_cmd_deactivate_pod), //
SET_BASAL_PROFILE(R.string.omnipod_cmd_set_basal_schedule), //
SET_BOLUS(R.string.omnipod_cmd_set_bolus), //
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/definition/PodHistoryEntryType.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/definition/PodHistoryEntryType.java
index 84720d3238..207a7814fc 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/definition/PodHistoryEntryType.java
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/definition/PodHistoryEntryType.java
@@ -13,8 +13,8 @@ import info.nightscout.androidaps.plugins.pump.omnipod.R;
*/
public enum PodHistoryEntryType {
- PAIR_AND_PRIME(1, R.string.omnipod_init_pod_wizard_step2_title, PumpHistoryEntryGroup.Prime),
- FILL_CANNULA_SET_BASAL_PROFILE(2, R.string.omnipod_init_pod_wizard_step4_title, PumpHistoryEntryGroup.Prime),
+ ACTIVATE_POD(1, R.string.omnipod_cmd_activate_pod, PumpHistoryEntryGroup.Prime),
+ INSERT_CANNULA(2, R.string.omnipod_cmd_insert_cannula, PumpHistoryEntryGroup.Prime),
DEACTIVATE_POD(3, R.string.omnipod_cmd_deactivate_pod, PumpHistoryEntryGroup.Prime),
DISCARD_POD_STATE(4, R.string.omnipod_cmd_discard_pod, PumpHistoryEntryGroup.Prime),
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/definition/PodInitActionType.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/definition/PodInitActionType.java
deleted file mode 100644
index 1424712010..0000000000
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/definition/PodInitActionType.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.definition;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import info.nightscout.androidaps.plugins.pump.omnipod.R;
-
-public enum PodInitActionType {
-
- PAIR_AND_PRIME_WIZARD_STEP(), //
- PAIR_POD(R.string.omnipod_init_pod_pair_pod, PAIR_AND_PRIME_WIZARD_STEP), //
- PRIME_POD(R.string.omnipod_init_pod_prime_pod, PAIR_AND_PRIME_WIZARD_STEP), //
-
- FILL_CANNULA_SET_BASAL_PROFILE_WIZARD_STEP(), //
- FILL_CANNULA(R.string.omnipod_init_pod_fill_cannula, FILL_CANNULA_SET_BASAL_PROFILE_WIZARD_STEP), //
- SET_BASAL_PROFILE(R.string.omnipod_init_pod_set_basal_profile, FILL_CANNULA_SET_BASAL_PROFILE_WIZARD_STEP), //
-
- DEACTIVATE_POD_WIZARD_STEP(), //
- CANCEL_DELIVERY(R.string.omnipod_deactivate_pod_cancel_delivery, DEACTIVATE_POD_WIZARD_STEP), //
- DEACTIVATE_POD(R.string.omnipod_deactivate_pod_deactivate_pod, DEACTIVATE_POD_WIZARD_STEP);
-
- private int resourceId;
- private PodInitActionType parent;
-
- PodInitActionType(int resourceId, PodInitActionType parent) {
- this.resourceId = resourceId;
- this.parent = parent;
- }
-
- PodInitActionType() {
- }
-
- public boolean isParent() {
- return this.parent == null;
- }
-
- public List getChildren() {
-
- List outList = new ArrayList<>();
-
- for (PodInitActionType value : values()) {
- if (value.parent == this) {
- outList.add(value);
- }
- }
-
- return outList;
- }
-
- public int getResourceId() {
- return resourceId;
- }
-
-}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/definition/PodInitReceiver.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/definition/PodInitReceiver.java
deleted file mode 100644
index 35f9f41229..0000000000
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/definition/PodInitReceiver.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.definition;
-
-public interface PodInitReceiver {
-
- void returnInitTaskStatus(PodInitActionType podInitActionType, boolean isSuccess, String errorMessage);
-
-}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/communication/message/response/podinfo/PodInfoFaultEvent.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/communication/message/response/podinfo/PodInfoFaultEvent.java
index d099894ab6..13a782fdf7 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/communication/message/response/podinfo/PodInfoFaultEvent.java
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/communication/message/response/podinfo/PodInfoFaultEvent.java
@@ -69,7 +69,9 @@ public class PodInfoFaultEvent extends PodInfo implements StatusUpdatableRespons
unacknowledgedAlerts = new AlertSet(encodedData[15]);
faultAccessingTables = encodedData[16] == 0x02;
- logEventErrorType = LogEventErrorCode.fromByte((byte) (encodedData[17] >>> 4));
+ int i = ByteUtil.convertUnsignedByteToInt(encodedData[17]);
+ byte value = (byte) (i >>> 4);
+ logEventErrorType = LogEventErrorCode.fromByte(value);
logEventErrorPodProgressStatus = PodProgressStatus.fromByte((byte) (encodedData[17] & 0x0f));
receiverLowGain = (byte) (ByteUtil.convertUnsignedByteToInt(encodedData[18]) >>> 6);
radioRSSI = (byte) (encodedData[18] & 0x3f);
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/exception/PodProgressStatusVerificationFailedException.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/exception/PodProgressStatusVerificationFailedException.java
new file mode 100644
index 0000000000..d429e6a900
--- /dev/null
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/exception/PodProgressStatusVerificationFailedException.java
@@ -0,0 +1,16 @@
+package info.nightscout.androidaps.plugins.pump.omnipod.driver.exception;
+
+import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.PodProgressStatus;
+
+public class PodProgressStatusVerificationFailedException extends OmnipodException {
+ private final PodProgressStatus expectedStatus;
+
+ public PodProgressStatusVerificationFailedException(PodProgressStatus expectedStatus, Throwable cause) {
+ super("Failed to verify Pod progress status (expected=" + expectedStatus + ")", cause, false);
+ this.expectedStatus = expectedStatus;
+ }
+
+ public PodProgressStatus getExpectedStatus() {
+ return expectedStatus;
+ }
+}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/manager/OmnipodManager.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/manager/OmnipodManager.java
index 0672b6ee93..e642fd1f71 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/manager/OmnipodManager.java
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/manager/OmnipodManager.java
@@ -48,6 +48,7 @@ import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.IllegalP
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.NonceOutOfSyncException;
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.OmnipodException;
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.PodFaultException;
+import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.PodProgressStatusVerificationFailedException;
import info.nightscout.androidaps.plugins.pump.omnipod.rileylink.manager.OmnipodRileyLinkCommunicationManager;
import info.nightscout.androidaps.utils.sharedPreferences.SP;
import io.reactivex.Completable;
@@ -86,7 +87,7 @@ public class OmnipodManager {
this.podStateManager = podStateManager;
}
- public synchronized Single pairAndPrime() {
+ public synchronized Single pairAndPrime() {
logStartingCommandExecution("pairAndPrime");
try {
@@ -128,11 +129,11 @@ public class OmnipodManager {
long delayInMillis = calculateEstimatedBolusDuration(DateTime.now().minus(OmnipodConstants.AVERAGE_BOLUS_COMMAND_COMMUNICATION_DURATION), OmnipodConstants.POD_PRIME_BOLUS_UNITS, OmnipodConstants.POD_PRIMING_DELIVERY_RATE).getMillis();
return Single.timer(delayInMillis, TimeUnit.MILLISECONDS) //
- .map(o -> verifySetupAction(PodProgressStatus.PRIMING_COMPLETED)) //
- .observeOn(Schedulers.io());
+ .map(o -> verifyPodProgressStatus(PodProgressStatus.PRIMING_COMPLETED)) //
+ .subscribeOn(Schedulers.io());
}
- public synchronized Single insertCannula(
+ public synchronized Single insertCannula(
BasalSchedule basalSchedule, Duration expirationReminderTimeBeforeShutdown, Integer lowReservoirAlertUnits) {
if (!podStateManager.isPodInitialized() || podStateManager.getPodProgressStatus().isBefore(PodProgressStatus.PRIMING_COMPLETED)) {
throw new IllegalPodProgressException(PodProgressStatus.PRIMING_COMPLETED, !podStateManager.isPodInitialized() ? null : podStateManager.getPodProgressStatus());
@@ -156,8 +157,8 @@ public class OmnipodManager {
long delayInMillis = calculateEstimatedBolusDuration(DateTime.now().minus(OmnipodConstants.AVERAGE_BOLUS_COMMAND_COMMUNICATION_DURATION), OmnipodConstants.POD_CANNULA_INSERTION_BOLUS_UNITS, OmnipodConstants.POD_CANNULA_INSERTION_DELIVERY_RATE).getMillis();
return Single.timer(delayInMillis, TimeUnit.MILLISECONDS) //
- .map(o -> verifySetupAction(PodProgressStatus.ABOVE_FIFTY_UNITS)) //
- .observeOn(Schedulers.io());
+ .map(o -> verifyPodProgressStatus(PodProgressStatus.ABOVE_FIFTY_UNITS)) //
+ .subscribeOn(Schedulers.io());
}
public synchronized StatusResponse getPodStatus() {
@@ -400,7 +401,7 @@ public class OmnipodManager {
long progressReportInterval = estimatedRemainingBolusDuration.getMillis() / numberOfProgressReports;
disposables.add(Flowable.intervalRange(0, numberOfProgressReports + 1, 0, progressReportInterval, TimeUnit.MILLISECONDS) //
- .observeOn(Schedulers.io()) //
+ .subscribeOn(Schedulers.io()) //
.subscribe(count -> {
int percentage = (int) ((double) count / numberOfProgressReports * 100);
double estimatedUnitsDelivered = activeBolusData == null ? 0 : activeBolusData.estimateUnitsDelivered();
@@ -421,7 +422,7 @@ public class OmnipodManager {
disposables.add(Completable.complete() //
.delay(estimatedRemainingBolusDuration.getMillis(), TimeUnit.MILLISECONDS) //
- .observeOn(Schedulers.io()) //
+ .subscribeOn(Schedulers.io()) //
.doOnComplete(() -> {
synchronized (bolusDataMutex) {
double bolusNotDelivered = 0.0d;
@@ -626,26 +627,36 @@ public class OmnipodManager {
}
}
- private SetupActionResult verifySetupAction(PodProgressStatus expectedPodProgressStatus) {
- SetupActionResult result = null;
+ /**
+ * @param expectedPodProgressStatus expected Pod progress status
+ * @return true if the Pod's progress status matches the expected status, otherwise false
+ * @throws PodProgressStatusVerificationFailedException in case reading the Pod status fails
+ */
+ private boolean verifyPodProgressStatus(PodProgressStatus expectedPodProgressStatus) {
+ Boolean result = null;
+ Throwable lastException = null;
+
for (int i = 0; ACTION_VERIFICATION_TRIES > i; i++) {
try {
StatusResponse statusResponse = getPodStatus();
if (statusResponse.getPodProgressStatus().equals(expectedPodProgressStatus)) {
- result = new SetupActionResult(SetupActionResult.ResultType.SUCCESS);
- break;
+ return true;
} else {
- result = new SetupActionResult(SetupActionResult.ResultType.FAILURE) //
- .podProgressStatus(statusResponse.getPodProgressStatus());
- break;
+ result = false;
}
} catch (Exception ex) {
- result = new SetupActionResult(SetupActionResult.ResultType.VERIFICATION_FAILURE) //
- .exception(ex);
+ lastException = ex;
}
}
- return result;
+
+ if (result != null) {
+ return result;
+ }
+
+ final Throwable ex = lastException;
+
+ throw new PodProgressStatusVerificationFailedException(expectedPodProgressStatus, ex);
}
/**
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/manager/SetupActionResult.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/manager/SetupActionResult.java
deleted file mode 100644
index 867c56aa9f..0000000000
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/manager/SetupActionResult.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.driver.manager;
-
-import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.PodProgressStatus;
-
-public class SetupActionResult {
- private final ResultType resultType;
- private String message;
- private Exception exception;
- private PodProgressStatus podProgressStatus;
-
- public SetupActionResult(ResultType resultType) {
- this.resultType = resultType;
- }
-
- public SetupActionResult message(String message) {
- this.message = message;
- return this;
- }
-
- public SetupActionResult exception(Exception ex) {
- exception = ex;
- return this;
- }
-
- public SetupActionResult podProgressStatus(PodProgressStatus podProgressStatus) {
- this.podProgressStatus = podProgressStatus;
- return this;
- }
-
- public ResultType getResultType() {
- return resultType;
- }
-
- public String getMessage() {
- return message;
- }
-
- public Exception getException() {
- return exception;
- }
-
- public PodProgressStatus getPodProgressStatus() {
- return podProgressStatus;
- }
-
- public enum ResultType {
- SUCCESS(true),
- VERIFICATION_FAILURE(false),
- FAILURE(false);
-
- private final boolean success;
-
- ResultType(boolean success) {
- this.success = success;
- }
-
- public boolean isSuccess() {
- return success;
- }
- }
-}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/manager/AapsOmnipodManager.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/manager/AapsOmnipodManager.java
index 7a9c400d46..3d21de9c14 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/manager/AapsOmnipodManager.java
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/manager/AapsOmnipodManager.java
@@ -22,6 +22,7 @@ import info.nightscout.androidaps.db.OmnipodHistoryRecord;
import info.nightscout.androidaps.db.Source;
import info.nightscout.androidaps.db.TemporaryBasal;
import info.nightscout.androidaps.events.Event;
+import info.nightscout.androidaps.events.EventRefreshOverview;
import info.nightscout.androidaps.interfaces.ActivePluginProvider;
import info.nightscout.androidaps.interfaces.DatabaseHelperInterface;
import info.nightscout.androidaps.interfaces.ProfileFunction;
@@ -38,10 +39,9 @@ import info.nightscout.androidaps.plugins.pump.common.defs.PumpType;
import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil;
import info.nightscout.androidaps.plugins.pump.omnipod.R;
import info.nightscout.androidaps.plugins.pump.omnipod.data.ActiveBolus;
+import info.nightscout.androidaps.plugins.pump.omnipod.definition.OmnipodCommandType;
import info.nightscout.androidaps.plugins.pump.omnipod.definition.OmnipodStorageKeys;
import info.nightscout.androidaps.plugins.pump.omnipod.definition.PodHistoryEntryType;
-import info.nightscout.androidaps.plugins.pump.omnipod.definition.PodInitActionType;
-import info.nightscout.androidaps.plugins.pump.omnipod.definition.PodInitReceiver;
import info.nightscout.androidaps.plugins.pump.omnipod.driver.communication.message.response.StatusResponse;
import info.nightscout.androidaps.plugins.pump.omnipod.driver.communication.message.response.podinfo.PodInfoRecentPulseLog;
import info.nightscout.androidaps.plugins.pump.omnipod.driver.communication.message.response.podinfo.PodInfoResponse;
@@ -50,6 +50,7 @@ import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.Deliver
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.FaultEventCode;
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.OmnipodConstants;
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.PodInfoType;
+import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.PodProgressStatus;
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.schedule.BasalSchedule;
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.schedule.BasalScheduleEntry;
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.CommandFailedAfterChangingDeliveryStatusException;
@@ -75,7 +76,6 @@ import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.RileyLin
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.RileyLinkUnreachableException;
import info.nightscout.androidaps.plugins.pump.omnipod.driver.manager.OmnipodManager;
import info.nightscout.androidaps.plugins.pump.omnipod.driver.manager.PodStateManager;
-import info.nightscout.androidaps.plugins.pump.omnipod.driver.manager.SetupActionResult;
import info.nightscout.androidaps.plugins.pump.omnipod.event.EventOmnipodPumpValuesChanged;
import info.nightscout.androidaps.plugins.pump.omnipod.rileylink.manager.OmnipodRileyLinkCommunicationManager;
import info.nightscout.androidaps.plugins.pump.omnipod.util.AapsOmnipodUtil;
@@ -153,57 +153,61 @@ public class AapsOmnipodManager {
timeChangeEventEnabled = sp.getBoolean(OmnipodStorageKeys.Preferences.TIME_CHANGE_EVENT_ENABLED, true);
}
- public PumpEnactResult pairAndPrime(PodInitActionType podInitActionType, PodInitReceiver podInitReceiver) {
- if (podInitActionType != PodInitActionType.PAIR_AND_PRIME_WIZARD_STEP) {
- return new PumpEnactResult(injector).success(false).enacted(false).comment(getStringResource(R.string.omnipod_error_illegal_init_action_type, podInitActionType.name()));
- }
-
+ public PumpEnactResult activateNewPod() {
+ PumpEnactResult result = new PumpEnactResult(injector);
try {
- executeCommand(() -> delegate.pairAndPrime().subscribe(res -> //
- handleSetupActionResult(podInitActionType, podInitReceiver, res, System.currentTimeMillis(), null)));
+ Boolean res = executeCommand(delegate::pairAndPrime)
+ .blockingGet();
- return new PumpEnactResult(injector).success(true).enacted(true);
+ result.success(res).enacted(res);
+
+ if (!res) {
+ result.comment(R.string.omnipod_error_failed_to_activate_pod);
+ }
} catch (Exception ex) {
- String errorMessage = translateException(ex);
- podInitReceiver.returnInitTaskStatus(podInitActionType, false, errorMessage);
- addFailureToHistory(System.currentTimeMillis(), PodHistoryEntryType.PAIR_AND_PRIME, errorMessage);
- return new PumpEnactResult(injector).success(false).enacted(false).comment(errorMessage);
+ result.success(false).enacted(false).comment(translateException(ex));
}
+
+ addToHistory(System.currentTimeMillis(), PodHistoryEntryType.ACTIVATE_POD, result.comment, result.success);
+
+ return result;
}
- public PumpEnactResult setInitialBasalScheduleAndInsertCannula(PodInitActionType podInitActionType, PodInitReceiver podInitReceiver, Profile profile) {
- if (podInitActionType != PodInitActionType.FILL_CANNULA_SET_BASAL_PROFILE_WIZARD_STEP) {
- String comment = getStringResource(R.string.omnipod_error_illegal_init_action_type, podInitActionType.name());
- podInitReceiver.returnInitTaskStatus(podInitActionType, false, comment);
- return new PumpEnactResult(injector).success(false).enacted(false).comment(comment);
- }
+ public PumpEnactResult insertCannula(Profile profile) {
if (profile == null) {
String comment = getStringResource(R.string.omnipod_error_set_initial_basal_schedule_no_profile);
- podInitReceiver.returnInitTaskStatus(podInitActionType, false, comment);
return new PumpEnactResult(injector).success(false).enacted(false).comment(comment);
}
+ PumpEnactResult result = new PumpEnactResult(injector);
+
try {
BasalSchedule basalSchedule = mapProfileToBasalSchedule(profile);
- executeCommand(() -> delegate.insertCannula(basalSchedule, omnipodAlertUtil.getExpirationReminderTimeBeforeShutdown(), omnipodAlertUtil.getLowReservoirAlertUnits()).subscribe(res -> //
- handleSetupActionResult(podInitActionType, podInitReceiver, res, System.currentTimeMillis(), profile)));
+ Boolean res = executeCommand(() -> delegate.insertCannula(basalSchedule, omnipodAlertUtil.getExpirationReminderTimeBeforeShutdown(), omnipodAlertUtil.getLowReservoirAlertUnits())) //
+ .blockingGet();
+
+ result.success(res).enacted(res);
+ if (!res) {
+ result.comment(R.string.omnipod_error_failed_to_insert_cannula);
+ }
} catch (Exception ex) {
- String errorMessage = translateException(ex);
- podInitReceiver.returnInitTaskStatus(podInitActionType, false, errorMessage);
- addFailureToHistory(PodHistoryEntryType.FILL_CANNULA_SET_BASAL_PROFILE, errorMessage);
- return new PumpEnactResult(injector).success(false).enacted(false).comment(errorMessage);
+ result.success(false).enacted(false).comment(translateException(ex));
}
- uploadCareportalEvent(System.currentTimeMillis() - 2000, CareportalEvent.PUMPBATTERYCHANGE);
- uploadCareportalEvent(System.currentTimeMillis() - 1000, CareportalEvent.INSULINCHANGE);
- uploadCareportalEvent(System.currentTimeMillis(), CareportalEvent.SITECHANGE);
+ addToHistory(System.currentTimeMillis(), PodHistoryEntryType.INSERT_CANNULA, result.comment, result.success);
- rxBus.send(new EventDismissNotification(Notification.OMNIPOD_POD_NOT_ATTACHED));
+ if (result.success) {
+ uploadCareportalEvent(System.currentTimeMillis() - 2000, CareportalEvent.PUMPBATTERYCHANGE);
+ uploadCareportalEvent(System.currentTimeMillis() - 1000, CareportalEvent.INSULINCHANGE);
+ uploadCareportalEvent(System.currentTimeMillis(), CareportalEvent.SITECHANGE);
- cancelSuspendedFakeTbrIfExists();
+ sendEvent(new EventDismissNotification(Notification.OMNIPOD_POD_NOT_ATTACHED));
- return new PumpEnactResult(injector).success(true).enacted(true);
+ cancelSuspendedFakeTbrIfExists();
+ }
+
+ return result;
}
public PumpEnactResult configureAlerts(List alertConfigurations) {
@@ -234,19 +238,17 @@ public class AapsOmnipodManager {
return new PumpEnactResult(injector).success(true).enacted(false);
}
- public PumpEnactResult deactivatePod(PodInitReceiver podInitReceiver) {
+ public PumpEnactResult deactivatePod() {
try {
executeCommand(delegate::deactivatePod);
} catch (Exception ex) {
String errorMessage = translateException(ex);
- podInitReceiver.returnInitTaskStatus(PodInitActionType.DEACTIVATE_POD_WIZARD_STEP, false, errorMessage);
addFailureToHistory(PodHistoryEntryType.DEACTIVATE_POD, errorMessage);
return new PumpEnactResult(injector).success(false).enacted(false).comment(errorMessage);
}
addSuccessToHistory(PodHistoryEntryType.DEACTIVATE_POD, null);
createSuspendedFakeTbrIfNotExists();
- podInitReceiver.returnInitTaskStatus(PodInitActionType.DEACTIVATE_POD_WIZARD_STEP, true, null);
return new PumpEnactResult(injector).success(true).enacted(true);
}
@@ -297,7 +299,7 @@ public class AapsOmnipodManager {
if (historyEntryType == PodHistoryEntryType.RESUME_DELIVERY) {
cancelSuspendedFakeTbrIfExists();
- rxBus.send(new EventDismissNotification(Notification.OMNIPOD_POD_SUSPENDED));
+ sendEvent(new EventDismissNotification(Notification.OMNIPOD_POD_SUSPENDED));
}
addSuccessToHistory(historyEntryType, profile.getBasalValues());
@@ -315,6 +317,9 @@ public class AapsOmnipodManager {
createSuspendedFakeTbrIfNotExists();
+ sendEvent(new EventOmnipodPumpValuesChanged());
+ rxBus.send(new EventRefreshOverview("Omnipod command: " + OmnipodCommandType.DISCARD_POD, false));
+
return new PumpEnactResult(injector).success(true).enacted(true);
}
@@ -694,7 +699,8 @@ public class AapsOmnipodManager {
return addSuccessToHistory(System.currentTimeMillis(), entryType, data);
}
- private long addSuccessToHistory(long requestTime, PodHistoryEntryType entryType, Object data) {
+ private long addSuccessToHistory(long requestTime, PodHistoryEntryType entryType, Object
+ data) {
return addToHistory(requestTime, entryType, data, true);
}
@@ -702,11 +708,13 @@ public class AapsOmnipodManager {
return addFailureToHistory(System.currentTimeMillis(), entryType, data);
}
- private long addFailureToHistory(long requestTime, PodHistoryEntryType entryType, Object data) {
+ private long addFailureToHistory(long requestTime, PodHistoryEntryType entryType, Object
+ data) {
return addToHistory(requestTime, entryType, data, false);
}
- private long addToHistory(long requestTime, PodHistoryEntryType entryType, Object data, boolean success) {
+ private long addToHistory(long requestTime, PodHistoryEntryType entryType, Object data,
+ boolean success) {
OmnipodHistoryRecord omnipodHistoryRecord = new OmnipodHistoryRecord(requestTime, entryType.getCode());
if (data != null) {
@@ -725,30 +733,6 @@ public class AapsOmnipodManager {
return omnipodHistoryRecord.getPumpId();
}
- private void handleSetupActionResult(PodInitActionType podInitActionType, PodInitReceiver podInitReceiver, SetupActionResult res, long time, Profile profile) {
- String comment = null;
- switch (res.getResultType()) {
- case FAILURE: {
- aapsLogger.error(LTag.PUMP, "Setup action failed: illegal setup progress: {}", res.getPodProgressStatus());
- comment = getStringResource(R.string.omnipod_error_invalid_progress_state, res.getPodProgressStatus());
- }
- break;
- case VERIFICATION_FAILURE: {
- aapsLogger.error(LTag.PUMP, "Setup action verification failed: caught exception", res.getException());
- comment = getStringResource(R.string.omnipod_error_setup_action_verification_failed);
- }
- break;
- }
-
- if (podInitActionType == PodInitActionType.PAIR_AND_PRIME_WIZARD_STEP) {
- addToHistory(time, PodHistoryEntryType.PAIR_AND_PRIME, comment, res.getResultType().isSuccess());
- } else {
- addToHistory(time, PodHistoryEntryType.FILL_CANNULA_SET_BASAL_PROFILE, res.getResultType().isSuccess() ? profile.getBasalValues() : comment, res.getResultType().isSuccess());
- }
-
- podInitReceiver.returnInitTaskStatus(podInitActionType, res.getResultType().isSuccess(), comment);
- }
-
private void executeCommand(Runnable runnable) {
try {
runnable.run();
@@ -772,7 +756,9 @@ public class AapsOmnipodManager {
aapsLogger.error(LTag.PUMP, String.format("Caught OmnipodException[certainFailure=%s] from OmnipodManager", ((OmnipodException) ex).isCertainFailure()), ex);
if (ex instanceof PodFaultException) {
FaultEventCode faultEventCode = ((PodFaultException) ex).getFaultEvent().getFaultEventCode();
- showPodFaultNotification(faultEventCode);
+ if (!(faultEventCode == FaultEventCode.NO_FAULTS && podStateManager.isPodInitialized() && podStateManager.getPodProgressStatus() == PodProgressStatus.ACTIVATION_TIME_EXCEEDED)) {
+ showPodFaultNotification(faultEventCode);
+ }
}
} else {
aapsLogger.error(LTag.PUMP, "Caught an unexpected non-OmnipodException from OmnipodManager", ex);
@@ -827,10 +813,11 @@ public class AapsOmnipodManager {
}
private String createPodFaultErrorMessage(FaultEventCode faultEventCode) {
- String comment;
- comment = getStringResource(R.string.omnipod_error_pod_fault,
+ if (faultEventCode == FaultEventCode.NO_FAULTS && podStateManager.getPodProgressStatus() == PodProgressStatus.ACTIVATION_TIME_EXCEEDED) {
+ return getStringResource(R.string.omnipod_error_pod_fault_activation_time_exceeded);
+ }
+ return getStringResource(R.string.omnipod_error_pod_fault,
ByteUtil.convertUnsignedByteToInt(faultEventCode.getValue()), faultEventCode.name());
- return comment;
}
private void sendEvent(Event event) {
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/queue/command/CommandDeactivatePod.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/queue/command/CommandDeactivatePod.java
new file mode 100644
index 0000000000..3921ec19d7
--- /dev/null
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/queue/command/CommandDeactivatePod.java
@@ -0,0 +1,7 @@
+package info.nightscout.androidaps.plugins.pump.omnipod.queue.command;
+
+public final class CommandDeactivatePod extends OmnipodCustomCommand {
+ public CommandDeactivatePod() {
+ super(OmnipodCustomCommandType.DEACTIVATE_POD);
+ }
+}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/queue/command/OmnipodCustomCommandType.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/queue/command/OmnipodCustomCommandType.java
index ad1cd46652..e6df62c47b 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/queue/command/OmnipodCustomCommandType.java
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/queue/command/OmnipodCustomCommandType.java
@@ -6,6 +6,7 @@ public enum OmnipodCustomCommandType {
READ_PULSE_LOG("READ PULSE LOG"),
SUSPEND_DELIVERY("SUSPEND DELIVERY"),
RESUME_DELIVERY("RESUME DELIVERY"),
+ DEACTIVATE_POD("DEACTIVATE POD"),
HANDLE_TIME_CHANGE("HANDLE TIME CHANGE"),
UPDATE_ALERT_CONFIGURATION("UPDATE ALERT CONFIGURATION");
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/rileylink/manager/OmnipodRileyLinkCommunicationManager.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/rileylink/manager/OmnipodRileyLinkCommunicationManager.java
index 3dca3d3228..adb9e97e69 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/rileylink/manager/OmnipodRileyLinkCommunicationManager.java
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/rileylink/manager/OmnipodRileyLinkCommunicationManager.java
@@ -241,6 +241,7 @@ public class OmnipodRileyLinkCommunicationManager extends RileyLinkCommunication
byte[] receivedMessageData = response.getEncodedMessage();
while (receivedMessage == null) {
try {
+ aapsLogger.debug(LTag.PUMPBTCOMM, "Attempting to decode message: {}", ByteUtil.shortHexStringWithoutSpaces(receivedMessageData));
receivedMessage = OmnipodMessage.decodeMessage(receivedMessageData);
if (receivedMessage.getAddress() != message.getAddress()) {
throw new IllegalMessageAddressException(message.getAddress(), receivedMessage.getAddress());
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/OmnipodFragment.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/OmnipodOverviewFragment.kt
similarity index 73%
rename from omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/OmnipodFragment.kt
rename to omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/OmnipodOverviewFragment.kt
index 5ffe10db0b..055e7550d2 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/OmnipodFragment.kt
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/OmnipodOverviewFragment.kt
@@ -29,7 +29,6 @@ import info.nightscout.androidaps.plugins.pump.omnipod.driver.manager.PodStateMa
import info.nightscout.androidaps.plugins.pump.omnipod.event.EventOmnipodPumpValuesChanged
import info.nightscout.androidaps.plugins.pump.omnipod.manager.AapsOmnipodManager
import info.nightscout.androidaps.plugins.pump.omnipod.queue.command.*
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.ReplacePodWizardActivity
import info.nightscout.androidaps.plugins.pump.omnipod.util.AapsOmnipodUtil
import info.nightscout.androidaps.queue.Callback
import info.nightscout.androidaps.queue.events.EventQueueChanged
@@ -44,8 +43,7 @@ import info.nightscout.androidaps.utils.sharedPreferences.SP
import info.nightscout.androidaps.utils.ui.UIRunnable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable
-import io.reactivex.schedulers.Schedulers
-import kotlinx.android.synthetic.main.omnipod_fragment.*
+import kotlinx.android.synthetic.main.omnipod_overview.*
import org.apache.commons.lang3.StringUtils
import org.joda.time.DateTime
import org.joda.time.Duration
@@ -53,10 +51,10 @@ import java.util.*
import javax.inject.Inject
import kotlin.collections.ArrayList
-class OmnipodFragment : DaggerFragment() {
+class OmnipodOverviewFragment : DaggerFragment() {
companion object {
- private val REFRESH_INTERVAL_MILLIS = 15 * 1000L; // 15 seconds
- private val PLACEHOLDER = "-"; // 15 seconds
+ private val REFRESH_INTERVAL_MILLIS = 15 * 1000L // 15 seconds
+ private val PLACEHOLDER = "-" // 15 seconds
}
@Inject lateinit var fabricPrivacy: FabricPrivacy
@@ -87,17 +85,13 @@ class OmnipodFragment : DaggerFragment() {
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
- return inflater.inflate(R.layout.omnipod_fragment, container, false)
+ return inflater.inflate(R.layout.omnipod_overview, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- omnipod_button_replace_pod.setOnClickListener {
- startActivity(Intent(context, ReplacePodWizardActivity::class.java))
- }
-
- omnipod_button_pod_mgmt.setOnClickListener {
+ omnipod_overview_button_pod_management.setOnClickListener {
if (omnipodPumpPlugin.rileyLinkService?.verifyConfiguration() == true) {
activity?.let { activity ->
protectionCheck.queryProtection(
@@ -110,19 +104,19 @@ class OmnipodFragment : DaggerFragment() {
}
}
- omnipod_button_resume_delivery.setOnClickListener {
+ omnipod_overview_button_resume_delivery.setOnClickListener {
disablePodActionButtons()
commandQueue.customCommand(CommandResumeDelivery(),
DisplayResultDialogCallback(resourceHelper.gs(R.string.omnipod_error_failed_to_resume_delivery), true).messageOnSuccess(resourceHelper.gs(R.string.omnipod_confirmation_delivery_resumed)))
}
- omnipod_button_refresh_status.setOnClickListener {
+ omnipod_overview_button_refresh_status.setOnClickListener {
disablePodActionButtons()
commandQueue.customCommand(CommandGetPodStatus(),
DisplayResultDialogCallback(resourceHelper.gs(R.string.omnipod_error_failed_to_refresh_status), false))
}
- omnipod_button_rileylink_stats.setOnClickListener {
+ omnipod_overview_button_rileylink_stats.setOnClickListener {
if (omnipodPumpPlugin.rileyLinkService?.verifyConfiguration() == true) {
startActivity(Intent(context, RileyLinkStatusActivity::class.java))
} else {
@@ -130,28 +124,28 @@ class OmnipodFragment : DaggerFragment() {
}
}
- omnipod_button_acknowledge_active_alerts.setOnClickListener {
+ omnipod_overview_button_acknowledge_active_alerts.setOnClickListener {
disablePodActionButtons()
commandQueue.customCommand(CommandAcknowledgeAlerts(),
DisplayResultDialogCallback(resourceHelper.gs(R.string.omnipod_error_failed_to_acknowledge_alerts), false)
.messageOnSuccess(resourceHelper.gs(R.string.omnipod_confirmation_acknowledged_alerts)))
}
- omnipod_button_suspend_delivery.setOnClickListener {
+ omnipod_overview_button_suspend_delivery.setOnClickListener {
disablePodActionButtons()
commandQueue.customCommand(CommandSuspendDelivery(),
DisplayResultDialogCallback(resourceHelper.gs(R.string.omnipod_error_failed_to_suspend_delivery), true)
.messageOnSuccess(resourceHelper.gs(R.string.omnipod_confirmation_suspended_delivery)))
}
- omnipod_button_set_time.setOnClickListener {
+ omnipod_overview_button_set_time.setOnClickListener {
disablePodActionButtons()
commandQueue.customCommand(CommandHandleTimeChange(true),
DisplayResultDialogCallback(resourceHelper.gs(R.string.omnipod_error_failed_to_set_time), true)
.messageOnSuccess(resourceHelper.gs(R.string.omnipod_confirmation_time_on_pod_updated)))
}
- omnipod_button_pulse_log.setOnClickListener {
+ omnipod_overview_button_pulse_log.setOnClickListener {
disablePodActionButtons()
commandQueue.customCommand(CommandReadPulseLog(),
DisplayResultDialogCallback(resourceHelper.gs(R.string.omnipod_error_failed_to_read_pulse_log), false))
@@ -184,7 +178,7 @@ class OmnipodFragment : DaggerFragment() {
}, { fabricPrivacy.logException(it) })
disposables += rxBus
.toObservable(EventPreferenceChange::class.java)
- .observeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
.subscribe({
updatePodActionButtons()
}, { fabricPrivacy.logException(it) })
@@ -211,7 +205,7 @@ class OmnipodFragment : DaggerFragment() {
val resourceId = rileyLinkServiceState.getResourceId()
val rileyLinkError = rileyLinkServiceData.rileyLinkError
- omnipod_rl_status.text =
+ omnipod_overview_riley_link_status.text =
when {
rileyLinkServiceState == RileyLinkServiceState.NotStarted -> resourceHelper.gs(resourceId)
rileyLinkServiceState.isConnecting -> "{fa-bluetooth-b spin} " + resourceHelper.gs(resourceId)
@@ -219,7 +213,7 @@ class OmnipodFragment : DaggerFragment() {
rileyLinkServiceState.isError && rileyLinkError != null -> "{fa-bluetooth-b} " + resourceHelper.gs(rileyLinkError.getResourceId(RileyLinkTargetDevice.Omnipod))
else -> "{fa-bluetooth-b} " + resourceHelper.gs(resourceId)
}
- omnipod_rl_status.setTextColor(if (rileyLinkServiceState.isError || rileyLinkError != null) Color.RED else Color.WHITE)
+ omnipod_overview_riley_link_status.setTextColor(if (rileyLinkServiceState.isError || rileyLinkError != null) Color.RED else Color.WHITE)
}
private fun updateOmnipodStatus() {
@@ -237,41 +231,41 @@ class OmnipodFragment : DaggerFragment() {
}
if (!podStateManager.hasPodState() || !podStateManager.isPodInitialized) {
- omnipod_pod_address.text = if (podStateManager.hasPodState()) {
+ omnipod_overview_pod_address.text = if (podStateManager.hasPodState()) {
podStateManager.address.toString()
} else {
PLACEHOLDER
}
- omnipod_pod_lot.text = PLACEHOLDER
- omnipod_pod_tid.text = PLACEHOLDER
- omnipod_pod_firmware_version.text = PLACEHOLDER
- omnipod_time_on_pod.text = PLACEHOLDER
- omnipod_pod_expiry.text = PLACEHOLDER
- omnipod_pod_expiry.setTextColor(Color.WHITE)
- omnipod_base_basal_rate.text = PLACEHOLDER
- omnipod_total_delivered.text = PLACEHOLDER
- omnipod_reservoir.text = PLACEHOLDER
- omnipod_reservoir.setTextColor(Color.WHITE)
- omnipod_pod_active_alerts.text = PLACEHOLDER
+ omnipod_overview_pod_lot.text = PLACEHOLDER
+ omnipod_overview_pod_tid.text = PLACEHOLDER
+ omnipod_overview_firmware_version.text = PLACEHOLDER
+ omnipod_overview_time_on_pod.text = PLACEHOLDER
+ omnipod_overview_pod_expiry_date.text = PLACEHOLDER
+ omnipod_overview_pod_expiry_date.setTextColor(Color.WHITE)
+ omnipod_overview_base_basal_rate.text = PLACEHOLDER
+ omnipod_overview_total_delivered.text = PLACEHOLDER
+ omnipod_overview_reservoir.text = PLACEHOLDER
+ omnipod_overview_reservoir.setTextColor(Color.WHITE)
+ omnipod_overview_pod_active_alerts.text = PLACEHOLDER
} else {
- omnipod_pod_address.text = podStateManager.address.toString()
- omnipod_pod_lot.text = podStateManager.lot.toString()
- omnipod_pod_tid.text = podStateManager.tid.toString()
- omnipod_pod_firmware_version.text = resourceHelper.gs(R.string.omnipod_pod_firmware_version_value, podStateManager.pmVersion.toString(), podStateManager.piVersion.toString())
+ omnipod_overview_pod_address.text = podStateManager.address.toString()
+ omnipod_overview_pod_lot.text = podStateManager.lot.toString()
+ omnipod_overview_pod_tid.text = podStateManager.tid.toString()
+ omnipod_overview_firmware_version.text = resourceHelper.gs(R.string.omnipod_firmware_version_value, podStateManager.pmVersion.toString(), podStateManager.piVersion.toString())
- omnipod_time_on_pod.text = readableZonedTime(podStateManager.time)
- omnipod_time_on_pod.setTextColor(if (podStateManager.timeDeviatesMoreThan(Duration.standardMinutes(5))) {
+ omnipod_overview_time_on_pod.text = readableZonedTime(podStateManager.time)
+ omnipod_overview_time_on_pod.setTextColor(if (podStateManager.timeDeviatesMoreThan(Duration.standardMinutes(5))) {
Color.RED
} else {
Color.WHITE
})
val expiresAt = podStateManager.expiresAt
if (expiresAt == null) {
- omnipod_pod_expiry.text = PLACEHOLDER
- omnipod_pod_expiry.setTextColor(Color.WHITE)
+ omnipod_overview_pod_expiry_date.text = PLACEHOLDER
+ omnipod_overview_pod_expiry_date.setTextColor(Color.WHITE)
} else {
- omnipod_pod_expiry.text = readableZonedTime(expiresAt)
- omnipod_pod_expiry.setTextColor(if (DateTime.now().isAfter(expiresAt)) {
+ omnipod_overview_pod_expiry_date.text = readableZonedTime(expiresAt)
+ omnipod_overview_pod_expiry_date.setTextColor(if (DateTime.now().isAfter(expiresAt)) {
Color.RED
} else {
Color.WHITE
@@ -286,29 +280,29 @@ class OmnipodFragment : DaggerFragment() {
val now = DateTime.now()
// base basal rate
- omnipod_base_basal_rate.text = if (podStateManager.isPodActivationCompleted) {
+ omnipod_overview_base_basal_rate.text = if (podStateManager.isPodActivationCompleted) {
resourceHelper.gs(R.string.pump_basebasalrate, omnipodPumpPlugin.model().determineCorrectBasalSize(podStateManager.basalSchedule.rateAt(Duration(now.withTimeAtStartOfDay(), now))))
} else {
PLACEHOLDER
}
// total delivered
- omnipod_total_delivered.text = if (podStateManager.isPodActivationCompleted && podStateManager.totalInsulinDelivered != null) {
- resourceHelper.gs(R.string.omnipod_total_delivered, podStateManager.totalInsulinDelivered - OmnipodConstants.POD_SETUP_UNITS)
+ omnipod_overview_total_delivered.text = if (podStateManager.isPodActivationCompleted && podStateManager.totalInsulinDelivered != null) {
+ resourceHelper.gs(R.string.omnipod_overview_total_delivered_value, podStateManager.totalInsulinDelivered - OmnipodConstants.POD_SETUP_UNITS)
} else {
PLACEHOLDER
}
// reservoir
if (podStateManager.reservoirLevel == null) {
- omnipod_reservoir.text = resourceHelper.gs(R.string.omnipod_reservoir_over50)
- omnipod_reservoir.setTextColor(Color.WHITE)
+ omnipod_overview_reservoir.text = resourceHelper.gs(R.string.omnipod_overview_reservoir_value_over50)
+ omnipod_overview_reservoir.setTextColor(Color.WHITE)
} else {
- omnipod_reservoir.text = resourceHelper.gs(R.string.omnipod_reservoir_left, podStateManager.reservoirLevel)
- warnColors.setColorInverse(omnipod_reservoir, podStateManager.reservoirLevel, 50.0, 20.0)
+ omnipod_overview_reservoir.text = resourceHelper.gs(R.string.omnipod_overview_reservoir_value, podStateManager.reservoirLevel)
+ warnColors.setColorInverse(omnipod_overview_reservoir, podStateManager.reservoirLevel, 50.0, 20.0)
}
- omnipod_pod_active_alerts.text = if (podStateManager.hasActiveAlerts()) {
+ omnipod_overview_pod_active_alerts.text = if (podStateManager.hasActiveAlerts()) {
TextUtils.join(System.lineSeparator(), omnipodUtil.getTranslatedActiveAlerts(podStateManager))
} else {
PLACEHOLDER
@@ -316,27 +310,27 @@ class OmnipodFragment : DaggerFragment() {
}
if (errors.size == 0) {
- omnipod_errors.text = PLACEHOLDER
- omnipod_errors.setTextColor(Color.WHITE)
+ omnipod_overview_errors.text = PLACEHOLDER
+ omnipod_overview_errors.setTextColor(Color.WHITE)
} else {
- omnipod_errors.text = StringUtils.join(errors, System.lineSeparator())
- omnipod_errors.setTextColor(Color.RED)
+ omnipod_overview_errors.text = StringUtils.join(errors, System.lineSeparator())
+ omnipod_overview_errors.setTextColor(Color.RED)
}
}
private fun updateLastConnection() {
if (podStateManager.isPodInitialized && podStateManager.lastSuccessfulCommunication != null) {
- omnipod_last_connection.text = readableDuration(podStateManager.lastSuccessfulCommunication)
+ omnipod_overview_last_connection.text = readableDuration(podStateManager.lastSuccessfulCommunication)
val lastConnectionColor =
if (omnipodPumpPlugin.isUnreachableAlertTimeoutExceeded(getPumpUnreachableTimeout().millis)) {
Color.RED
} else {
Color.WHITE
}
- omnipod_last_connection.setTextColor(lastConnectionColor)
+ omnipod_overview_last_connection.setTextColor(lastConnectionColor)
} else {
- omnipod_last_connection.setTextColor(Color.WHITE)
- omnipod_last_connection.text = if (podStateManager.hasPodState() && podStateManager.lastSuccessfulCommunication != null) {
+ omnipod_overview_last_connection.setTextColor(Color.WHITE)
+ omnipod_overview_last_connection.text = if (podStateManager.hasPodState() && podStateManager.lastSuccessfulCommunication != null) {
readableDuration(podStateManager.lastSuccessfulCommunication)
} else {
PLACEHOLDER
@@ -345,16 +339,16 @@ class OmnipodFragment : DaggerFragment() {
}
private fun updatePodStatus() {
- omnipod_pod_status.text = if (!podStateManager.hasPodState()) {
+ omnipod_overview_pod_status.text = if (!podStateManager.hasPodState()) {
resourceHelper.gs(R.string.omnipod_pod_status_no_active_pod)
} else if (!podStateManager.isPodActivationCompleted) {
if (!podStateManager.isPodInitialized) {
- resourceHelper.gs(R.string.omnipod_pod_status_waiting_for_pair_and_prime)
+ resourceHelper.gs(R.string.omnipod_pod_status_waiting_for_activation)
} else {
if (PodProgressStatus.ACTIVATION_TIME_EXCEEDED == podStateManager.podProgressStatus) {
resourceHelper.gs(R.string.omnipod_pod_status_activation_time_exceeded)
} else if (podStateManager.podProgressStatus.isBefore(PodProgressStatus.PRIMING_COMPLETED)) {
- resourceHelper.gs(R.string.omnipod_pod_status_waiting_for_pair_and_prime)
+ resourceHelper.gs(R.string.omnipod_pod_status_waiting_for_activation)
} else {
resourceHelper.gs(R.string.omnipod_pod_status_waiting_for_cannula_insertion)
}
@@ -380,12 +374,12 @@ class OmnipodFragment : DaggerFragment() {
} else {
Color.WHITE
}
- omnipod_pod_status.setTextColor(podStatusColor)
+ omnipod_overview_pod_status.setTextColor(podStatusColor)
}
private fun updateLastBolus() {
if (podStateManager.isPodActivationCompleted && podStateManager.hasLastBolus()) {
- var text = resourceHelper.gs(R.string.omnipod_last_bolus_value, omnipodPumpPlugin.model().determineCorrectBolusSize(podStateManager.lastBolusAmount), resourceHelper.gs(R.string.insulin_unit_shortname), readableDuration(podStateManager.lastBolusStartTime))
+ var text = resourceHelper.gs(R.string.omnipod_overview_last_bolus_value, omnipodPumpPlugin.model().determineCorrectBolusSize(podStateManager.lastBolusAmount), resourceHelper.gs(R.string.insulin_unit_shortname), readableDuration(podStateManager.lastBolusStartTime))
val textColor: Int
if (podStateManager.isLastBolusCertain) {
@@ -395,12 +389,12 @@ class OmnipodFragment : DaggerFragment() {
text += " (" + resourceHelper.gs(R.string.omnipod_uncertain) + ")"
}
- omnipod_last_bolus.text = text
- omnipod_last_bolus.setTextColor(textColor)
+ omnipod_overview_last_bolus.text = text
+ omnipod_overview_last_bolus.setTextColor(textColor)
} else {
- omnipod_last_bolus.text = PLACEHOLDER
- omnipod_last_bolus.setTextColor(Color.WHITE)
+ omnipod_overview_last_bolus.text = PLACEHOLDER
+ omnipod_overview_last_bolus.setTextColor(Color.WHITE)
}
}
@@ -416,7 +410,7 @@ class OmnipodFragment : DaggerFragment() {
var text: String
val textColor: Int
- text = resourceHelper.gs(R.string.omnipod_temp_basal_value, amount, dateUtil.timeString(startTime.millis), minutesRunning, duration.standardMinutes)
+ text = resourceHelper.gs(R.string.omnipod_overview_temp_basal_value, amount, dateUtil.timeString(startTime.millis), minutesRunning, duration.standardMinutes)
if (podStateManager.isTempBasalCertain) {
textColor = Color.WHITE
} else {
@@ -424,20 +418,20 @@ class OmnipodFragment : DaggerFragment() {
text += " (" + resourceHelper.gs(R.string.omnipod_uncertain) + ")"
}
- omnipod_temp_basal.text = text
- omnipod_temp_basal.setTextColor(textColor)
+ omnipod_overview_temp_basal.text = text
+ omnipod_overview_temp_basal.setTextColor(textColor)
} else {
- omnipod_temp_basal.text = PLACEHOLDER
- omnipod_temp_basal.setTextColor(Color.WHITE)
+ omnipod_overview_temp_basal.text = PLACEHOLDER
+ omnipod_overview_temp_basal.setTextColor(Color.WHITE)
}
}
private fun updateQueueStatus() {
if (isQueueEmpty()) {
- omnipod_queue.visibility = View.GONE
+ omnipod_overview_queue.visibility = View.GONE
} else {
- omnipod_queue.visibility = View.VISIBLE
- omnipod_queue.text = commandQueue.spannedStatus().toString()
+ omnipod_overview_queue.visibility = View.VISIBLE
+ omnipod_overview_queue.text = commandQueue.spannedStatus().toString()
}
}
@@ -451,62 +445,62 @@ class OmnipodFragment : DaggerFragment() {
}
private fun disablePodActionButtons() {
- omnipod_button_acknowledge_active_alerts.isEnabled = false
- omnipod_button_resume_delivery.isEnabled = false
- omnipod_button_suspend_delivery.isEnabled = false
- omnipod_button_set_time.isEnabled = false
- omnipod_button_refresh_status.isEnabled = false
- omnipod_button_pulse_log.isEnabled = false
+ omnipod_overview_button_acknowledge_active_alerts.isEnabled = false
+ omnipod_overview_button_resume_delivery.isEnabled = false
+ omnipod_overview_button_suspend_delivery.isEnabled = false
+ omnipod_overview_button_set_time.isEnabled = false
+ omnipod_overview_button_refresh_status.isEnabled = false
+ omnipod_overview_button_pulse_log.isEnabled = false
}
private fun updateRefreshStatusButton() {
- omnipod_button_refresh_status.isEnabled = podStateManager.isPodInitialized && podStateManager.podProgressStatus.isAtLeast(PodProgressStatus.PAIRING_COMPLETED)
+ omnipod_overview_button_refresh_status.isEnabled = podStateManager.isPodInitialized && podStateManager.podProgressStatus.isAtLeast(PodProgressStatus.PAIRING_COMPLETED)
&& rileyLinkServiceData.rileyLinkServiceState.isReady && isQueueEmpty()
}
private fun updateResumeDeliveryButton() {
if (podStateManager.isPodRunning && (podStateManager.isSuspended || commandQueue.isCustomCommandInQueue(CommandResumeDelivery::class.java))) {
- omnipod_button_resume_delivery.visibility = View.VISIBLE
- omnipod_button_resume_delivery.isEnabled = rileyLinkServiceData.rileyLinkServiceState.isReady && isQueueEmpty()
+ omnipod_overview_button_resume_delivery.visibility = View.VISIBLE
+ omnipod_overview_button_resume_delivery.isEnabled = rileyLinkServiceData.rileyLinkServiceState.isReady && isQueueEmpty()
} else {
- omnipod_button_resume_delivery.visibility = View.GONE
+ omnipod_overview_button_resume_delivery.visibility = View.GONE
}
}
private fun updateAcknowledgeAlertsButton() {
if (podStateManager.isPodRunning && (podStateManager.hasActiveAlerts() || commandQueue.isCustomCommandInQueue(CommandAcknowledgeAlerts::class.java))) {
- omnipod_button_acknowledge_active_alerts.visibility = View.VISIBLE
- omnipod_button_acknowledge_active_alerts.isEnabled = rileyLinkServiceData.rileyLinkServiceState.isReady && isQueueEmpty()
+ omnipod_overview_button_acknowledge_active_alerts.visibility = View.VISIBLE
+ omnipod_overview_button_acknowledge_active_alerts.isEnabled = rileyLinkServiceData.rileyLinkServiceState.isReady && isQueueEmpty()
} else {
- omnipod_button_acknowledge_active_alerts.visibility = View.GONE
+ omnipod_overview_button_acknowledge_active_alerts.visibility = View.GONE
}
}
private fun updateSuspendDeliveryButton() {
// If the Pod is currently suspended, we show the Resume delivery button instead.
if (omnipodManager.isSuspendDeliveryButtonEnabled && podStateManager.isPodRunning && (!podStateManager.isSuspended || commandQueue.isCustomCommandInQueue(CommandSuspendDelivery::class.java))) {
- omnipod_button_suspend_delivery.visibility = View.VISIBLE
- omnipod_button_suspend_delivery.isEnabled = podStateManager.isPodRunning && !podStateManager.isSuspended && rileyLinkServiceData.rileyLinkServiceState.isReady && isQueueEmpty()
+ omnipod_overview_button_suspend_delivery.visibility = View.VISIBLE
+ omnipod_overview_button_suspend_delivery.isEnabled = podStateManager.isPodRunning && !podStateManager.isSuspended && rileyLinkServiceData.rileyLinkServiceState.isReady && isQueueEmpty()
} else {
- omnipod_button_suspend_delivery.visibility = View.GONE
+ omnipod_overview_button_suspend_delivery.visibility = View.GONE
}
}
private fun updateSetTimeButton() {
if (podStateManager.isPodRunning && (podStateManager.timeDeviatesMoreThan(Duration.standardMinutes(5)) || commandQueue.isCustomCommandInQueue(CommandHandleTimeChange::class.java))) {
- omnipod_button_set_time.visibility = View.VISIBLE
- omnipod_button_set_time.isEnabled = !podStateManager.isSuspended && rileyLinkServiceData.rileyLinkServiceState.isReady && isQueueEmpty()
+ omnipod_overview_button_set_time.visibility = View.VISIBLE
+ omnipod_overview_button_set_time.isEnabled = !podStateManager.isSuspended && rileyLinkServiceData.rileyLinkServiceState.isReady && isQueueEmpty()
} else {
- omnipod_button_set_time.visibility = View.GONE
+ omnipod_overview_button_set_time.visibility = View.GONE
}
}
private fun updatePulseLogButton() {
if (omnipodManager.isPulseLogButtonEnabled) {
- omnipod_button_pulse_log.visibility = View.VISIBLE
- omnipod_button_pulse_log.isEnabled = podStateManager.isPodActivationCompleted && rileyLinkServiceData.rileyLinkServiceState.isReady && isQueueEmpty()
+ omnipod_overview_button_pulse_log.visibility = View.VISIBLE
+ omnipod_overview_button_pulse_log.isEnabled = podStateManager.isPodActivationCompleted && rileyLinkServiceData.rileyLinkServiceState.isReady && isQueueEmpty()
} else {
- omnipod_button_pulse_log.visibility = View.GONE
+ omnipod_overview_button_pulse_log.visibility = View.GONE
}
}
@@ -548,7 +542,7 @@ class OmnipodFragment : DaggerFragment() {
val isDaylightTime = timeZone.inDaylightTime(timeAsJavaData)
val locale = resources.configuration.locales.get(0)
val timeZoneDisplayName = timeZone.getDisplayName(isDaylightTime, TimeZone.SHORT, locale) + " " + timeZone.getDisplayName(isDaylightTime, TimeZone.LONG, locale)
- return resourceHelper.gs(R.string.omnipod_pod_time_with_timezone, dateUtil.dateAndTimeString(timeAsJavaData), timeZoneDisplayName)
+ return resourceHelper.gs(R.string.omnipod_time_with_timezone, dateUtil.dateAndTimeString(timeAsJavaData), timeZoneDisplayName)
}
private fun readableDuration(dateTime: DateTime): String {
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/PodHistoryActivity.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/PodHistoryActivity.java
index 6f3b627842..ad81185d5c 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/PodHistoryActivity.java
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/PodHistoryActivity.java
@@ -254,7 +254,7 @@ public class PodHistoryActivity extends NoSplashAppCompatActivity {
}
break;
- case FILL_CANNULA_SET_BASAL_PROFILE:
+ case INSERT_CANNULA:
case SET_BASAL_SCHEDULE: {
if (historyEntry.getData() != null) {
setProfileValue(historyEntry.getData(), valueView);
@@ -275,7 +275,7 @@ public class PodHistoryActivity extends NoSplashAppCompatActivity {
case GET_POD_STATUS:
case GET_POD_INFO:
case SET_TIME:
- case PAIR_AND_PRIME:
+ case ACTIVATE_POD:
case CANCEL_TEMPORARY_BASAL_BY_DRIVER:
case CANCEL_TEMPORARY_BASAL:
case CONFIGURE_ALERTS:
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/PodManagementActivity.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/PodManagementActivity.kt
index 47567445bb..27f730ef0d 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/PodManagementActivity.kt
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/PodManagementActivity.kt
@@ -4,11 +4,6 @@ import android.content.Intent
import android.os.Bundle
import android.view.View
import android.widget.LinearLayout
-import androidx.fragment.app.FragmentStatePagerAdapter
-import com.atech.android.library.wizardpager.WizardPagerActivity
-import com.atech.android.library.wizardpager.WizardPagerContext
-import com.atech.android.library.wizardpager.data.WizardPagerSettings
-import com.atech.android.library.wizardpager.defs.WizardStepsWayType
import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.activities.NoSplashAppCompatActivity
import info.nightscout.androidaps.interfaces.CommandQueueProvider
@@ -16,21 +11,17 @@ import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.pump.common.events.EventRileyLinkDeviceStatusChange
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.service.RileyLinkServiceData
import info.nightscout.androidaps.plugins.pump.omnipod.R
-import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.PodProgressStatus
import info.nightscout.androidaps.plugins.pump.omnipod.driver.manager.PodStateManager
import info.nightscout.androidaps.plugins.pump.omnipod.event.EventOmnipodPumpValuesChanged
import info.nightscout.androidaps.plugins.pump.omnipod.manager.AapsOmnipodManager
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.model.FullInitPodWizardModel
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.model.RemovePodWizardModel
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.model.ShortInitPodWizardModel
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.ReplacePodWizardActivity
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.ChangePodWizardActivity
import info.nightscout.androidaps.utils.FabricPrivacy
import info.nightscout.androidaps.utils.alertDialogs.OKDialog
import info.nightscout.androidaps.utils.extensions.plusAssign
import info.nightscout.androidaps.utils.resources.ResourceHelper
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable
-import kotlinx.android.synthetic.main.omnipod_pod_mgmt.*
+import kotlinx.android.synthetic.main.omnipod_pod_management.*
import javax.inject.Inject
/**
@@ -51,26 +42,18 @@ class PodManagementActivity : NoSplashAppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- setContentView(R.layout.omnipod_pod_mgmt)
+ setContentView(R.layout.omnipod_pod_management)
- initpod_init_pod.setOnClickListener {
- initPodAction()
- }
-
- initpod_replace_pod.setOnClickListener {
- val myIntent = Intent(this@PodManagementActivity, ReplacePodWizardActivity::class.java)
+ omnipod_pod_management_button_change_pod.setOnClickListener {
+ val myIntent = Intent(this@PodManagementActivity, ChangePodWizardActivity::class.java)
this@PodManagementActivity.startActivity(myIntent)
}
- initpod_remove_pod.setOnClickListener {
- deactivatePodAction()
- }
-
- initpod_reset_pod.setOnClickListener {
+ omnipod_pod_management_button_discard_pod.setOnClickListener {
discardPodAction()
}
- initpod_pod_history.setOnClickListener {
+ omnipod_pod_management_button_pod_history.setOnClickListener {
showPodHistory()
}
}
@@ -94,57 +77,10 @@ class PodManagementActivity : NoSplashAppCompatActivity() {
disposables.clear()
}
- private fun initPodAction() {
-
- val pagerSettings = WizardPagerSettings()
- pagerSettings.setWizardStepsWayType(WizardStepsWayType.CancelNext)
- pagerSettings.setFinishStringResourceId(R.string.close)
- pagerSettings.setFinishButtonBackground(R.drawable.finish_background)
- pagerSettings.setNextButtonBackground(R.drawable.selectable_item_background)
- pagerSettings.setBackStringResourceId(R.string.cancel)
- pagerSettings.pagerAdapterBehavior = FragmentStatePagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT
-
- val wizardPagerContext = WizardPagerContext.getInstance()
-
- wizardPagerContext.clearContext()
- wizardPagerContext.pagerSettings = pagerSettings
- val isFullInit = !podStateManager.isPodInitialized || podStateManager.podProgressStatus.isBefore(PodProgressStatus.PRIMING_COMPLETED)
- if (isFullInit) {
- wizardPagerContext.wizardModel = FullInitPodWizardModel(applicationContext)
- } else {
- wizardPagerContext.wizardModel = ShortInitPodWizardModel(applicationContext)
- }
-
- val myIntent = Intent(this@PodManagementActivity, WizardPagerActivity::class.java)
- this@PodManagementActivity.startActivity(myIntent)
- }
-
- private fun deactivatePodAction() {
- val pagerSettings = WizardPagerSettings()
-
- pagerSettings.setWizardStepsWayType(WizardStepsWayType.CancelNext)
- pagerSettings.setFinishStringResourceId(R.string.close)
- pagerSettings.setFinishButtonBackground(R.drawable.finish_background)
- pagerSettings.setNextButtonBackground(R.drawable.selectable_item_background)
- pagerSettings.setBackStringResourceId(R.string.cancel)
- pagerSettings.pagerAdapterBehavior = FragmentStatePagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT
-
- val wizardPagerContext = WizardPagerContext.getInstance();
-
- wizardPagerContext.clearContext()
- wizardPagerContext.pagerSettings = pagerSettings
- wizardPagerContext.wizardModel = RemovePodWizardModel(applicationContext)
-
- val myIntent = Intent(this@PodManagementActivity, WizardPagerActivity::class.java)
- this@PodManagementActivity.startActivity(myIntent)
-
- }
-
private fun discardPodAction() {
OKDialog.showConfirmation(this,
- resourceHelper.gs(R.string.omnipod_discard_pod_state_confirmation), Thread {
+ resourceHelper.gs(R.string.omnipod_pod_management_discard_pod_state_confirmation), Thread {
aapsOmnipodManager.discardPodState()
- rxBus.send(EventOmnipodPumpValuesChanged())
})
}
@@ -153,20 +89,17 @@ class PodManagementActivity : NoSplashAppCompatActivity() {
}
private fun refreshButtons() {
- initpod_init_pod.isEnabled = !podStateManager.isPodActivationCompleted
- initpod_remove_pod.isEnabled = podStateManager.isPodInitialized
- initpod_reset_pod.isEnabled = podStateManager.hasPodState()
+ omnipod_pod_management_button_change_pod.isEnabled = true
+ omnipod_pod_management_button_discard_pod.isEnabled = podStateManager.hasPodState()
- val waitingForRlView = findViewById(R.id.initpod_waiting_for_rl_layout)
+ val waitingForRlLayout = findViewById(R.id.omnipod_pod_management_waiting_for_rl_layout)
if (rileyLinkServiceData.rileyLinkServiceState.isReady) {
- waitingForRlView.visibility = View.GONE
+ waitingForRlLayout.visibility = View.GONE
} else {
- // if rileylink is not running we disable all operations that require a RL connection
- waitingForRlView.visibility = View.VISIBLE
- initpod_init_pod.isEnabled = false
- initpod_remove_pod.isEnabled = false
- initpod_reset_pod.isEnabled = false
+ waitingForRlLayout.visibility = View.VISIBLE
+ omnipod_pod_management_button_change_pod.isEnabled = false
+ omnipod_pod_management_button_discard_pod.isEnabled = false
}
}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/ReplacePodWizardActivity.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/ChangePodWizardActivity.kt
similarity index 71%
rename from omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/ReplacePodWizardActivity.kt
rename to omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/ChangePodWizardActivity.kt
index 1912162bff..bfdc60932a 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/ReplacePodWizardActivity.kt
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/ChangePodWizardActivity.kt
@@ -1,4 +1,4 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2
+package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard
import android.app.AlertDialog
import android.os.Bundle
@@ -11,7 +11,7 @@ import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.PodProg
import info.nightscout.androidaps.plugins.pump.omnipod.driver.manager.PodStateManager
import javax.inject.Inject
-class ReplacePodWizardActivity : NoSplashAppCompatActivity() {
+class ChangePodWizardActivity : NoSplashAppCompatActivity() {
companion object {
const val KEY_START_DESTINATION = "startDestination"
}
@@ -25,6 +25,8 @@ class ReplacePodWizardActivity : NoSplashAppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
+ setContentView(R.layout.omnipod_change_pod_wizard_activity)
+
startDestination = savedInstanceState?.getInt(KEY_START_DESTINATION, R.id.deactivatePodInfoFragment)
?: if (!podStateManager.isPodActivationCompleted) {
if (!podStateManager.isPodInitialized || podStateManager.podProgressStatus.isBefore(PodProgressStatus.PRIMING_COMPLETED)) {
@@ -36,29 +38,16 @@ class ReplacePodWizardActivity : NoSplashAppCompatActivity() {
R.id.deactivatePodInfoFragment
}
- setContentView(R.layout.omnipod_replace_pod_wizard_activity)
-
- val navController = getNavController()
-
- if (savedInstanceState == null) {
- val navInflater = navController.navInflater
- val graph = navInflater.inflate(R.navigation.omnipod_replace_pod_wizard_navigation_graph)
-
- graph.startDestination = startDestination
- navController.graph = graph
- }
-
- navController.addOnDestinationChangedListener { controller, destination, _ ->
- if (destination.id == R.id.deactivatePodInfoFragment) {
- startDestination = R.id.deactivatePodInfoFragment
- controller.graph.startDestination = R.id.deactivatePodInfoFragment
- }
- }
+ setStartDestination(startDestination)
}
- override fun onSaveInstanceState(outState: Bundle) {
- super.onSaveInstanceState(outState)
- outState.putInt(KEY_START_DESTINATION, startDestination)
+ fun setStartDestination(@IdRes startDestination: Int) {
+ this.startDestination = startDestination
+ val navController = getNavController()
+ val navInflater = navController.navInflater
+ val graph = navInflater.inflate(R.navigation.omnipod_change_pod_wizard_navigation_graph)
+ graph.startDestination = startDestination
+ navController.graph = graph
}
override fun onBackPressed() {
@@ -71,14 +60,19 @@ class ReplacePodWizardActivity : NoSplashAppCompatActivity() {
} else {
AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_alert)
- .setTitle(getString(R.string.omnipod_replace_pod_wizard_replace_pod))
- .setMessage(getString(R.string.omnipod_replace_pod_wizard_exit_confirmation))
+ .setTitle(getString(R.string.omnipod_change_pod_wizard_change_pod))
+ .setMessage(getString(R.string.omnipod_change_pod_wizard_exit_confirmation))
.setPositiveButton(getString(R.string.omnipod_yes)) { _, _ -> finish() }
.setNegativeButton(getString(R.string.omnipod_no), null)
.show()
}
}
+ override fun onSaveInstanceState(outState: Bundle) {
+ super.onSaveInstanceState(outState)
+ outState.putInt(KEY_START_DESTINATION, startDestination)
+ }
+
private fun getNavController(): NavController =
(supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment).navController
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/defs/PodActionType.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/defs/PodActionType.java
deleted file mode 100644
index 48380638c2..0000000000
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/defs/PodActionType.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.defs;
-
-public enum PodActionType {
- INIT_POD,
- DEACTIVATE_POD,
- DISCARD_POD
-}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/fragment/FragmentBase.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/ChangePodWizardFragmentBase.kt
similarity index 55%
rename from omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/fragment/FragmentBase.kt
rename to omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/ChangePodWizardFragmentBase.kt
index 9b6cfa57bb..5c5c1befef 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/fragment/FragmentBase.kt
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/ChangePodWizardFragmentBase.kt
@@ -1,4 +1,4 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.fragment
+package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment
import android.content.res.ColorStateList
import android.os.Bundle
@@ -8,23 +8,24 @@ import android.view.ViewGroup
import android.view.ViewStub
import androidx.annotation.IdRes
import androidx.annotation.LayoutRes
+import androidx.annotation.StringRes
import androidx.navigation.fragment.findNavController
import dagger.android.support.DaggerFragment
import info.nightscout.androidaps.plugins.pump.omnipod.R
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.ReplacePodWizardActivity
-import kotlinx.android.synthetic.main.omnipod_replace_pod_wizard_base_fragment.*
-import kotlinx.android.synthetic.main.omnipod_replace_pod_wizard_nav_buttons.*
-import kotlinx.android.synthetic.main.omnipod_replace_pod_wizard_progress_indication.*
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.ChangePodWizardActivity
+import kotlinx.android.synthetic.main.omnipod_change_pod_wizard_base_fragment.*
+import kotlinx.android.synthetic.main.omnipod_change_pod_wizard_nav_buttons.*
+import kotlinx.android.synthetic.main.omnipod_change_pod_wizard_progress_indication.*
import kotlin.math.roundToInt
-abstract class FragmentBase : DaggerFragment() {
+abstract class ChangePodWizardFragmentBase : DaggerFragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
- val baseView = inflater.inflate(R.layout.omnipod_replace_pod_wizard_base_fragment, container, false)
- val contentView = baseView.findViewById(R.id.omnipod_wizard_base_fragment_content)
+ val baseView = inflater.inflate(R.layout.omnipod_change_pod_wizard_base_fragment, container, false)
+ val contentView = baseView.findViewById(R.id.omnipod_change_pod_wizard_base_fragment_content)
contentView?.let {
it.layoutResource = getLayoutId()
it.inflate()
@@ -35,18 +36,18 @@ abstract class FragmentBase : DaggerFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- omnipod_wizard_base_fragment_title.text = getTitle()
+ omnipod_change_pod_wizard_base_fragment_title.setText(getTitleId())
val nextPage = getNextPageActionId()
if (nextPage == null) {
- omnipod_replace_pod_wizard_button_next.text = getString(R.string.omnipod_replace_pod_wizard_button_finish)
- omnipod_replace_pod_wizard_button_next.backgroundTintList = ColorStateList.valueOf(resources.getColor(R.color.review_green, context?.theme))
+ omnipod_change_pod_wizard_button_next.text = getString(R.string.omnipod_change_pod_wizard_button_finish)
+ omnipod_change_pod_wizard_button_next.backgroundTintList = ColorStateList.valueOf(resources.getColor(R.color.review_green, context?.theme))
}
updateProgressIndication()
- omnipod_replace_pod_wizard_button_next.setOnClickListener {
+ omnipod_change_pod_wizard_button_next.setOnClickListener {
if (nextPage == null) {
activity?.finish()
} else {
@@ -54,14 +55,16 @@ abstract class FragmentBase : DaggerFragment() {
}
}
- omnipod_replace_pod_wizard_button_cancel.setOnClickListener {
- (activity as? ReplacePodWizardActivity)?.exitActivityAfterConfirmation()
+ omnipod_change_pod_wizard_button_cancel.setOnClickListener {
+ (activity as? ChangePodWizardActivity)?.exitActivityAfterConfirmation()
}
}
private fun updateProgressIndication() {
+ val findNavController = findNavController()
+ val graph = findNavController.graph
val totalFragments =
- when (findNavController().graph.startDestination) {
+ when (graph.startDestination) {
R.id.fillPodInfoFragment -> {
8 - 3
}
@@ -78,16 +81,17 @@ abstract class FragmentBase : DaggerFragment() {
val currentFragment = getIndex() - (8 - totalFragments)
val progressPercentage = (currentFragment / totalFragments.toDouble() * 100).roundToInt()
- omnipod_replace_pod_wizard_progress_indication.progress = progressPercentage
+ omnipod_change_pod_wizard_progress_indication.progress = progressPercentage
}
@LayoutRes
- abstract fun getLayoutId(): Int
+ protected abstract fun getLayoutId(): Int
@IdRes
- abstract fun getNextPageActionId(): Int?
+ protected abstract fun getNextPageActionId(): Int?
- abstract fun getTitle(): String
+ @StringRes
+ protected abstract fun getTitleId(): Int
- abstract fun getIndex(): Int
+ protected abstract fun getIndex(): Int
}
\ No newline at end of file
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/action/ActionFragmentBase.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/action/ActionFragmentBase.kt
new file mode 100644
index 0000000000..d640cfedbd
--- /dev/null
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/action/ActionFragmentBase.kt
@@ -0,0 +1,80 @@
+package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.action
+
+import android.os.Bundle
+import android.view.View
+import androidx.annotation.LayoutRes
+import androidx.annotation.StringRes
+import androidx.lifecycle.Observer
+import info.nightscout.androidaps.plugins.pump.omnipod.R
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.ChangePodWizardFragmentBase
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.viewmodel.ActionViewModelBase
+import info.nightscout.androidaps.utils.extensions.toVisibility
+import kotlinx.android.synthetic.main.omnipod_change_pod_wizard_action_page_fragment.*
+import kotlinx.android.synthetic.main.omnipod_change_pod_wizard_nav_buttons.*
+
+abstract class ActionFragmentBase : ChangePodWizardFragmentBase() {
+ protected lateinit var viewModel: ActionViewModelBase
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ omnipod_change_pod_wizard_button_next.isEnabled = false
+ omnipod_change_pod_wizard_action_page_text.setText(getTextId())
+
+ omnipod_change_pod_wizard_button_retry.setOnClickListener { viewModel.executeAction() }
+
+ viewModel.isActionExecutingLiveData.observe(viewLifecycleOwner, Observer { isExecuting ->
+ if (isExecuting) {
+ omnipod_change_pod_wizard_action_error.visibility = View.GONE
+ omnipod_change_pod_wizard_button_deactivate_pod.visibility = View.GONE
+ omnipod_change_pod_wizard_button_discard_pod.visibility = View.GONE
+ omnipod_change_pod_wizard_button_retry.visibility = View.GONE
+ }
+ omnipod_change_pod_wizard_action_progress_indication.visibility = isExecuting.toVisibility()
+ omnipod_change_pod_wizard_button_cancel.isEnabled = !isExecuting
+ })
+
+ viewModel.actionResultLiveData.observe(viewLifecycleOwner, Observer { result ->
+ result?.let {
+ val isExecuting = isActionExecuting()
+
+ omnipod_change_pod_wizard_button_next.isEnabled = result.success
+ omnipod_change_pod_wizard_action_success.visibility = result.success.toVisibility()
+ omnipod_change_pod_wizard_action_error.visibility = (!isExecuting && !result.success).toVisibility()
+ omnipod_change_pod_wizard_button_retry.visibility = (!isExecuting && !result.success).toVisibility()
+
+ if (result.success) {
+ onActionSuccess()
+ } else {
+ omnipod_change_pod_wizard_action_error.text = result.comment
+ onActionFailure()
+ }
+ }
+ })
+
+ if (savedInstanceState == null && !isActionExecuting()) {
+ viewModel.executeAction()
+ }
+
+ }
+
+ protected fun isActionExecuting() = viewModel.isActionExecutingLiveData.value!!
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ viewModel.isActionExecutingLiveData.removeObservers(viewLifecycleOwner)
+ viewModel.actionResultLiveData.removeObservers(viewLifecycleOwner)
+ }
+
+ fun onActionSuccess() {}
+
+ open fun onActionFailure() {}
+
+ @StringRes
+ abstract fun getTextId(): Int
+
+ @LayoutRes
+ override fun getLayoutId(): Int {
+ return R.layout.omnipod_change_pod_wizard_action_page_fragment
+ }
+}
\ No newline at end of file
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/action/DeactivatePodActionFragment.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/action/DeactivatePodActionFragment.kt
new file mode 100644
index 0000000000..202889fdc0
--- /dev/null
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/action/DeactivatePodActionFragment.kt
@@ -0,0 +1,64 @@
+package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.action
+
+import android.app.AlertDialog
+import android.os.Bundle
+import android.view.View
+import androidx.annotation.IdRes
+import androidx.annotation.StringRes
+import androidx.fragment.app.viewModels
+import androidx.lifecycle.ViewModelProvider
+import androidx.navigation.fragment.findNavController
+import info.nightscout.androidaps.plugins.pump.omnipod.R
+import info.nightscout.androidaps.plugins.pump.omnipod.dagger.OmnipodPluginQualifier
+import info.nightscout.androidaps.plugins.pump.omnipod.manager.AapsOmnipodManager
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.viewmodel.DeactivatePodActionViewModel
+import info.nightscout.androidaps.utils.extensions.toVisibility
+import kotlinx.android.synthetic.main.omnipod_change_pod_wizard_action_page_fragment.*
+import javax.inject.Inject
+
+class DeactivatePodActionFragment : ActionFragmentBase() {
+ @Inject
+ @OmnipodPluginQualifier
+ lateinit var viewModelFactory: ViewModelProvider.Factory
+
+ @Inject
+ lateinit var aapsOmnipodManager: AapsOmnipodManager
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ val vm: DeactivatePodActionViewModel by viewModels { viewModelFactory }
+ this.viewModel = vm
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ omnipod_change_pod_wizard_button_discard_pod.setOnClickListener {
+ AlertDialog.Builder(context)
+ .setIcon(android.R.drawable.ic_dialog_alert)
+ .setTitle(getString(R.string.omnipod_change_pod_wizard_discard_pod))
+ .setMessage(getString(R.string.omnipod_change_pod_wizard_discard_pod_confirmation))
+ .setPositiveButton(getString(R.string.omnipod_yes)) { _, _ ->
+ aapsOmnipodManager.discardPodState()
+ findNavController().navigate(R.id.action_deactivatePodActionFragment_to_podDiscardedInfoFragment)
+ }
+ .setNegativeButton(getString(R.string.omnipod_no), null)
+ .show()
+ }
+ }
+
+ override fun onActionFailure() {
+ omnipod_change_pod_wizard_button_discard_pod.visibility = (!isActionExecuting()).toVisibility()
+ }
+
+ @StringRes
+ override fun getTitleId(): Int = R.string.omnipod_change_pod_wizard_deactivating_pod_title
+
+ @StringRes
+ override fun getTextId(): Int = R.string.omnipod_change_pod_wizard_deactivating_pod_text
+
+ @IdRes
+ override fun getNextPageActionId(): Int = R.id.action_deactivatePodActionFragment_to_podDeactivatedInfoFragment
+
+ override fun getIndex(): Int = 2
+}
\ No newline at end of file
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/action/InsertCannulaActionFragment.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/action/InsertCannulaActionFragment.kt
new file mode 100644
index 0000000000..ef9d2e5d39
--- /dev/null
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/action/InsertCannulaActionFragment.kt
@@ -0,0 +1,61 @@
+package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.action
+
+import android.os.Bundle
+import android.view.View
+import androidx.annotation.IdRes
+import androidx.annotation.StringRes
+import androidx.fragment.app.viewModels
+import androidx.lifecycle.ViewModelProvider
+import androidx.navigation.fragment.findNavController
+import info.nightscout.androidaps.plugins.pump.omnipod.R
+import info.nightscout.androidaps.plugins.pump.omnipod.dagger.OmnipodPluginQualifier
+import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.PodProgressStatus
+import info.nightscout.androidaps.plugins.pump.omnipod.driver.manager.PodStateManager
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.ChangePodWizardActivity
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.viewmodel.InsertCannulaActionViewModel
+import kotlinx.android.synthetic.main.omnipod_change_pod_wizard_action_page_fragment.*
+import javax.inject.Inject
+
+class InsertCannulaActionFragment : ActionFragmentBase() {
+ @Inject
+ @OmnipodPluginQualifier
+ lateinit var viewModelFactory: ViewModelProvider.Factory
+
+ @Inject
+ lateinit var podStateManager: PodStateManager
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ val vm: InsertCannulaActionViewModel by viewModels { viewModelFactory }
+ this.viewModel = vm
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ omnipod_change_pod_wizard_button_deactivate_pod.setOnClickListener {
+ (activity as? ChangePodWizardActivity)?.setStartDestination(R.id.deactivatePodInfoFragment)
+ findNavController().navigate(R.id.deactivatePodInfoFragment)
+ }
+ }
+
+ override fun onActionFailure() {
+ if (podStateManager.isPodInitialized && podStateManager.podProgressStatus == PodProgressStatus.ACTIVATION_TIME_EXCEEDED) {
+ omnipod_change_pod_wizard_action_error.setText(R.string.omnipod_error_pod_fault_activation_time_exceeded)
+ omnipod_change_pod_wizard_button_retry.visibility = View.GONE
+ omnipod_change_pod_wizard_button_deactivate_pod.visibility = View.VISIBLE
+ }
+ }
+
+ @StringRes
+ override fun getTitleId(): Int = R.string.omnipod_change_pod_wizard_insert_cannula_title
+
+ @StringRes
+ override fun getTextId(): Int = R.string.omnipod_change_pod_wizard_insert_cannula_text
+
+ @IdRes
+ override fun getNextPageActionId(): Int = R.id.action_insertCannulaActionFragment_to_PodChangedInfoFragment
+
+ override fun getIndex(): Int = 7
+}
\ No newline at end of file
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/action/PairAndPrimePodActionFragment.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/action/PairAndPrimePodActionFragment.kt
new file mode 100644
index 0000000000..f2054bc7ee
--- /dev/null
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/action/PairAndPrimePodActionFragment.kt
@@ -0,0 +1,61 @@
+package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.action
+
+import android.os.Bundle
+import android.view.View
+import androidx.annotation.IdRes
+import androidx.annotation.StringRes
+import androidx.fragment.app.viewModels
+import androidx.lifecycle.ViewModelProvider
+import androidx.navigation.fragment.findNavController
+import info.nightscout.androidaps.plugins.pump.omnipod.R
+import info.nightscout.androidaps.plugins.pump.omnipod.dagger.OmnipodPluginQualifier
+import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.PodProgressStatus
+import info.nightscout.androidaps.plugins.pump.omnipod.driver.manager.PodStateManager
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.ChangePodWizardActivity
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.viewmodel.PairAndPrimePodActionViewModel
+import kotlinx.android.synthetic.main.omnipod_change_pod_wizard_action_page_fragment.*
+import javax.inject.Inject
+
+class PairAndPrimePodActionFragment : ActionFragmentBase() {
+ @Inject
+ @OmnipodPluginQualifier
+ lateinit var viewModelFactory: ViewModelProvider.Factory
+
+ @Inject
+ lateinit var podStateManager: PodStateManager
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ val vm: PairAndPrimePodActionViewModel by viewModels { viewModelFactory }
+ this.viewModel = vm
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ omnipod_change_pod_wizard_button_deactivate_pod.setOnClickListener {
+ (activity as? ChangePodWizardActivity)?.setStartDestination(R.id.deactivatePodInfoFragment)
+ findNavController().navigate(R.id.deactivatePodInfoFragment)
+ }
+ }
+
+ override fun onActionFailure() {
+ if (podStateManager.isPodInitialized && podStateManager.podProgressStatus == PodProgressStatus.ACTIVATION_TIME_EXCEEDED) {
+ omnipod_change_pod_wizard_action_error.setText(R.string.omnipod_error_pod_fault_activation_time_exceeded)
+ omnipod_change_pod_wizard_button_retry.visibility = View.GONE
+ omnipod_change_pod_wizard_button_deactivate_pod.visibility = View.VISIBLE
+ }
+ }
+
+ @StringRes
+ override fun getTitleId(): Int = R.string.omnipod_change_pod_wizard_activate_pod_title
+
+ @StringRes
+ override fun getTextId(): Int = R.string.omnipod_change_pod_wizard_activate_pod_text
+
+ @IdRes
+ override fun getNextPageActionId(): Int = R.id.action_pairAndPrimePodActionFragment_to_attachPodInfoFragment
+
+ override fun getIndex(): Int = 5
+}
\ No newline at end of file
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/fragment/info/AttachPodInfoFragment.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/AttachPodInfoFragment.kt
similarity index 51%
rename from omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/fragment/info/AttachPodInfoFragment.kt
rename to omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/AttachPodInfoFragment.kt
index 0ddc5fe9fa..53eb8c4806 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/fragment/info/AttachPodInfoFragment.kt
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/AttachPodInfoFragment.kt
@@ -1,13 +1,18 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.fragment.info
+package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.info
+import androidx.annotation.IdRes
+import androidx.annotation.StringRes
import info.nightscout.androidaps.plugins.pump.omnipod.R
class AttachPodInfoFragment : InfoFragmentBase() {
- override fun getText(): String = "Attach the Pod"
+ @StringRes
+ override fun getTitleId(): Int = R.string.omnipod_change_pod_wizard_attach_pod_title
+ @StringRes
+ override fun getTextId(): Int = R.string.omnipod_change_pod_wizard_attach_pod_text
+
+ @IdRes
override fun getNextPageActionId(): Int = R.id.action_attachPodInfoFragment_to_insertCannulaActionFragment
- override fun getTitle(): String = "Attach Pod"
-
override fun getIndex(): Int = 6
}
\ No newline at end of file
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/fragment/info/DeactivatePodInfoFragment.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/DeactivatePodInfoFragment.kt
similarity index 51%
rename from omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/fragment/info/DeactivatePodInfoFragment.kt
rename to omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/DeactivatePodInfoFragment.kt
index ee80eda785..824a2e44b2 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/fragment/info/DeactivatePodInfoFragment.kt
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/DeactivatePodInfoFragment.kt
@@ -1,13 +1,18 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.fragment.info
+package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.info
+import androidx.annotation.IdRes
+import androidx.annotation.StringRes
import info.nightscout.androidaps.plugins.pump.omnipod.R
class DeactivatePodInfoFragment : InfoFragmentBase() {
- override fun getText(): String = "Deactivate the Pod"
+ @StringRes
+ override fun getTitleId(): Int = R.string.omnipod_change_pod_wizard_deactivate_pod_title
+ @StringRes
+ override fun getTextId(): Int = R.string.omnipod_change_pod_wizard_deactivate_pod_text
+
+ @IdRes
override fun getNextPageActionId(): Int = R.id.action_deactivatePodInfoFragment_to_deactivatePodActionFragment
- override fun getTitle(): String = "Deactivate Pod"
-
override fun getIndex(): Int = 1
}
\ No newline at end of file
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/fragment/info/FillPodInfoFragment.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/FillPodInfoFragment.kt
similarity index 52%
rename from omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/fragment/info/FillPodInfoFragment.kt
rename to omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/FillPodInfoFragment.kt
index 921e4f1406..1c7e2f24d8 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/fragment/info/FillPodInfoFragment.kt
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/FillPodInfoFragment.kt
@@ -1,13 +1,18 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.fragment.info
+package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.info
+import androidx.annotation.IdRes
+import androidx.annotation.StringRes
import info.nightscout.androidaps.plugins.pump.omnipod.R
class FillPodInfoFragment : InfoFragmentBase() {
- override fun getText(): String = "Fill the Pod"
+ @StringRes
+ override fun getTitleId(): Int = R.string.omnipod_change_pod_wizard_fill_pod_title
+ @StringRes
+ override fun getTextId(): Int = R.string.omnipod_change_pod_wizard_fill_pod_text
+
+ @IdRes
override fun getNextPageActionId(): Int = R.id.action_fillPodInfoFragment_to_pairAndPrimePodActionFragment
- override fun getTitle(): String = "Fill new Pod"
-
override fun getIndex(): Int = 4
}
\ No newline at end of file
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/InfoFragmentBase.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/InfoFragmentBase.kt
new file mode 100644
index 0000000000..1a69cbd701
--- /dev/null
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/InfoFragmentBase.kt
@@ -0,0 +1,27 @@
+package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.info
+
+import android.os.Bundle
+import android.view.View
+import androidx.annotation.LayoutRes
+import androidx.annotation.StringRes
+import info.nightscout.androidaps.plugins.pump.omnipod.R
+import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.ChangePodWizardFragmentBase
+import kotlinx.android.synthetic.main.omnipod_change_pod_wizard_info_page_fragment.*
+
+abstract class InfoFragmentBase : ChangePodWizardFragmentBase() {
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ omnipod_change_pod_wizard_info_page_text.setText(getTextId())
+ }
+
+ @StringRes
+ abstract fun getTextId(): Int
+
+ @LayoutRes
+ override fun getLayoutId(): Int {
+ return R.layout.omnipod_change_pod_wizard_info_page_fragment
+ }
+
+}
\ No newline at end of file
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/PodChangedInfoFragment.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/PodChangedInfoFragment.kt
new file mode 100644
index 0000000000..d0f6cf0561
--- /dev/null
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/PodChangedInfoFragment.kt
@@ -0,0 +1,18 @@
+package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.info
+
+import androidx.annotation.IdRes
+import androidx.annotation.StringRes
+import info.nightscout.androidaps.plugins.pump.omnipod.R
+
+class PodChangedInfoFragment : InfoFragmentBase() {
+ @StringRes
+ override fun getTitleId(): Int = R.string.omnipod_change_pod_wizard_pod_changed_title
+
+ @StringRes
+ override fun getTextId(): Int = R.string.omnipod_change_pod_wizard_pod_changed_text
+
+ @IdRes
+ override fun getNextPageActionId(): Int? = null
+
+ override fun getIndex(): Int = 8
+}
\ No newline at end of file
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/fragment/info/PodDeactivatedInfoFragment.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/PodDeactivatedInfoFragment.kt
similarity index 51%
rename from omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/fragment/info/PodDeactivatedInfoFragment.kt
rename to omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/PodDeactivatedInfoFragment.kt
index 41cecf28fe..5b3aef7870 100644
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/fragment/info/PodDeactivatedInfoFragment.kt
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/PodDeactivatedInfoFragment.kt
@@ -1,13 +1,18 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.fragment.info
+package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.info
+import androidx.annotation.IdRes
+import androidx.annotation.StringRes
import info.nightscout.androidaps.plugins.pump.omnipod.R
class PodDeactivatedInfoFragment : InfoFragmentBase() {
- override fun getText(): String = "Please remove the Pod from your body"
+ @StringRes
+ override fun getTitleId(): Int = R.string.omnipod_change_pod_wizard_pod_deactivated_title
+ @StringRes
+ override fun getTextId(): Int = R.string.omnipod_change_pod_wizard_pod_deactivated_text
+
+ @IdRes
override fun getNextPageActionId(): Int = R.id.action_podDeactivatedInfoFragment_to_fillPodInfoFragment
- override fun getTitle(): String = "Remove Pod"
-
override fun getIndex(): Int = 3
}
\ No newline at end of file
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/PodDiscardedInfoFragment.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/PodDiscardedInfoFragment.kt
new file mode 100644
index 0000000000..1e295f5331
--- /dev/null
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/fragment/info/PodDiscardedInfoFragment.kt
@@ -0,0 +1,18 @@
+package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.info
+
+import androidx.annotation.IdRes
+import androidx.annotation.StringRes
+import info.nightscout.androidaps.plugins.pump.omnipod.R
+
+class PodDiscardedInfoFragment : InfoFragmentBase() {
+ @StringRes
+ override fun getTitleId(): Int = R.string.omnipod_change_pod_wizard_pod_discarded_title
+
+ @StringRes
+ override fun getTextId(): Int = R.string.omnipod_change_pod_wizard_pod_discarded_text
+
+ @IdRes
+ override fun getNextPageActionId(): Int = R.id.action_podDiscardedInfoFragment_to_fillPodInfoFragment
+
+ override fun getIndex(): Int = 3
+}
\ No newline at end of file
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/initpod/InitActionFragment.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/initpod/InitActionFragment.java
deleted file mode 100644
index e05c86ec5b..0000000000
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/initpod/InitActionFragment.java
+++ /dev/null
@@ -1,223 +0,0 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.initpod;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.content.pm.ActivityInfo;
-import android.graphics.Color;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.CheckBox;
-import android.widget.LinearLayout;
-import android.widget.ProgressBar;
-import android.widget.TextView;
-
-import androidx.fragment.app.FragmentActivity;
-
-import com.atech.android.library.wizardpager.util.WizardPagesUtil;
-import com.tech.freak.wizardpager.model.Page;
-import com.tech.freak.wizardpager.ui.PageFragmentCallbacks;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import javax.inject.Inject;
-
-import dagger.android.HasAndroidInjector;
-import dagger.android.support.DaggerFragment;
-import info.nightscout.androidaps.data.PumpEnactResult;
-import info.nightscout.androidaps.plugins.pump.omnipod.R;
-import info.nightscout.androidaps.plugins.pump.omnipod.definition.PodInitActionType;
-import info.nightscout.androidaps.plugins.pump.omnipod.definition.PodInitReceiver;
-
-/**
- * Created by andy on 12/11/2019
- */
-public class InitActionFragment extends DaggerFragment implements PodInitReceiver {
- protected static final String ARG_KEY = "key";
- protected static final String ARG_POD_INIT_ACTION_TYPE = "podInitActionType";
-
- private static boolean isFirstView;
-
- private PageFragmentCallbacks mCallbacks;
- private String mKey;
- protected InitActionPage mPage;
-
- protected ProgressBar progressBar;
- protected TextView errorView;
- protected Button retryButton;
-
- PodInitActionType podInitActionType;
- private List children;
- protected Map mapCheckBoxes;
-
- protected PumpEnactResult callResult;
-
- @Inject HasAndroidInjector injector;
-
- public static InitActionFragment create(String key, PodInitActionType podInitActionType) {
- Bundle args = new Bundle();
- args.putString(ARG_KEY, key);
- args.putSerializable(ARG_POD_INIT_ACTION_TYPE, podInitActionType);
-
- InitActionFragment fragment = new InitActionFragment();
- fragment.setArguments(args);
- return fragment;
- }
-
- @SuppressLint("SourceLockedOrientationActivity")
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- if (savedInstanceState == null) {
- isFirstView = true;
- }
-
- getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
-
- Bundle args = getArguments();
- mKey = args.getString(ARG_KEY);
- podInitActionType = (PodInitActionType) args.getSerializable(ARG_POD_INIT_ACTION_TYPE);
- mPage = (InitActionPage) mCallbacks.onGetPage(mKey);
- }
-
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- super.onCreateView(inflater, container, savedInstanceState);
-
- View rootView = inflater.inflate(R.layout.omnipod_initpod_init_action, container, false);
- WizardPagesUtil.setTitle(mPage, rootView);
-
- this.progressBar = rootView.findViewById(R.id.initAction_progressBar);
- this.errorView = rootView.findViewById(R.id.initAction_textErrorMessage);
-
- TextView headerView = rootView.findViewById(R.id.initAction_header);
-
- LinearLayout linearLayout = rootView.findViewById(R.id.initAction_ItemsHolder);
-
- children = podInitActionType.getChildren();
- mapCheckBoxes = new HashMap<>();
-
- for (PodInitActionType child : children) {
- CheckBox checkBox1 = new CheckBox(getContext());
- checkBox1.setText(child.getResourceId());
- checkBox1.setClickable(false);
- checkBox1.setTextAppearance(R.style.WizardPagePodListItem);
- checkBox1.setHeight(120);
- checkBox1.setTextSize(15);
- checkBox1.setTextColor(headerView.getTextColors().getDefaultColor());
-
- linearLayout.addView(checkBox1);
-
- mapCheckBoxes.put(child, checkBox1);
- }
-
- if (podInitActionType == PodInitActionType.FILL_CANNULA_SET_BASAL_PROFILE_WIZARD_STEP) {
- headerView.setText(R.string.omnipod_init_pod_wizard_step4_action_header);
- } else if (podInitActionType == PodInitActionType.DEACTIVATE_POD_WIZARD_STEP) {
- headerView.setText(R.string.omnipod_remove_pod_wizard_step2_action_header);
- }
-
- this.retryButton = rootView.findViewById(R.id.initAction_RetryButton);
-
- this.retryButton.setOnClickListener(view -> {
-
- getActivity().runOnUiThread(() -> {
- for (PodInitActionType actionType : mapCheckBoxes.keySet()) {
- mapCheckBoxes.get(actionType).setChecked(false);
- mapCheckBoxes.get(actionType).setTextColor(headerView.getTextColors().getDefaultColor());
- }
- });
-
- new InitPodTask(injector, this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- });
-
- return rootView;
- }
-
- @Override
- public void onAttach(Context context) {
- super.onAttach(context);
-
- FragmentActivity activity = getActivity();
-
- if (!(activity instanceof PageFragmentCallbacks)) {
- throw new ClassCastException("Activity must implement PageFragmentCallbacks");
- }
-
- mCallbacks = (PageFragmentCallbacks) activity;
- }
-
- @Override
- public void onDetach() {
- super.onDetach();
- mCallbacks = null;
- }
-
- @Override
- public void onResume() {
- super.onResume();
- if (isFirstView) {
- isFirstView = false;
- new InitPodTask(injector, this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
- }
-
- public void actionOnReceiveResponse(String result) {
- }
-
- @Override
- public void returnInitTaskStatus(PodInitActionType podInitActionType, boolean isSuccess, String errorMessage) {
- if (podInitActionType.isParent()) {
- for (PodInitActionType actionType : mapCheckBoxes.keySet()) {
- setCheckBox(actionType, isSuccess);
- }
-
- // special handling for init
- processOnFinishedActions(isSuccess, errorMessage);
-
- } else {
- setCheckBox(podInitActionType, isSuccess);
- }
- }
-
- private void processOnFinishedActions(boolean isOk, String errorMessage) {
- FragmentActivity activity = getActivity();
- if (activity != null) {
- activity.runOnUiThread(() -> {
- progressBar.setVisibility(View.GONE);
-
- if (!isOk) {
- errorView.setVisibility(View.VISIBLE);
- errorView.setText(errorMessage);
-
- retryButton.setVisibility(View.VISIBLE);
- }
-
- mPage.setActionCompleted(isOk);
-
- mPage.getData().putString(Page.SIMPLE_DATA_KEY, UUID.randomUUID().toString());
- mPage.notifyDataChanged();
-
- });
- }
- }
-
- protected void setCheckBox(PodInitActionType podInitActionType, boolean isSuccess) {
- FragmentActivity activity = getActivity();
- if (activity != null) {
- activity.runOnUiThread(() -> {
- mapCheckBoxes.get(podInitActionType).setChecked(isSuccess);
- mapCheckBoxes.get(podInitActionType).setTextColor(isSuccess ? Color.rgb(34, 135, 91) :
- Color.rgb(168, 36, 15));
- });
- }
- }
-
-}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/initpod/InitActionPage.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/initpod/InitActionPage.java
deleted file mode 100644
index 8c086ffe6e..0000000000
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/initpod/InitActionPage.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.initpod;
-
-import androidx.annotation.StringRes;
-import androidx.fragment.app.Fragment;
-
-import com.tech.freak.wizardpager.model.ModelCallbacks;
-import com.tech.freak.wizardpager.model.Page;
-import com.tech.freak.wizardpager.model.ReviewItem;
-
-import java.util.ArrayList;
-
-import info.nightscout.androidaps.plugins.pump.omnipod.definition.PodInitActionType;
-
-
-/**
- * Created by andy on 12/11/2019
- *
- * This page is for InitPod and RemovePod, but Fragments called for this 2 actions are different
- */
-public class InitActionPage extends Page {
-
- protected PodInitActionType podInitActionType;
-
- private boolean actionCompleted = false;
- private boolean actionSuccess = false;
-
- protected InitActionPage(ModelCallbacks callbacks, String title) {
- super(callbacks, title);
- }
-
- public InitActionPage(ModelCallbacks callbacks, @StringRes int titleId, PodInitActionType podInitActionType) {
- super(callbacks, titleId);
- this.podInitActionType = podInitActionType;
- }
-
- @Override
- public Fragment createFragment() {
- return InitActionFragment.create(getKey(), this.podInitActionType);
- }
-
- @Override
- public void getReviewItems(ArrayList dest) {
- }
-
- @Override
- public boolean isCompleted() {
- return actionCompleted;
- }
-
- public void setActionCompleted(boolean success) {
- this.actionCompleted = success;
- this.actionSuccess = success;
- }
-
- /**
- * This is used just if we want to override default behavior (for example when we enter Page we want prevent any action, until something happens.
- *
- * @return
- */
- @Override public boolean isBackActionPossible() {
- return actionCompleted;
- }
-
- /**
- * This is used just if we want to override default behavior (for example when we enter Page we want prevent any action, until something happens.
- *
- * @return
- */
- @Override public boolean isNextActionPossible() {
- return actionSuccess;
- }
-
-}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/initpod/InitPodTask.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/initpod/InitPodTask.java
deleted file mode 100644
index 12742ff108..0000000000
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/initpod/InitPodTask.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.initpod;
-
-import android.os.AsyncTask;
-import android.view.View;
-
-import javax.inject.Inject;
-
-import dagger.android.HasAndroidInjector;
-import info.nightscout.androidaps.interfaces.ProfileFunction;
-import info.nightscout.androidaps.plugins.bus.RxBusWrapper;
-import info.nightscout.androidaps.plugins.pump.omnipod.definition.PodInitActionType;
-import info.nightscout.androidaps.plugins.pump.omnipod.event.EventOmnipodPumpValuesChanged;
-import info.nightscout.androidaps.plugins.pump.omnipod.manager.AapsOmnipodManager;
-
-/**
- * Created by andy on 11/12/2019
- */
-public class InitPodTask extends AsyncTask {
-
- @Inject ProfileFunction profileFunction;
- @Inject AapsOmnipodManager aapsOmnipodManager;
- @Inject RxBusWrapper rxBus;
- private final InitActionFragment initActionFragment;
-
- public InitPodTask(HasAndroidInjector injector, InitActionFragment initActionFragment) {
- injector.androidInjector().inject(this);
- this.initActionFragment = initActionFragment;
- }
-
- @Override
- protected void onPreExecute() {
- super.onPreExecute();
- initActionFragment.progressBar.setVisibility(View.VISIBLE);
- initActionFragment.errorView.setVisibility(View.GONE);
- initActionFragment.retryButton.setVisibility(View.GONE);
- }
-
- @Override
- protected String doInBackground(Void... params) {
- if (initActionFragment.podInitActionType == PodInitActionType.PAIR_AND_PRIME_WIZARD_STEP) {
- initActionFragment.callResult = aapsOmnipodManager.pairAndPrime(
- initActionFragment.podInitActionType,
- initActionFragment
- );
- } else if (initActionFragment.podInitActionType == PodInitActionType.FILL_CANNULA_SET_BASAL_PROFILE_WIZARD_STEP) {
- initActionFragment.callResult = aapsOmnipodManager.setInitialBasalScheduleAndInsertCannula(
- initActionFragment.podInitActionType,
- initActionFragment,
- profileFunction.getProfile()
- );
- } else if (initActionFragment.podInitActionType == PodInitActionType.DEACTIVATE_POD_WIZARD_STEP) {
- initActionFragment.callResult = aapsOmnipodManager.deactivatePod(initActionFragment);
- }
-
- rxBus.send(new EventOmnipodPumpValuesChanged());
-
- return "OK";
- }
-
- @Override
- protected void onPostExecute(String result) {
- super.onPostExecute(result);
-
- initActionFragment.actionOnReceiveResponse(result);
- }
-
-}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/model/FullInitPodWizardModel.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/model/FullInitPodWizardModel.java
deleted file mode 100644
index af364324ae..0000000000
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/model/FullInitPodWizardModel.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.model;
-
-import android.content.Context;
-
-import com.atech.android.library.wizardpager.model.DisplayTextPage;
-import com.tech.freak.wizardpager.model.PageList;
-
-import info.nightscout.androidaps.plugins.pump.omnipod.R;
-import info.nightscout.androidaps.plugins.pump.omnipod.definition.PodInitActionType;
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.initpod.InitActionPage;
-
-/**
- * Created by andy on 12/11/2019
- */
-// Full init pod wizard model
-// Cannot be merged with ShortInitPodWizardModel, because we can't set any instance variables
-// before the onNewRootPageList method is called (which happens in the super constructor)
-public class FullInitPodWizardModel extends InitPodWizardModel {
-
- public FullInitPodWizardModel(Context context) {
- super(context);
- }
-
- @Override
- protected PageList onNewRootPageList() {
- return new PageList(
- new DisplayTextPage(this,
- R.string.omnipod_init_pod_wizard_step1_title,
- R.string.omnipod_init_pod_wizard_step1_desc,
- R.style.WizardPagePodContent).setRequired(true).setCancelReason("None"),
-
- new InitActionPage(this,
- R.string.omnipod_init_pod_wizard_step2_title,
- PodInitActionType.PAIR_AND_PRIME_WIZARD_STEP
- ).setRequired(true).setCancelReason("Cancel"),
-
- new DisplayTextPage(this,
- R.string.omnipod_init_pod_wizard_step3_title,
- R.string.omnipod_init_pod_wizard_step3_desc,
- R.style.WizardPagePodContent).setRequired(true).setCancelReason("Cancel"),
-
- new InitActionPage(this,
- R.string.omnipod_init_pod_wizard_step4_title,
- PodInitActionType.FILL_CANNULA_SET_BASAL_PROFILE_WIZARD_STEP
- ).setRequired(true).setCancelReason("Cancel")
- );
- }
-}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/model/InitPodWizardModel.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/model/InitPodWizardModel.java
deleted file mode 100644
index e3c4e9c1fe..0000000000
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/model/InitPodWizardModel.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.model;
-
-import android.content.Context;
-
-import androidx.fragment.app.Fragment;
-
-import com.tech.freak.wizardpager.model.AbstractWizardModel;
-
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.pages.PodInfoFragment;
-
-abstract class InitPodWizardModel extends AbstractWizardModel {
- InitPodWizardModel(Context context) {
- super(context);
- }
-
- @Override
- public Fragment getReviewFragment() {
- return PodInfoFragment.create(true);
- }
-}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/model/RemovePodWizardModel.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/model/RemovePodWizardModel.java
deleted file mode 100644
index 381dcb1950..0000000000
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/model/RemovePodWizardModel.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright 2012 Roman Nurik
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.model;
-
-import android.content.Context;
-
-import androidx.fragment.app.Fragment;
-
-import com.atech.android.library.wizardpager.model.DisplayTextPage;
-import com.tech.freak.wizardpager.model.AbstractWizardModel;
-import com.tech.freak.wizardpager.model.PageList;
-
-import info.nightscout.androidaps.plugins.pump.omnipod.R;
-import info.nightscout.androidaps.plugins.pump.omnipod.definition.PodInitActionType;
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.pages.PodInfoFragment;
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.removepod.RemovePodActionPage;
-
-/**
- * Created by andy on 12/11/2019
- */
-public class RemovePodWizardModel extends AbstractWizardModel {
-
- public RemovePodWizardModel(Context context) {
- super(context);
- }
-
- @Override
- protected PageList onNewRootPageList() {
- return new PageList(
- new DisplayTextPage(this,
- R.string.omnipod_remove_pod_wizard_step1_title,
- R.string.omnipod_remove_pod_wizard_step1_desc,
- R.style.WizardPagePodContent).setRequired(true).setCancelReason("None"),
-
- new RemovePodActionPage(this,
- R.string.omnipod_remove_pod_wizard_step2_title,
- PodInitActionType.DEACTIVATE_POD_WIZARD_STEP
- ).setRequired(true).setCancelReason("Cancel")
-
- );
- }
-
- @Override public Fragment getReviewFragment() {
- return PodInfoFragment.create(false);
- }
-
-}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/model/ShortInitPodWizardModel.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/model/ShortInitPodWizardModel.java
deleted file mode 100644
index 3813520e80..0000000000
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/model/ShortInitPodWizardModel.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.model;
-
-import android.content.Context;
-
-import com.atech.android.library.wizardpager.model.DisplayTextPage;
-import com.tech.freak.wizardpager.model.PageList;
-
-import info.nightscout.androidaps.plugins.pump.omnipod.R;
-import info.nightscout.androidaps.plugins.pump.omnipod.definition.PodInitActionType;
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.initpod.InitActionPage;
-
-/**
- * Created by andy on 12/11/2019
- */
-// Init pod wizard model without the pair and prime step
-// Cannot be merged with FullInitPodWizardModel, because we can't set any instance variables
-// before the onNewRootPageList method is called (which happens in the super constructor)
-public class ShortInitPodWizardModel extends InitPodWizardModel {
-
- public ShortInitPodWizardModel(Context context) {
- super(context);
- }
-
- @Override
- protected PageList onNewRootPageList() {
- return new PageList(
- new DisplayTextPage(this,
- R.string.omnipod_init_pod_wizard_step3_title,
- R.string.omnipod_init_pod_wizard_step3_desc,
- R.style.WizardPagePodContent).setRequired(true).setCancelReason("Cancel"),
-
- new InitActionPage(this,
- R.string.omnipod_init_pod_wizard_step4_title,
- PodInitActionType.FILL_CANNULA_SET_BASAL_PROFILE_WIZARD_STEP
- ).setRequired(true).setCancelReason("Cancel")
- );
-
- }
-}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/pages/PodInfoFragment.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/pages/PodInfoFragment.java
deleted file mode 100644
index 83dbeb0125..0000000000
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/pages/PodInfoFragment.java
+++ /dev/null
@@ -1,164 +0,0 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.pages;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.content.pm.ActivityInfo;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-import android.widget.TextView;
-
-import androidx.fragment.app.FragmentActivity;
-
-import com.tech.freak.wizardpager.model.ReviewItem;
-import com.tech.freak.wizardpager.ui.PageFragmentCallbacks;
-
-import java.util.ArrayList;
-
-import javax.inject.Inject;
-
-import dagger.android.support.DaggerFragment;
-import info.nightscout.androidaps.plugins.pump.omnipod.R;
-import info.nightscout.androidaps.plugins.pump.omnipod.driver.manager.PodStateManager;
-import info.nightscout.androidaps.plugins.pump.omnipod.util.AapsOmnipodUtil;
-
-
-/**
- * Created by andy on 12/11/2019
- */
-public class PodInfoFragment extends DaggerFragment {
- private static final String ARG_INIT_POD = "initPod";
-
- @Inject AapsOmnipodUtil aapsOmnipodUtil;
- @Inject PodStateManager podStateManager;
-
- private boolean isInitPod;
- private ArrayList mCurrentReviewItems;
-
- public static PodInfoFragment create(boolean initPod) {
- Bundle args = new Bundle();
- args.putBoolean(ARG_INIT_POD, initPod);
-
- PodInfoFragment fragment = new PodInfoFragment();
- fragment.setArguments(args);
- return fragment;
- }
-
- @SuppressLint("SourceLockedOrientationActivity") @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
-
- Bundle args = getArguments();
- isInitPod = args.getBoolean(ARG_INIT_POD);
- }
-
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View rootView = inflater.inflate(R.layout.omnipod_initpod_pod_info, container, false);
-
- TextView titleView = rootView.findViewById(R.id.podInfoTitle);
- titleView.setText(R.string.omnipod_init_pod_wizard_pod_info_title);
- titleView.setTextColor(getResources().getColor(com.tech.freak.wizardpager.R.color.review_green));
-
- TextView headerText = rootView.findViewById(R.id.podInfoText);
- headerText.setText(isInitPod ? //
- R.string.omnipod_init_pod_wizard_pod_info_init_pod_description : //
- R.string.omnipod_init_pod_wizard_pod_info_remove_pod_description);
-
- if (isInitPod) {
- if (createDataOfPod()) {
-
- ListView listView = (ListView) rootView.findViewById(R.id.podInfoList);
- listView.setAdapter(new PodInfoAdapter(mCurrentReviewItems, getContext()));
- listView.setChoiceMode(ListView.CHOICE_MODE_NONE);
- }
- }
-
- return rootView;
- }
-
- private boolean createDataOfPod() {
- if (podStateManager == null)
- return false;
-
- mCurrentReviewItems = new ArrayList<>();
- mCurrentReviewItems.add(new ReviewItem("Pod Address", "" + podStateManager.getAddress(), "33"));
- mCurrentReviewItems.add(new ReviewItem("Activated At", podStateManager.getActivatedAt() == null ? "Not activated yet" : podStateManager.getActivatedAt().toString("dd.MM.yyyy HH:mm:ss"), "34"));
- if (podStateManager.getLot() != null) {
- mCurrentReviewItems.add(new ReviewItem("LOT", "" + podStateManager.getLot(), "35"));
- }
- if (podStateManager.getTid() != null) {
- mCurrentReviewItems.add(new ReviewItem("TID", "" + podStateManager.getLot(), "36"));
- }
- if (podStateManager.getPiVersion() != null) {
- mCurrentReviewItems.add(new ReviewItem("Pi Version", podStateManager.getPiVersion().toString(), "37"));
- }
- if (podStateManager.getPmVersion() != null) {
- mCurrentReviewItems.add(new ReviewItem("Pm Version", podStateManager.getPmVersion().toString(), "38"));
- }
-
- return true;
- }
-
- @Override
- public void onAttach(Context context) {
- super.onAttach(context);
-
- FragmentActivity activity = getActivity();
-
- if (!(activity instanceof PageFragmentCallbacks)) {
- throw new ClassCastException("Activity must implement PageFragmentCallbacks");
- }
- }
-
- @Override
- public void onDetach() {
- super.onDetach();
- }
-
- private static class PodInfoAdapter extends ArrayAdapter {
- PodInfoAdapter(ArrayList data, Context context) {
- super(context, com.tech.freak.wizardpager.R.layout.list_item_review, data);
- }
-
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- // Get the data item for this position
- ReviewItem dataModel = getItem(position);
- // Check if an existing view is being reused, otherwise inflate the view
- ViewHolder viewHolder; // view lookup cache stored in tag
-
- if (convertView == null) {
-
- viewHolder = new ViewHolder();
- LayoutInflater inflater = LayoutInflater.from(getContext());
- convertView = inflater.inflate(R.layout.omnipod_initpod_pod_info_item, parent, false);
- viewHolder.txtName = (TextView) convertView.findViewById(android.R.id.text1);
- viewHolder.txtType = (TextView) convertView.findViewById(android.R.id.text2);
-
- convertView.setTag(viewHolder);
- } else {
- viewHolder = (ViewHolder) convertView.getTag();
- }
-
- viewHolder.txtName.setText(dataModel.getTitle());
- viewHolder.txtType.setText(dataModel.getDisplayValue());
-
- // Return the completed view to render on screen
- return convertView;
- }
- }
-
- private static class ViewHolder {
- TextView txtName;
- TextView txtType;
- }
-
-}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/removepod/RemoveActionFragment.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/removepod/RemoveActionFragment.java
deleted file mode 100644
index 2ca5a1d198..0000000000
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/removepod/RemoveActionFragment.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.removepod;
-
-import android.os.Bundle;
-import android.view.View;
-
-import com.tech.freak.wizardpager.model.Page;
-
-import java.util.UUID;
-
-import info.nightscout.androidaps.plugins.pump.omnipod.definition.PodInitActionType;
-import info.nightscout.androidaps.plugins.pump.omnipod.definition.PodInitReceiver;
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.initpod.InitActionFragment;
-
-/**
- * Created by andy on 29/11/2019
- */
-public class RemoveActionFragment extends InitActionFragment implements PodInitReceiver {
- public static RemoveActionFragment create(String key, PodInitActionType podInitActionType) {
- Bundle args = new Bundle();
- args.putString(ARG_KEY, key);
- args.putSerializable(ARG_POD_INIT_ACTION_TYPE, podInitActionType);
-
- RemoveActionFragment fragment = new RemoveActionFragment();
- fragment.setArguments(args);
- return fragment;
- }
-
- @Override
- public void actionOnReceiveResponse(String result) {
- System.out.println("ACTION: actionOnReceiveResponse: " + result);
-
- boolean isOk = callResult.success;
-
- progressBar.setVisibility(View.GONE);
-
- if (!isOk) {
- errorView.setVisibility(View.VISIBLE);
- errorView.setText(callResult.comment);
-
- retryButton.setVisibility(View.VISIBLE);
- }
-
- mPage.setActionCompleted(isOk);
-
- mPage.getData().putString(Page.SIMPLE_DATA_KEY, UUID.randomUUID().toString());
- mPage.notifyDataChanged();
- }
-
-
- @Override
- public void returnInitTaskStatus(PodInitActionType podInitActionType, boolean isSuccess, String errorMessage) {
- if (podInitActionType.isParent()) {
- for (PodInitActionType actionType : mapCheckBoxes.keySet()) {
- setCheckBox(actionType, isSuccess);
- }
- } else {
- setCheckBox(podInitActionType, isSuccess);
- }
- }
-}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/removepod/RemovePodActionPage.java b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/removepod/RemovePodActionPage.java
deleted file mode 100644
index 7d1b319d8c..0000000000
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/removepod/RemovePodActionPage.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.removepod;
-
-import androidx.annotation.StringRes;
-import androidx.fragment.app.Fragment;
-
-import com.tech.freak.wizardpager.model.ModelCallbacks;
-
-import info.nightscout.androidaps.plugins.pump.omnipod.definition.PodInitActionType;
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.initpod.InitActionPage;
-
-
-/**
- * Created by andy on 12/11/2019
- */
-public class RemovePodActionPage extends InitActionPage {
-
- public RemovePodActionPage(ModelCallbacks callbacks, String title) {
- super(callbacks, title);
- }
-
- public RemovePodActionPage(ModelCallbacks callbacks, @StringRes int titleId, PodInitActionType podInitActionType) {
- super(callbacks, titleId, podInitActionType);
- }
-
- @Override
- public Fragment createFragment() {
- return RemoveActionFragment.create(getKey(), this.podInitActionType);
- }
-
-}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/viewmodel/ActionViewModelBase.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/viewmodel/ActionViewModelBase.kt
new file mode 100644
index 0000000000..f6212758eb
--- /dev/null
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/viewmodel/ActionViewModelBase.kt
@@ -0,0 +1,30 @@
+package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.viewmodel
+
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.ViewModel
+import info.nightscout.androidaps.data.PumpEnactResult
+import io.reactivex.schedulers.Schedulers
+import io.reactivex.subjects.SingleSubject
+
+abstract class ActionViewModelBase : ViewModel() {
+
+ private val _isActionExecutingLiveData = MutableLiveData(false)
+ val isActionExecutingLiveData: LiveData = _isActionExecutingLiveData
+
+ private val _actionResultLiveData = MutableLiveData(null)
+ val actionResultLiveData: LiveData = _actionResultLiveData
+
+ fun executeAction() {
+ _isActionExecutingLiveData.postValue(true)
+ val disposable = SingleSubject.fromCallable(this::doExecuteAction)
+ .subscribeOn(Schedulers.io())
+ .doOnSuccess { result ->
+ _isActionExecutingLiveData.postValue(false)
+ _actionResultLiveData.postValue(result)
+ }
+ .subscribe()
+ }
+
+ protected abstract fun doExecuteAction(): PumpEnactResult
+}
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/viewmodel/DeactivatePodActionViewModel.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/viewmodel/DeactivatePodActionViewModel.kt
new file mode 100644
index 0000000000..49d0f2ed19
--- /dev/null
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/viewmodel/DeactivatePodActionViewModel.kt
@@ -0,0 +1,21 @@
+package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.viewmodel
+
+import info.nightscout.androidaps.data.PumpEnactResult
+import info.nightscout.androidaps.interfaces.CommandQueueProvider
+import info.nightscout.androidaps.plugins.pump.omnipod.manager.AapsOmnipodManager
+import info.nightscout.androidaps.plugins.pump.omnipod.queue.command.CommandDeactivatePod
+import info.nightscout.androidaps.queue.Callback
+import io.reactivex.subjects.SingleSubject
+import javax.inject.Inject
+
+class DeactivatePodActionViewModel @Inject constructor(private val aapsOmnipodManager: AapsOmnipodManager, private val commandQueueProvider: CommandQueueProvider) : ActionViewModelBase() {
+ override fun doExecuteAction(): PumpEnactResult {
+ val singleSubject = SingleSubject.create()
+ commandQueueProvider.customCommand(CommandDeactivatePod(), object : Callback() {
+ override fun run() {
+ singleSubject.onSuccess(result)
+ }
+ })
+ return singleSubject.blockingGet()
+ }
+}
\ No newline at end of file
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/viewmodel/InsertCannulaActionViewModel.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/viewmodel/InsertCannulaActionViewModel.kt
new file mode 100644
index 0000000000..25c3bd9a34
--- /dev/null
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/viewmodel/InsertCannulaActionViewModel.kt
@@ -0,0 +1,10 @@
+package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.viewmodel
+
+import info.nightscout.androidaps.data.PumpEnactResult
+import info.nightscout.androidaps.interfaces.ProfileFunction
+import info.nightscout.androidaps.plugins.pump.omnipod.manager.AapsOmnipodManager
+import javax.inject.Inject
+
+class InsertCannulaActionViewModel @Inject constructor(private val aapsOmnipodManager: AapsOmnipodManager, private val profileFunction: ProfileFunction) : ActionViewModelBase() {
+ override fun doExecuteAction(): PumpEnactResult = aapsOmnipodManager.insertCannula(profileFunction.getProfile())
+}
\ No newline at end of file
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/viewmodel/PairAndPrimePodActionViewModel.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/viewmodel/PairAndPrimePodActionViewModel.kt
new file mode 100644
index 0000000000..45c9a39f36
--- /dev/null
+++ b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard/viewmodel/PairAndPrimePodActionViewModel.kt
@@ -0,0 +1,9 @@
+package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.viewmodel
+
+import info.nightscout.androidaps.data.PumpEnactResult
+import info.nightscout.androidaps.plugins.pump.omnipod.manager.AapsOmnipodManager
+import javax.inject.Inject
+
+class PairAndPrimePodActionViewModel @Inject constructor(private val aapsOmnipodManager: AapsOmnipodManager) : ActionViewModelBase() {
+ override fun doExecuteAction(): PumpEnactResult = aapsOmnipodManager.activateNewPod()
+}
\ No newline at end of file
diff --git a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/fragment/WizardFragment1.kt b/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/fragment/WizardFragment1.kt
deleted file mode 100644
index 0422ca30a4..0000000000
--- a/omnipod/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/ui/wizard2/fragment/WizardFragment1.kt
+++ /dev/null
@@ -1,44 +0,0 @@
-package info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.fragment
-
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import androidx.fragment.app.viewModels
-import androidx.lifecycle.ViewModelProvider
-import dagger.android.support.DaggerFragment
-import info.nightscout.androidaps.plugins.pump.omnipod.R
-import info.nightscout.androidaps.plugins.pump.omnipod.dagger.OmnipodPluginQualifier
-import info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard2.viewmodel.WizardViewModel1
-import javax.inject.Inject
-
-class WizardFragment1 : DaggerFragment() {
-
- @Inject
- @OmnipodPluginQualifier
- lateinit var viewModelFactory: ViewModelProvider.Factory
-
- lateinit var viewModel: WizardViewModel1
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
-
- val vm: WizardViewModel1 by viewModels { viewModelFactory }
- this.viewModel = vm
- vm.doSomethingForTesting()
- }
-
- override fun onCreateView(
- inflater: LayoutInflater,
- container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? = inflater.inflate(R.layout.omnipod_replace_pod_wizard_info_page_fragment, container, false)
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- //view.findViewById
\ No newline at end of file
diff --git a/omnipod/src/main/res/layout/omnipod_replace_pod_wizard_action_page_fragment.xml b/omnipod/src/main/res/layout/omnipod_change_pod_wizard_info_page_fragment.xml
similarity index 63%
rename from omnipod/src/main/res/layout/omnipod_replace_pod_wizard_action_page_fragment.xml
rename to omnipod/src/main/res/layout/omnipod_change_pod_wizard_info_page_fragment.xml
index 41a07b7052..2d6623934e 100644
--- a/omnipod/src/main/res/layout/omnipod_replace_pod_wizard_action_page_fragment.xml
+++ b/omnipod/src/main/res/layout/omnipod_change_pod_wizard_info_page_fragment.xml
@@ -5,7 +5,8 @@
android:orientation="vertical">
+ android:layout_height="wrap_content"
+ android:textAppearance="@style/ChangePodWizardText" />
\ No newline at end of file
diff --git a/omnipod/src/main/res/layout/omnipod_replace_pod_wizard_nav_buttons.xml b/omnipod/src/main/res/layout/omnipod_change_pod_wizard_nav_buttons.xml
similarity index 64%
rename from omnipod/src/main/res/layout/omnipod_replace_pod_wizard_nav_buttons.xml
rename to omnipod/src/main/res/layout/omnipod_change_pod_wizard_nav_buttons.xml
index 72e0383ad8..8aa86adc7e 100644
--- a/omnipod/src/main/res/layout/omnipod_replace_pod_wizard_nav_buttons.xml
+++ b/omnipod/src/main/res/layout/omnipod_change_pod_wizard_nav_buttons.xml
@@ -5,16 +5,16 @@
android:orientation="horizontal">
+ android:text="@string/omnipod_change_pod_wizard_button_cancel" />
+ android:text="@string/omnipod_change_pod_wizard_button_next" />
\ No newline at end of file
diff --git a/omnipod/src/main/res/layout/omnipod_replace_pod_wizard_progress_indication.xml b/omnipod/src/main/res/layout/omnipod_change_pod_wizard_progress_indication.xml
similarity index 78%
rename from omnipod/src/main/res/layout/omnipod_replace_pod_wizard_progress_indication.xml
rename to omnipod/src/main/res/layout/omnipod_change_pod_wizard_progress_indication.xml
index bde0f8207d..c24eaa41eb 100644
--- a/omnipod/src/main/res/layout/omnipod_replace_pod_wizard_progress_indication.xml
+++ b/omnipod/src/main/res/layout/omnipod_change_pod_wizard_progress_indication.xml
@@ -5,12 +5,12 @@
android:orientation="horizontal">
\ No newline at end of file
diff --git a/omnipod/src/main/res/layout/omnipod_initpod.xml b/omnipod/src/main/res/layout/omnipod_initpod.xml
deleted file mode 100644
index aecbeaf8ea..0000000000
--- a/omnipod/src/main/res/layout/omnipod_initpod.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/omnipod/src/main/res/layout/omnipod_initpod_init_action.xml b/omnipod/src/main/res/layout/omnipod_initpod_init_action.xml
deleted file mode 100644
index 59e7992e16..0000000000
--- a/omnipod/src/main/res/layout/omnipod_initpod_init_action.xml
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/omnipod/src/main/res/layout/omnipod_initpod_pod_info.xml b/omnipod/src/main/res/layout/omnipod_initpod_pod_info.xml
deleted file mode 100644
index ee0f4ddd49..0000000000
--- a/omnipod/src/main/res/layout/omnipod_initpod_pod_info.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/omnipod/src/main/res/layout/omnipod_initpod_pod_info_item.xml b/omnipod/src/main/res/layout/omnipod_initpod_pod_info_item.xml
deleted file mode 100644
index 41f4a02125..0000000000
--- a/omnipod/src/main/res/layout/omnipod_initpod_pod_info_item.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/omnipod/src/main/res/layout/omnipod_fragment.xml b/omnipod/src/main/res/layout/omnipod_overview.xml
similarity index 89%
rename from omnipod/src/main/res/layout/omnipod_fragment.xml
rename to omnipod/src/main/res/layout/omnipod_overview.xml
index 9711de30a0..ff36031400 100644
--- a/omnipod/src/main/res/layout/omnipod_fragment.xml
+++ b/omnipod/src/main/res/layout/omnipod_overview.xml
@@ -2,8 +2,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context="info.nightscout.androidaps.plugins.pump.omnipod.ui.OmnipodFragment">
-
+ tools:context="info.nightscout.androidaps.plugins.pump.omnipod.ui.OmnipodOverviewFragment">
-
+ android:text="@string/omnipod_overview_button_refresh" />
-
-
+ android:text="@string/omnipod_overview_button_pod_management" />
+ android:text="@string/omnipod_overview_button_acknowledge_active_alerts" />
+ android:text="@string/omnipod_overview_button_riley_link_stats" />
diff --git a/omnipod/src/main/res/layout/omnipod_pod_mgmt.xml b/omnipod/src/main/res/layout/omnipod_pod_management.xml
similarity index 62%
rename from omnipod/src/main/res/layout/omnipod_pod_mgmt.xml
rename to omnipod/src/main/res/layout/omnipod_pod_management.xml
index 0a1b140b18..f76b7ed544 100644
--- a/omnipod/src/main/res/layout/omnipod_pod_mgmt.xml
+++ b/omnipod/src/main/res/layout/omnipod_pod_management.xml
@@ -9,7 +9,6 @@
android:layout_height="wrap_content">
@@ -29,21 +28,19 @@
android:textStyle="bold" />
-
-
-
-
-
-
-
-
diff --git a/omnipod/src/main/res/layout/omnipod_replace_pod_wizard_info_page_fragment.xml b/omnipod/src/main/res/layout/omnipod_replace_pod_wizard_info_page_fragment.xml
deleted file mode 100644
index a351a383ba..0000000000
--- a/omnipod/src/main/res/layout/omnipod_replace_pod_wizard_info_page_fragment.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/omnipod/src/main/res/navigation/omnipod_replace_pod_wizard_navigation_graph.xml b/omnipod/src/main/res/navigation/omnipod_change_pod_wizard_navigation_graph.xml
similarity index 63%
rename from omnipod/src/main/res/navigation/omnipod_replace_pod_wizard_navigation_graph.xml
rename to omnipod/src/main/res/navigation/omnipod_change_pod_wizard_navigation_graph.xml
index 347c8d9426..e7defe9c50 100644
--- a/omnipod/src/main/res/navigation/omnipod_replace_pod_wizard_navigation_graph.xml
+++ b/omnipod/src/main/res/navigation/omnipod_change_pod_wizard_navigation_graph.xml
@@ -1,44 +1,46 @@
+ android:name="info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.info.DeactivatePodInfoFragment"
+ android:label="DeactivatePodInfoFragment">
+ android:name="info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.action.DeactivatePodActionFragment"
+ android:label="DeactivatePodActionFragment">
+
+ android:name="info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.info.PodDeactivatedInfoFragment"
+ android:label="PodDeactivatedInfoFragment">
+ android:name="info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.info.FillPodInfoFragment"
+ android:label="FillPodInfoFragment">
+ android:name="info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.action.PairAndPrimePodActionFragment"
+ android:label="PairAndPrimePodActionFragment">
@@ -48,25 +50,33 @@
+ android:name="info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.info.AttachPodInfoFragment"
+ android:label="AttachPodInfoFragment">
+ android:name="info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.action.InsertCannulaActionFragment"
+ android:label="InsertCannulaActionFragment">
+ android:id="@+id/action_insertCannulaActionFragment_to_PodChangedInfoFragment"
+ app:destination="@id/PodChangedInfoFragment" />
+ android:id="@+id/PodChangedInfoFragment"
+ android:name="info.nightscout.androidaps.plugins.pump.omnipod.ui.wizard.fragment.info.PodChangedInfoFragment"
+ android:label="PodChangedInfoFragment" />
+
+
+
\ No newline at end of file
diff --git a/omnipod/src/main/res/values-bg-rBG/strings.xml b/omnipod/src/main/res/values-bg-rBG/strings.xml
index e0a39163b9..c5b7385578 100644
--- a/omnipod/src/main/res/values-bg-rBG/strings.xml
+++ b/omnipod/src/main/res/values-bg-rBG/strings.xml
@@ -2,7 +2,7 @@
- Интеграция на помпата Omnipod, изисква RileyLink устройство (с фърмуер минимум 2.0 ) .
+ Интеграция на помпата Omnipod, изисква RileyLink устройство (с фърмуер минимум 2.0 ) .Звук при болус активенЗвук при базал активен
@@ -17,17 +17,16 @@
Брой единициПреди малко
- Настройки на под
- Статус на под
- Общо доставени
- %1$.2fЕ
- %1$.2f Е остават
- Над 50 Е
- Адрес на под
- Капсулата изтича
+ Статус на под
+ Общо доставени
+ %1$.2fЕ
+ %1$.2f Е остават
+ Над 50 Е
+ Адрес на под
+ Капсулата изтичаВниманиеНяма активен под
- Настройка в прогрес (изчакване на сдвояване и пълнене)
+ Настройка в прогрес (изчакване на сдвояване и пълнене)Настройка в прогрес (въвеждане на канюла)ИзпълняваПрекратено
@@ -35,39 +34,16 @@
Времето за активация изтечеНеактивенГрешка на под: %1$s %2$s
- Сигнали за активен под
- Потвърди аларми
+ Сигнали за активен подOmnipod (433.91 MHz)Грешен RileyLink адрес.Забранено действие.\n\n Първо трябва да конфигурурате Omnipod , преди да използвате тази операция,.
- Операцията не е възможна.\n\n Трябва да изчакате няколко минути, докато AAPS се опита да зададе профил за първи път.
- Неправилен PodInitActionType: %1$sНяма активен под
- Грешка при проверка на командата
- Непредвидена грешка. Моля, докладвайте! (тип: %1$s).
- Неуспешна комуникация: получени грешни входни параметри
- Връзката е неуспешна: таймаут
- Комуникацията е неуспешна: възникнала е неочаквана грешка. Моля, докладвайте!
- Неуспешна комуникация: проверката на целостта на съобщението е неуспешна
- Неуспешна комуникация: получени грешни входни параметри
- Съобщението е неуспешно: Pod е в лошо състояние
- Неуспешна комуникация: получени грешни входни параметри
- Неуспешна комуникация: получи съобщение с невалиден номер на последователност от Pod
- Неуспешна комуникация: получи съобщение с невалиден номер на последователност от Pod
- Неуспешна комуникация: получени грешни входни параметри
- Комуникацията е неуспешна: nonce ресинхронизирането е неуспешно
- Комуникацията е неуспешна: nonce ресинхронизирането е неуспешно
- Комуникацията е неуспешна: няма достатъчно данни, получени от Pod
- Грешка на Pod (%1$03d %2$s). Моля, деактивирайте вашия Pod и стартирайте нов
- Комуникацията е неуспешна: Pod върна отговор с грешка
- Управление на Pod
- Инициализация на PodДеактивирай подПремахни под
- История на подСтартирай болусОтмяна на болусПриложи временен базал
@@ -82,32 +58,21 @@
Спиране на доставката на инсулинПодновяване на доставкатаНепознат запис
- %1$.2fЕ
- %1$.2f U, CH=%2$.1f g
- Скорост: %1$.2f U, Продължителност: %2$d мин
- Ако натиснете OK, състоянието на Pod ще бъде нулирано и няма да можете да общувате с него повече. Правете това, само ако вече не можете да се свързвате с него. Ако все още можете да общувате с Под, моля, използвайте опцията Деактивирай Pod.
- Историята на Pod не е достъпна в момента.
- Напълни Pod
- \nНапълнете с достатъчно инсулин за 3 дни.\n\nИзчакайте два сигнала от Pod по време на процеса на зареждане. Те показват, че е вмъкнат минималният размер от 85U. Уверете се, че сте изпразнил напълно спринцовката, дори след като сте чули двата сигнала.\n\nСлед пълнене на Pod, моля натиснете Следващ.\n\nЗабележка: не вадете капачката на капсулата на Podв този момент.
- Пълнене
- Опитвам се да се сдвоя с Pod.\n\nКогато всички елементи са проверени, можете да натиснете Следващ.\n\nЗабележка: задръжте Pod много близо до RileyLink в този момент.
- Прикрепете Pod
- \nПодгответе мястото за инфузия. Отстранете капачката на Pod и лепенката и прикрепете капсулата към мястото за инфузия.\n\nАко канюла стърчи, моля натиснете Отказ и изхвърлете вашия Pod.\n\nПрес Следваща да се вмъкне канюлата и да започне базалната доставка.
- Вмъкване на канюла
- Опитвам се да определя първоначалния базален график и да вмъкна канюлата.\n\nКогато всички елементи са проверени, можете да натиснете Следващ.
- Информация за Pod
- \Podе активна.\n\nВашият базален график е програмиран и канюлата вмъкната.\n\nМоля, проверете дали канюлата е поставена правилно или заменете Pod, ако чувствате, че не е.
- Деактивирай Pod
- \nНатиснете Следващ , за да деактивирате Pod.\n\nЗабележка: Това ще спре всички доставки на инсулин и деактивира Pod.
- Деактивиране на Pod
- Деактивиране на Pod.\n\nКогато всички елементи са проверени, можете да натиснете Следващ.\n\nЗабележка: Ако деактивирането непрекъснато се проваля, моля натиснете Отказ и използвайте опция Нулирай Pod , за да възстановите състоянието на Pod.
- Pod изключен.\n\nмоля, извадете Pod от тялото си и го хвърли.
- Сдвояване на под
- Пълнене на под
- Напълни канула
- Приложи базалният профил
- Отмяна
- Деактивирай под
+ Напълни Pod
+ \nНапълнете с достатъчно инсулин за 3 дни.\n\nИзчакайте два сигнала от Pod по време на процеса на зареждане. Те показват, че е вмъкнат минималният размер от 85U. Уверете се, че сте изпразнил напълно спринцовката, дори след като сте чули двата сигнала.\n\nСлед пълнене на Pod, моля натиснете Следващ.\n\nЗабележка: не вадете капачката на капсулата на Podв този момент.
+ Пълнене
+ Опитвам се да се сдвоя с Pod.\n\nКогато всички елементи са проверени, можете да натиснете Следващ.\n\nЗабележка: задръжте Pod много близо до RileyLink в този момент.
+ Прикрепете Pod
+ \nПодгответе мястото за инфузия. Отстранете капачката на Pod и лепенката и прикрепете капсулата към мястото за инфузия.\n\nАко канюла стърчи, моля натиснете Отказ и изхвърлете вашия Pod.\n\nПрес Следваща да се вмъкне канюлата и да започне базалната доставка.
+ Вмъкване на канюла
+ Опитвам се да определя първоначалния базален график и да вмъкна канюлата.\n\nКогато всички елементи са проверени, можете да натиснете Следващ.
+ Информация за Pod
+ \Podе активна.\n\nВашият базален график е програмиран и канюлата вмъкната.\n\nМоля, проверете дали канюлата е поставена правилно или заменете Pod, ако чувствате, че не е.
+ Деактивирай Pod
+ \nНатиснете Следващ , за да деактивирате Pod.\n\nЗабележка: Това ще спре всички доставки на инсулин и деактивира Pod.
+ Деактивиране на Pod
+ Деактивиране на Pod.\n\nКогато всички елементи са проверени, можете да натиснете Следващ.\n\nЗабележка: Ако деактивирането непрекъснато се проваля, моля натиснете Отказ и използвайте опция Нулирай Pod , за да възстановите състоянието на Pod.
+ Pod изключен.\n\nмоля, извадете Pod от тялото си и го хвърли.Край на напомняне за сдвояванеКрай на напомнянето за настройка
@@ -123,43 +88,25 @@
Задаването на временен базал е неуспешно. Ако преди това е изпълнявал временен базал, може да е бил отменен. Моля, ръчно опреснете статуса на Pod от раздела Omnipod.Неуспешно задаване на базален профил. Доставката може да бъде спряна! Моля, ръчно опреснете състоянието на Pod от раздел Omnipod и възобновете доставката, ако е необходимо.Неуспешно задаване на базален профил. Доставката е спряна! Моля, ръчно подновяване на доставката от раздела Omnipod.
- Не може да се провери дали болус е успял. Моля, уверете се ръчно, че Вашата Pod се активира чрез слушане на кликвания. Ако сте сигурни, че болус не е успял, вие трябва ръчно да изтриете болния запис от лечение, дори ако щракнете върху \'Отказ от болус\' сега!
- Не може да се провери дали SMB bolus (%1$.2f U) е успял. Ако сте сигурни, че на Bolus не е успял, трябва ръчно да изтриете запис SMB от лечение.
- Статистика на RL
- Pulse лог
- LOT
- TID
- Firmware версия
- Грешки
- Профилът е идентичен.
+ LOT
+ TID
+ Firmware версия
+ ГрешкиНулирай RileyLink конфигурацията
- Време и/или промяна на часовата зона на помпата%1$s и %2$sпреди %s
- Изчакване за връзка...
- Болус неуспешен
- Обнови
- Подновяване на доставката
- Pod изключен
+ Изчакване за връзка...преди по-малко от минута
- Спиране
- Сдвояване и пълнене
- Запълнете канюлата и настройте базалния профил
- Вземи лога
- Неизвестна грешка
- Спрян стар базал, но неуспешно задаване на нов
+ Сдвояване и пълнене
+ Запълнете канюлата и настройте базалния профилПоставете фалшив временен базал, защото Pod е спряноАнулират фалшив временен базал, който е създаден, защото Pod е спрянонеизвестно
- Конфигурация на тревога актуализирана в PodRileyLinkДругоИзвестияЗвук за потвърждение
- Изход
- Предишен
- Следващ
- Край
+ СледващОписаниеИзточникДата
diff --git a/omnipod/src/main/res/values-cs-rCZ/strings.xml b/omnipod/src/main/res/values-cs-rCZ/strings.xml
index e109019798..0072210519 100644
--- a/omnipod/src/main/res/values-cs-rCZ/strings.xml
+++ b/omnipod/src/main/res/values-cs-rCZ/strings.xml
@@ -2,7 +2,7 @@
- Integrace pumpy pro Omnipod, vyžaduje zařízení RileyLink (s firmwarem alespoň 2.0).
+ Integrace pumpy pro Omnipod, vyžaduje zařízení RileyLink (s firmwarem alespoň 2.0).Pípnutí při bolusu povolenoPípnutí při bazálu povoleno
@@ -17,17 +17,16 @@
Počet jednotekpřed chvílí
- Správa Podu
- Stav Podu
- Celkem dodáno
- %1$.2f U
- Zbývá %1$.2f U
- Více než 50 U
- Adresa Podu
- Expirace Podu
+ Stav Podu
+ Celkem dodáno
+ %1$.2f U
+ Zbývá %1$.2f U
+ Více než 50 U
+ Adresa Podu
+ Expirace PoduVarováníŽádný aktivní Pod
- Instalace probíhá (čekání na párování a plnění)
+ Instalace probíhá (čekání na párování a plnění)Instalace probíhá (čeká se na vložení kanyly)BěžíPozastaveno
@@ -35,39 +34,16 @@
Byl překročen čas aktivaceNeaktivníChyba Podu: %1$s %2$s
- Výstrahy aktivního Podu
- Potrvdit upozornění
+ Výstrahy aktivního PoduOmnipod (433,91 MHz)Chybná adresa RileyLinku.Operace není možná.\n\nNejdříve je nutné nakonfigurovat Omnipod, než bude možné tuto funkci použít.
- Operace není možná.\n\n Je třeba několik minut počkat, dokud se AAPS nepokusí poprvé nastavit profil.
- Neplatný atribut PodInitActionType: %1$sŽádný aktivní Pod
- Ověření příkazu se nezdařilo
- Došlo k neočekávané chybě. Nahlaste ji! (typ: %1$s).
- Komunikace selhala: byly přijaty neplatné vstupní parametry
- Komunikace selhala: časový limit vypršel
- Komunikace se nezdařila: došlo k neočekávané chybě. Prosím nahlašte!
- Komunikace selhala: ověření integrity zprávy se nezdařilo
- Komunikace selhala: byly přijaty neplatné pakety z podu
- Komunikace selhala: Pod je v chybném stavu
- Komunikace selhala: byla přijata neplatná odezva z Podu
- Komunikace selhala: od Podu byla přijata zpráva s neplatným pořadovým číslem
- Komunikace selhala: od Podu byla přijata zpráva s neplatnou adresou
- Komunikace selhala: nepodařilo se dekódovat zprávu z Podu
- Komunikace selhala: synchronizace hodnoty Nonce se nezdařila
- Komunikace selhala: hodnota Nonce nebyla synchronizována
- Komunikace selhala: nedostatek dat přijatých z Podu
- Byla zjištěna chyba Podu (%1$03d %2$s). Deaktivujte Pod a spusťte nový
- Komunikace selhala: Pod vrátil chybovou odezvu
- Správa Podu
- Inicializovat PodDeaktivovat PodVyřadit Pod
- Historie PoduNastavit bolusZrušit bolusNastavit dočasný bazál
@@ -82,26 +58,18 @@
Pozastavit dodávání inzulínuObnovit dodávání inzulínuNeznámá položka
- %1$.2f U
- %1$.2f U, Sach=%2$.1f g
- Rychlost: %1$.2f U, doba trvání: %2$d min
- Pokud stisknete OK, stav Podu bude vynuceně resetován a již nebudete moci komunikovat s Podem. Udělejte to pouze v případě, že s Podem již nelze komunikovat. Pokud stále můžete komunikovat s Podem, použijte volbu Deaktivovat Pod.\n\nPokud chcete pokračovat, ujistěte se, že Pod je sundaný z těla.
- Historie Podu není v daném okamžiku k dispozici.
- Naplňte Pod
- \nNaplňte nový Pod dostatkem inzulínu na 3 dny.\n\nSledujte dvě pípnutí z Podu během procesu plnění. Tyto ukazují, že minimální množství 85U bylo naplněno. Ujistěte se, že stříkačka je zcela vyprázdněná a to i po vyslechnutí dvou pípnutí.\n\nPo naplnění Podu, prosím, stiskněte Další.\n\nPoznámka: prozatím nesundavejte kryt jehly.\nPoznámka:prosím umístěte RileyLink ve svislé pozici blízko Podu.
- Plnění
- Nasaďte Pod
- \nPřipravte infuzní místo. Odstraňte krytku jehly a náplasti a nalepte Pod.\n\nPokud se kanyla odlepí, stiskněte Zrušit a zahoďte Pod.\n\nStiskněte Další pro vložení kanyly a spuštění bazálů.
- Vkládání kanyly
- Snažím se nastavit počáteční základní bazální plán a vložit kanylu.\n\nPři zaškrtnutí všech položek můžete stisknout tlačítko Další.
- \nPod je nyní aktivní.\n\nVáš bazál byl naprogramován a kanyla byla vložena.\n\nOvěřte, prosím, že kanyla byla vložena správně a případně vyměňte Pod.
- Deaktivovat Pod
- \nStiskněte Další pro deaktivaci Podu.\n\nPoznámka: Zastavíte veškerý výdej inzulínu a deaktivujete Pod.
- Deaktivace Podu
- Pod deaktivován.\n\nOdstraňte Pod z těla a znehodnoťte jej.
- Párování Podu
- Plnění Podu
- Deaktivovat Pod
+ Naplňte Pod
+ \nNaplňte nový Pod dostatkem inzulínu na 3 dny.\n\nSledujte dvě pípnutí z Podu během procesu plnění. Tyto ukazují, že minimální množství 85U bylo naplněno. Ujistěte se, že stříkačka je zcela vyprázdněná a to i po vyslechnutí dvou pípnutí.\n\nPo naplnění Podu, prosím, stiskněte Další.\n\nPoznámka: prozatím nesundavejte kryt jehly.\nPoznámka:prosím umístěte RileyLink ve svislé pozici blízko Podu.
+ Plnění
+ Nasaďte Pod
+ \nPřipravte infuzní místo. Odstraňte krytku jehly a náplasti a nalepte Pod.\n\nPokud se kanyla odlepí, stiskněte Zrušit a zahoďte Pod.\n\nStiskněte Další pro vložení kanyly a spuštění bazálů.
+ Vkládání kanyly
+ Snažím se nastavit počáteční základní bazální plán a vložit kanylu.\n\nPři zaškrtnutí všech položek můžete stisknout tlačítko Další.
+ \nPod je nyní aktivní.\n\nVáš bazál byl naprogramován a kanyla byla vložena.\n\nOvěřte, prosím, že kanyla byla vložena správně a případně vyměňte Pod.
+ Deaktivovat Pod
+ \nStiskněte Další pro deaktivaci Podu.\n\nPoznámka: Zastavíte veškerý výdej inzulínu a deaktivujete Pod.
+ Deaktivace Podu
+ Pod deaktivován.\n\nOdstraňte Pod z těla a znehodnoťte jej.Upomínka dokončení párováníUpomínka dokončení nastavení
@@ -110,41 +78,25 @@
Blíží se vypnutíNízký stav zásobníkuNeznámá výstraha
- Nelze ověřit, zda byl bolus SMB (%1$.2f U) úspěšně vydán. Pokud jste si jisti, že bolus nebyl vydán, měli byste ručně odstranit položku SMB z Ošetření.
- Statistika RL
- Pulse log
- LOT
- TID
- Verze firmwaru
- Chyby
- Bazální profil je stejný, takže nebude znovu nastaven.
+ LOT
+ TID
+ Verze firmwaru
+ ChybyResetovat konfiguraci RileyLinku
- Změna času nebo časového pásma Podu%1$s a %2$spřed %1$s
- Čekání na připojení RileyLink...
- Podání bolusu bylo neúspěšné
- Obnovit
- Obnovit dodávání inzulínu
- Pod pozastavený
+ Čekání na připojení RileyLink...Před méně než minutou
- Vypnutí
- Spárovat a naplnit
- Naplnit kanylu a nastavit bazální profil
- Neznámá chyba
- Byl zrušen starý dočasný bazál, ale nový dočasný bazál se nepodařilo nastavit
+ Spárovat a naplnit
+ Naplnit kanylu a nastavit bazální profilNastavit falešný dočasný bazál, protože Pod je pozastavenZrušit falešný dočasný bazál který byl vytvořen, protože Pod byl pozastavenneznámé
- Nastavení výstrahy bylo v Podu aktualizovánoRileyLinkJinéVarováníPotvrzovací pípnutí
- Konec
- Předchozí
- Další
- Konec
+ DalšíPopisZdrojDatum
diff --git a/omnipod/src/main/res/values-de-rDE/strings.xml b/omnipod/src/main/res/values-de-rDE/strings.xml
index a6c729e660..a62fecafbc 100644
--- a/omnipod/src/main/res/values-de-rDE/strings.xml
+++ b/omnipod/src/main/res/values-de-rDE/strings.xml
@@ -2,7 +2,7 @@
- Um den Omnipod nutzen zu können, brauchst Du einen RileyLink (mind. Firmware 2.0).
+ Um den Omnipod nutzen zu können, brauchst Du einen RileyLink (mind. Firmware 2.0).Bolus-Piep aktiviertBasal-Piep aktiviert
@@ -15,17 +15,17 @@
Anzahl der Einheitengerade eben
- Pod mgmt
- Pod Status
- Insgesamt abgegeben
- %1$.2f IE
- %1$.2f IE übrig
- über 50 IE
- Pod Adresse
- Pod läuft ab
+ Pod mgmt
+ Pod Status
+ Insgesamt abgegeben
+ %1$.2f IE
+ %1$.2f IE übrig
+ über 50 IE
+ Pod Adresse
+ Pod läuft abWarnungKein aktiver Pod
- Einrichtung im Gang (Warten auf Verbindung und Füllen)
+ Einrichtung im Gang (Warten auf Verbindung und Füllen)Einrichtung im Gang (Warten auf Setzen der Kanüle)In BetriebAngehalten
@@ -33,20 +33,14 @@
Aktivierungszeit überschrittenInaktivPod-Fehler: %1$s %2$s
- Aktive Pod-Warnungen
- Alarm bestätigen
+ Aktive Pod-Warnungen
+ Alarm bestätigenOmnipod (433.91 MHz)RileyLink Adresse ungültig.Aktion ist nicht möglich.\n\n Du musst zuerst den Omnipod konfigurieren, bevor Du diese Operation verwenden kannst.
- Aktion ist nicht möglich.\n\n Du musst ein paar Minuten warten bis AAPS versucht, das Basalprofil zum ersten Mal zu setzen.
- Illegal PodInitActionType: %1$sKein aktiver Pod
- Kommandoprüfung fehlgeschlagen
- Kommunikation fehlgeschlagen: Ungültige Eingabeparameter empfangen
- Keine Verbindung: Zeitüberschreitung
- Keine Verbindung: Es ist ein unerwarteter Fehler aufgetreten. Bitte melden!Kommunikation fehlgeschlagen: Die Überprüfung der Nachrichtenintegrität ist fehlgeschlagenKommunikation fehlgeschlagen: Es wurde ein ungültiges Paket vom Pod empfangenKommunikation fehlgeschlagen: Der Pod befindet sich in einem falschen Status
@@ -61,10 +55,9 @@
Kommunikation fehlgeschlagen: Fehlerhafte Antwort vom PodPod Management
- Init PodPod deaktivierenPod ablegen
- Pod Historie
+ Pod HistorieMahlzeiten Bolus abgebenBolus abbrechenTemp. Basalrate setzen
@@ -81,21 +74,17 @@
Unbekannte Eingabe%1$.2f IE%1$.2f IE, CH=%2$.1f g
- Pod Historie derzeit nicht verfügbar.
- Befülle den Pod
- Befüllen
- Befestige den Pod
- \nBereite die Infusionsstelle vor. Entferne den Nadelschutz des Pods und die Schutzfolie über dem Kleber. Klebe dann den Pod an die gewünschte Körperstelle.\n\nFalls die Kanüle herausragt, klicke Abbrechen und verwirf den Pod.\n\nKlicke Weiter; um die Kanüle zu setzen und die Insulinabgabe zu beginnen.
- Kanüle setzen
- Erste Basalrate und Kanüle werden nun gesetzt.\n\nWenn alle Häkchen gesetzt sind, kannst Du Weiter klicken.
- \nDer Pod ist jetzt aktiv.\n\nDeine Basalrate ist programmiert und die Kanüle wurde gesetzt.\n\nBitte überprüfe, ob die Kanüle korrekt gesetzt wurde und ersetze den Pod, wenn Du das Gefühl hast, dass dies nicht erfolgreich war.
- Pod deaktivieren
- \nDrücke Weiter um den Pod zu deaktivieren.\n\nHinweis: Dies unterbricht die gesamte Insulinabgabe und deaktiviert den Pod.
- Deaktiviere den Pod
- Pod deaktiviert.\n\nBitte entferne den Pod von Deinem Körper und entsorge ihn.
- Pod verbinden
- Pod befüllen
- Pod deaktivieren
+ Befülle den Pod
+ Befüllen
+ Befestige den Pod
+ \nBereite die Infusionsstelle vor. Entferne den Nadelschutz des Pods und die Schutzfolie über dem Kleber. Klebe dann den Pod an die gewünschte Körperstelle.\n\nFalls die Kanüle herausragt, klicke Abbrechen und verwirf den Pod.\n\nKlicke Weiter; um die Kanüle zu setzen und die Insulinabgabe zu beginnen.
+ Kanüle setzen
+ Erste Basalrate und Kanüle werden nun gesetzt.\n\nWenn alle Häkchen gesetzt sind, kannst Du Weiter klicken.
+ \nDer Pod ist jetzt aktiv.\n\nDeine Basalrate ist programmiert und die Kanüle wurde gesetzt.\n\nBitte überprüfe, ob die Kanüle korrekt gesetzt wurde und ersetze den Pod, wenn Du das Gefühl hast, dass dies nicht erfolgreich war.
+ Pod deaktivieren
+ \nDrücke Weiter um den Pod zu deaktivieren.\n\nHinweis: Dies unterbricht die gesamte Insulinabgabe und deaktiviert den Pod.
+ Deaktiviere den Pod
+ Pod deaktiviert.\n\nBitte entferne den Pod von Deinem Körper und entsorge ihn.Erinnerung Kopplung beendetErinnerung Setup beendet
@@ -104,14 +93,12 @@
Herunterfahren steht unmittelbar bevorNiedriger ReservoirstandUnbekannter Alarm
- Fehler
- Basalprofil, unverändert wird nicht erneut eingestellt.
- Aktualisieren
- Unterbrechungen
+ Fehler
+ Aktualisieren
+ UnterbrechungenRileyLinkAndere
- Schließen
- Weiter
+ WeiterBeschreibungDatum
diff --git a/omnipod/src/main/res/values-es-rES/strings.xml b/omnipod/src/main/res/values-es-rES/strings.xml
index f1f5668d50..ac62ba0e56 100644
--- a/omnipod/src/main/res/values-es-rES/strings.xml
+++ b/omnipod/src/main/res/values-es-rES/strings.xml
@@ -2,32 +2,26 @@
- La integración de la bomba para Omnipod requiere el dispositivo RileyLink (con al menos 2,0 firmware).
+ La integración de la bomba para Omnipod requiere el dispositivo RileyLink (con al menos 2,0 firmware).
- %1$.2f U restantes
- Más De 50 U
+ %1$.2f U restantes
+ Más De 50 UOmnipod (433.91 MHz)
- Ilegal PodInitActionType: %1$s
- La comunicación ha fallado: error inesperado. ¡Por favor, Informe!
- Iniciar PodDesactivar Pod
- Historial del Pod no disponible en el momento.
- Llenar el Pod
- Cebado
- Adherir el Pod
- \nPreparar el sitio de infusión. Retire el capuchón de la aguja del Pod y el adhesivo y aplique el Pod al sitio de perfusión.\n\nSi la cánula se queda fuera, por favor presione Cancel y descarte su Pod.\n\nPress Next para insertar la cánula y comenzar la entrega basal.
- Insertar cánula
- Intentando establecer la programación basal inicial e insertar la cánula.\n\nCuando todos los elementos están marcados, puede pulsar Siguiente.
- \nEl Pod ahora está activo.\n\nSu horario basal ha sido programado y la cánula ha sido insertada.\n\nPor favor, verifique que la cánula ha sido insertada correctamente y reemplace su Pod si usted siente que no lo ha hecho.
- \nPulsa Siguiente para desactivar el Pod.\n\nNota: Esto suspenderá toda la entrega insulina y desactivará el Pod.
- Desactivando el Pod
- Pod desactivado.\n\nPor favor, retire el Pod de su cuerpo y desecharlo.
- Emparejar Pod
- Llenado de cánula del Pod
+ Llenar el Pod
+ Cebado
+ Adherir el Pod
+ \nPreparar el sitio de infusión. Retire el capuchón de la aguja del Pod y el adhesivo y aplique el Pod al sitio de perfusión.\n\nSi la cánula se queda fuera, por favor presione Cancel y descarte su Pod.\n\nPress Next para insertar la cánula y comenzar la entrega basal.
+ Insertar cánula
+ Intentando establecer la programación basal inicial e insertar la cánula.\n\nCuando todos los elementos están marcados, puede pulsar Siguiente.
+ \nEl Pod ahora está activo.\n\nSu horario basal ha sido programado y la cánula ha sido insertada.\n\nPor favor, verifique que la cánula ha sido insertada correctamente y reemplace su Pod si usted siente que no lo ha hecho.
+ \nPulsa Siguiente para desactivar el Pod.\n\nNota: Esto suspenderá toda la entrega insulina y desactivará el Pod.
+ Desactivando el Pod
+ Pod desactivado.\n\nPor favor, retire el Pod de su cuerpo y desecharlo.Recordatorio de configuración finalizadoEl apagado es inminente
diff --git a/omnipod/src/main/res/values-fr-rFR/strings.xml b/omnipod/src/main/res/values-fr-rFR/strings.xml
index 45a8383d02..19370889a2 100644
--- a/omnipod/src/main/res/values-fr-rFR/strings.xml
+++ b/omnipod/src/main/res/values-fr-rFR/strings.xml
@@ -2,7 +2,7 @@
- L\'intégration de la pompe Omnipod nécessite un boitier RileyLink (avec au minimum un firmware 2.0).
+ L\'intégration de la pompe Omnipod nécessite un boitier RileyLink (avec au minimum un firmware 2.0).Bips bolus activésBips basal activés
@@ -17,17 +17,16 @@
Nombre d\'unitésIl y a un moment
- Pod mngt
- État du Pod
- Total délivré
- %1$.2f U
- %1$.2f U restantes
- Plus de 50 U
- Adresse du Pod
- Pod expiré
+ État du Pod
+ Total délivré
+ %1$.2f U
+ %1$.2f U restantes
+ Plus de 50 U
+ Adresse du Pod
+ Pod expiréAttentionPas de Pod actif
- Configuration en cours (en attente d\'appairage et d\'amorçage)
+ Configuration en cours (en attente d\'appairage et d\'amorçage)Configuration en cours (en attente d\'insertion de canule)En cours d\'exécutionSuspendu
@@ -35,39 +34,16 @@
Délai d\'activation dépasséInactifDéfaut du Pod : %1$s %2$s
- Activer alertes Pod
- Valider Alertes
+ Activer alertes PodOmnipod (433.91 MHz)Adresse RileyLink invalide.Operation impossible.\n\nVous devez d\'abord configurer l\'Omnipod pour pouvoir faire cette operation.
- Operation impossible.\n\nVous devez attendre quelques minutes, jusqu\'à ce que AAPS tente de définir le profil de basale pour la première fois.
- type d\'action d\'init Pod non autorisée : %1$sPas de Pod actif
- Échec de vérification de la commande
- Erreur inconnue. Veuillez signaler ! (type : %1$s).
- Échec de communication : paramètres d\'entrées reçus invalides
- Échec de communication : délai expiré
- Échec de communication : Erreur inconnue. Veuillez signaler !
- Échec de communication : vérification de l\'intégrité du message échouée
- Échec de communication : paquet reçu du Pod invalide
- Échec de communication : état du Pod incorrect
- Échec de communication : réponse invalide reçue du Pod
- Échec de communication : message reçu du Pod avec un numéro de séquence invalide
- Échec de communication : message reçu du Pod avec une adresse invalide
- Échec de communication : échec du décodage du message reçu du Pod
- Échec de communication : resynchro nonce échouée
- Échec de communication : nonce non synchro
- Échec de communication : pas assez de données reçues du Pod
- Un défaut du Pod a été détecté (%1$03d %2$s). Veuillez désactiver votre Pod et en démarrer un nouveau
- Échec de communication : le Pod a renvoyé un message d\'erreur
- Gestion Pod
- Init PodDésactiver PodSupprimer le Pod
- Historique PodDéfinir bolusAnnuler bolusDéfinir basale temporaire
@@ -82,32 +58,21 @@
Suspendre l\'injectionPousuivre l\'injectionEntrée inconnue
- %1$.2f U
- %1$.2f U, Gluc=%2$.1f g
- Débit : %1$.2f U, durée : %2$d min
- Si vous appuyez sur OK, le Pod sera réinitialisé et vous ne pourrez plus communiquer avec lui. Ne le faite que si vous ne pouvez plus communiquer avec le Pod. Si vous pouvez toujours communiquer avec lui, veuillez utiliser l\'option Désactiver Pod.\n\n Si vous souhaitez le faire, assurez-vous de retirer également le Pod de votre corps.
- Historique Pod non disponible pour le moment.
- Remplir le Pod
- \nRemplir le nouveau Pod avec suffisamment d\'insuline pendant 3 jours.\n\nÉcoutez les deux bips du Pod pendant le processus de remplissage. Ils indiquent que la quantité minimale de 85U a été ajouté. Assurez-vous de vider complètement la seringue de remplissage, même après avoir entendu les deux bips.\n\nAprès avoir rempli le Pod, veuillez appuyer sur Suivant.\n\nRemarque : Ne retirez pas la protection de l\'aiguille du Pod pour le moment.\nRemarque :Veuillez placer le RileyLink en position verticale et placez le Pod quelques centimètres à côté.
- Amorçage
- Tentative d\'appairage et d\'amorçage du nouveau Pod.\n\nQuand tous les items sont cochées, appuyez sur Suivant.\n\nRemarque : Veuillez placer le RileyLink en position verticale et placez le Pod à quelques centimètres de lui.
- Collez le Pod
- \nPréparez le site d\'injection. Enlevez la protection de l\'aiguille et le support adhésif et collez le Pod sur le site d\'injection.\n\nSi la canule se colle, appuyez sur Annuler et jetez votre Pod.\n\nAppuyez sur Suivant pour insérer la canule et démarrer l\'injection de la basal.
- Insertion canule
- Tentative de définir le schéma de basal et d\'insertion de la canule.\n\nQuand tous les items sont cochés, appuyez sur Suivant.
- Infos Pod
- \nLe Pod est maintenant actif.\n\nVos débits de basal ont été programmés et la canule a été insérée.\n\nVeuillez verifier que la canule a été insérée correctement et remplacez votre Pod si vous pensez que ce n\'est pas le cas.
- Désactiver Pod
- \nAppuyez sur Suivant pour désactiver le Pod.\n\nRemarque : Cela suspendra l\'injection de l\'insuline et désactivera le Pod.
- Désactivation du Pod
- Désactivation du Pod.\n\nQuand tous les items sont cochés, appuyez sur Suivant.\n\nRemarque : Si la désactivation échoue en permanence, appuyez sur Annuler et utilisez l\'option Réinit. Pod pour réinitialiser l\'état du Pod.
- Pod désactivé.\n\nVeuillez enlever le Pod de votre corps et le jeter.
- Appairer le Pod
- Amorcer le Pod
- Remplir canule
- Définir profil de basale
- Annuler l\'injection
- Désactiver Pod
+ Remplir le Pod
+ \nRemplir le nouveau Pod avec suffisamment d\'insuline pendant 3 jours.\n\nÉcoutez les deux bips du Pod pendant le processus de remplissage. Ils indiquent que la quantité minimale de 85U a été ajouté. Assurez-vous de vider complètement la seringue de remplissage, même après avoir entendu les deux bips.\n\nAprès avoir rempli le Pod, veuillez appuyer sur Suivant.\n\nRemarque : Ne retirez pas la protection de l\'aiguille du Pod pour le moment.\nRemarque :Veuillez placer le RileyLink en position verticale et placez le Pod quelques centimètres à côté.
+ Amorçage
+ Tentative d\'appairage et d\'amorçage du nouveau Pod.\n\nQuand tous les items sont cochées, appuyez sur Suivant.\n\nRemarque : Veuillez placer le RileyLink en position verticale et placez le Pod à quelques centimètres de lui.
+ Collez le Pod
+ \nPréparez le site d\'injection. Enlevez la protection de l\'aiguille et le support adhésif et collez le Pod sur le site d\'injection.\n\nSi la canule se colle, appuyez sur Annuler et jetez votre Pod.\n\nAppuyez sur Suivant pour insérer la canule et démarrer l\'injection de la basal.
+ Insertion canule
+ Tentative de définir le schéma de basal et d\'insertion de la canule.\n\nQuand tous les items sont cochés, appuyez sur Suivant.
+ Infos Pod
+ \nLe Pod est maintenant actif.\n\nVos débits de basal ont été programmés et la canule a été insérée.\n\nVeuillez verifier que la canule a été insérée correctement et remplacez votre Pod si vous pensez que ce n\'est pas le cas.
+ Désactiver Pod
+ \nAppuyez sur Suivant pour désactiver le Pod.\n\nRemarque : Cela suspendra l\'injection de l\'insuline et désactivera le Pod.
+ Désactivation du Pod
+ Désactivation du Pod.\n\nQuand tous les items sont cochés, appuyez sur Suivant.\n\nRemarque : Si la désactivation échoue en permanence, appuyez sur Annuler et utilisez l\'option Réinit. Pod pour réinitialiser l\'état du Pod.
+ Pod désactivé.\n\nVeuillez enlever le Pod de votre corps et le jeter.Rappel fin d\'appairageRappel fin de configuration
@@ -123,41 +88,25 @@
Le paramétrage de la basal temp a peut-être échoué. Si une basal temp était en cours d\'exécution, elle a été annulée. Veuillez actualiser manuellement l\'état du Pod à partir de l\'onglet Omnipod.Le paramétrage de l\'heure a peut-être échoué. L\'injection peut être suspendue ! Actualisez manuellement l\'état du Pod à partir de l\'onglet Omnipod et reprenez l\'injection si nécessaire.Le paramétrage de l\'heure a échoué. L\'injection est suspendue ! Veuillez poursuivre manuellement l\'injection à partir de l\'onglet Omnipod.
- Impossible de vérifier si le bolus a réussi. Veuillez vérifier manuellement que votre Pod est en train de délivrer un bolus en écoutant des clics. Si vous êtes sûr que le bolus n\'a pas réussi, vous devez supprimer manuellement l\'entrée bolus des traitements, même si vous cliquez sur \'Annuler bolus\' maintenant !
- Impossible de vérifier si le bolus SMB (%1$.2f U) a réussi. Si vous êtes certain que le bolus n\'a pas réussi, vous devez supprimer manuellement l\'entrée SMB des traitements.
- Stats RL
- LOT
- TID
- Version du firmware
- Erreurs
- Le profil Basal est le même, donc il ne sera pas redéfini.
+ LOT
+ TID
+ Version du firmware
+ ErreursRéinitialiser la config. RileyLink
- Heure et/ou fuseau horaire changé sur le Pod%1$s et %2$sil y a %1$s
- En attente de connexion RileyLink ...
- Le bolus n\'a pas réussi
- Actualiser
- Pousuivre l\'injection
- Pod suspendu
+ En attente de connexion RileyLink ...Il y a moins d\'une minute
- Arrêter
- Appairer et amorcer
- Remplir la canule et définir le profil de basal
- Erreur inconnue
- Ancien débit de basal temporaire annulé, mais impossible de définir le nouveau débits de basal temporaire
+ Appairer et amorcer
+ Remplir la canule et définir le profil de basalDéfinir un faux débit de basal temporaire car le Pod est suspenduAnnuler le faux débit de basal temporaire créé à cause du Pod suspenduincertain
- Configuration des alertes mise à jour dans le PodRileyLinkAutresAlertesBips de confirmation
- Quitter
- Précédent
- Suivant
- Terminer
+ SuivantDescriptionSourceDate
diff --git a/omnipod/src/main/res/values-it-rIT/strings.xml b/omnipod/src/main/res/values-it-rIT/strings.xml
index a1cedcb4cd..939361fe40 100644
--- a/omnipod/src/main/res/values-it-rIT/strings.xml
+++ b/omnipod/src/main/res/values-it-rIT/strings.xml
@@ -2,7 +2,7 @@
- Integrazione del microinfusore Omnipod, richiede un dispositivo RileyLink (con almeno il firmware 2.0).
+ Integrazione del microinfusore Omnipod, richiede un dispositivo RileyLink (con almeno il firmware 2.0).BIP bolo abilitatoBIP basale abilitato
@@ -17,17 +17,16 @@
Numero di unitàMomenti fa
- GSTN pod
- Stato pod
- Totale erogato
- %1$.2f U
- %1$.2f U rimanenti
- Oltre 50 U
- Indirizzo pod
- Scadenza pod
+ Stato pod
+ Totale erogato
+ %1$.2f U
+ %1$.2f U rimanenti
+ Oltre 50 U
+ Indirizzo pod
+ Scadenza podAvvisoNessun pod attivo
- Configurazione in corso (attesa associazione e caricamento)
+ Configurazione in corso (attesa associazione e caricamento)Configurazione in corso (attesa inserimento cannula)In esecuzioneSospeso
@@ -35,39 +34,16 @@
Tempo di attivazione superatoInattivoGuasto pod: %1$s %2$s
- Attiva avvisi pod
- Conferma avvisi
+ Attiva avvisi podOmnipod (433.91 MHz)Indirizzo RileyLink non valido.Operazione non possibile.\n\nDevi prima configurare Omnipod.
- Operazione non possibile.\n\n Devi attendere qualche minuto che AAPS imposti il profilo basale per la prima volta.
- Illegal PodInitActionType: %1$sNessun pod attivo
- Verifica comando fallita
- Si è verificato un errore imprevisto. Segnalalo! (%1$s).
- Comunicazione fallita: ricevuti parametri di input non validi
- Comunicazione fallita: timeout
- Comunicazione fallita: si è verificato un errore imprevisto. Segnalalo!
- Comunicazione fallita: verifica dell\'integrità del messaggio fallita
- Comunicazione fallita: ricevuto un pacchetto non valido dal pod
- Comunicazione fallita: il pod è in uno stato non corretto
- Comunicazione fallita: ricevuta una risposta non valida dal pod
- Comunicazione fallita: ricevuto dal pod un messaggio con una sequenza numerica non valida
- Comunicazione fallita: ricevuto dal pod un messaggio con un indirizzo non valido
- Comunicazione fallita: non si è riuscito a decodificare il messaggio dal pod
- Comunicazione fallita: risincronizzazione \'nonce\' non riuscita
- Comunicazione fallita: \'nonce\' non sincronizzato
- Comunicazione fallita: non abbastanza dati ricevuti dal pod
- È stato rilevato un guasto al pod (%1$03d %2$s). Disattiva il tuo pod e avviane uno nuovo
- Comunicazione fallita: il pod ha restituito una risposta di errore
- Gestione pod
- Inizializza podDisattiva podScarta pod
- Storico podImposta boloCancella boloImposta basale temporanea
@@ -82,32 +58,21 @@
Sospendi erogazioneRiprendi erogazioneInserimento sconosciuto
- %1$.2f U
- %1$.2f U, CHO=%2$.1f g
- Tasso: %1$.2f U, durata: %2$d min
- Se premi OK, lo stato del pod verrà resettato forzatamente e non sarai più in grado di comunicare con il pod. Fallo solo se non riesci più a comunicare con il pod. Se puoi ancora comunicare con il pod, utilizza l\'opzione Disattiva pod.\n\nSe desideri procedere, assicurati anche di rimuovere il pod dal tuo corpo.
- Storico pod non disponibile al momento.
- Riempi il pod
- \nRiempi il nuovo pod con abbastanza insulina per 3 giorni.\n\nResta in ascolto di due bip dal pod durante il processo di riempimento. Questi indicano che è stata inserita la quantità minima di 85U. Assicurati di svuotare completamente la siringa di riempimento, anche dopo aver sentito i due segnali acustici.\n\nDopo il riempimento del pod, premi Avanti.\n\nNota: non rimuovere la protezione dell\'ago del pod in questo momento.\nNota: colloca il RileyLink in posizione verticale e il pod a pochi centimetri di distanza.
- Caricamento
- Prova associazione nuovo pod e caricamento.\n\nQuando tutti gli elementi sono stati controllati, puoi premere Avanti.\n\nNota: colloca il RileyLink in posizione verticale e il pod a pochi centimetri di distanza.
- Attacca il pod
- \nPrepara il sito di infusione. Rimuovi la protezione dell\'ago del pod e il supporto adesivo e attacca il pod al sito di infusione.\n\nSe la cannula fuoriesce premi Annulla e cambia pod.\n\nPremi Avanti per inserire la cannula e iniziare l\'erogazione della basale.
- Inserimento cannula
- Prova impostazione piano basale iniziale e inserimento cannula.\n\nQuando tutti gli elementi sono stati controllati, puoi premere Avanti.
- Info pod
- \nIl pod è adesso attivo.\n\nIl tuo piano basale è stato programmato e la cannula è stata inserita.\n\nVerifica che la cannula sia stata inserita correttamente e sostituisci il tuo pod se avverti il contrario.
- Disattiva pod
- \nPremi Avanti per disattivare il pod.\n\nNota: Questo sospenderà tutta l\'erogazione di insulina e disattiverà il pod.
- Disattivazione del pod
- Disattivazione del pod.\n\nQuando tutti gli elementi sono stati controllati, puoi premere Avanti.\n\nNota: se la disattivazione fallisce di continuo, premi Annulla e usa l\'opzione Scarta pod per resettare forzatamente lo stato del pod.
- Pod disattivato.\n\nRimuovi il pod dal tuo corpo e gettalo.
- Associa pod
- Carica pod
- Riempi cannula
- Imposta profilo basale
- Cancella erogazione
- Disattiva pod
+ Riempi il pod
+ \nRiempi il nuovo pod con abbastanza insulina per 3 giorni.\n\nResta in ascolto di due bip dal pod durante il processo di riempimento. Questi indicano che è stata inserita la quantità minima di 85U. Assicurati di svuotare completamente la siringa di riempimento, anche dopo aver sentito i due segnali acustici.\n\nDopo il riempimento del pod, premi Avanti.\n\nNota: non rimuovere la protezione dell\'ago del pod in questo momento.\nNota: colloca il RileyLink in posizione verticale e il pod a pochi centimetri di distanza.
+ Caricamento
+ Prova associazione nuovo pod e caricamento.\n\nQuando tutti gli elementi sono stati controllati, puoi premere Avanti.\n\nNota: colloca il RileyLink in posizione verticale e il pod a pochi centimetri di distanza.
+ Attacca il pod
+ \nPrepara il sito di infusione. Rimuovi la protezione dell\'ago del pod e il supporto adesivo e attacca il pod al sito di infusione.\n\nSe la cannula fuoriesce premi Annulla e cambia pod.\n\nPremi Avanti per inserire la cannula e iniziare l\'erogazione della basale.
+ Inserimento cannula
+ Prova impostazione piano basale iniziale e inserimento cannula.\n\nQuando tutti gli elementi sono stati controllati, puoi premere Avanti.
+ Info pod
+ \nIl pod è adesso attivo.\n\nIl tuo piano basale è stato programmato e la cannula è stata inserita.\n\nVerifica che la cannula sia stata inserita correttamente e sostituisci il tuo pod se avverti il contrario.
+ Disattiva pod
+ \nPremi Avanti per disattivare il pod.\n\nNota: Questo sospenderà tutta l\'erogazione di insulina e disattiverà il pod.
+ Disattivazione del pod
+ Disattivazione del pod.\n\nQuando tutti gli elementi sono stati controllati, puoi premere Avanti.\n\nNota: se la disattivazione fallisce di continuo, premi Annulla e usa l\'opzione Scarta pod per resettare forzatamente lo stato del pod.
+ Pod disattivato.\n\nRimuovi il pod dal tuo corpo e gettalo.Fine promemoria associazioneFine promemoria configurazione
@@ -123,43 +88,25 @@
Impostazione basale temporanea fallita. Se una basale temporanea era precedentemente in esecuzione, è stata cancellata. Aggiorna manualmente lo stato del pod dalla scheda Omnipod.L\'Impostazione dell\'ora potrebbe essere fallita. L\'erogazione potrebbe essere sospesa! Aggiorna manualmente lo stato del pod dalla scheda Omnipod e riprendi l\'erogazione se necessario.Impostazione ora fallita. L\'erogazione è sospesa! Riprendi manualmente l\'erogazione dalla scheda Omnipod.
- Impossibile verificare se il bolo è riuscito. Verifica manualmente che il tuo pod stia erogando insulina ascoltando i click. Se sei sicuro che il bolo non sia riuscito, dovresti eliminare manualmente l\'inserimento del bolo dalla sezione Trattamenti, anche se fai click su \'Cancella bolo\' in questo momento!
- Impossibile verificare se il bolo SMB (%1$.2f U) è riuscito. Se sei sicuro che il bolo non sia riuscito, dovresti eliminare manualmente l\'inserimento dalla sezione Trattamenti.
- Statistiche RL
- Log impulsi
- LOT
- TID
- Versione firmware
- Errori
- Il profilo basale è lo stesso, non sarà impostato di nuovo.
+ LOT
+ TID
+ Versione firmware
+ ErroriReset config.ne RileyLink
- Ora e/o fuso orario cambiati nel pod%1$s e %2$s%1$s fa
- Attesa connessione RileyLink...
- Il bolo non è riuscito
- Aggiorna
- Riprendi erogazione
- Pod sospeso
+ Attesa connessione RileyLink...Meno di un minuto fa
- Sospendi
- Associa e carica
- Riempi cannula e imposta profilo basale
- Ottieni log impulsi
- Errore indeterminato
- Cancellata la vecchia basale temporanea, ma fallita l\'impostazione della nuova basale temporanea
+ Associa e carica
+ Riempi cannula e imposta profilo basaleImposta basale temporanea fittizia perché il pod è sospesoCancella basale temporanea fittizia creata perché il pod era sospesoindeterminato
- Configurazione avviso aggiornata nel podRileyLinkAltroAvvisiBeep di conferma
- Esci
- Indietro
- Avanti
- Fine
+ AvantiDescrizioneFonteData
diff --git a/omnipod/src/main/res/values-lt-rLT/strings.xml b/omnipod/src/main/res/values-lt-rLT/strings.xml
index 309d17a311..1a8f183c10 100644
--- a/omnipod/src/main/res/values-lt-rLT/strings.xml
+++ b/omnipod/src/main/res/values-lt-rLT/strings.xml
@@ -2,7 +2,7 @@
- Omnipod pompos integracijai reikalingas RileyLink (programinės įrangos versija ne mažiau 2.0).
+ Omnipod pompos integracijai reikalingas RileyLink (programinės įrangos versija ne mažiau 2.0).Boluso signalai įjungtiBazės signalai įjungti
@@ -12,29 +12,23 @@
Galiojimo pabaigos priminimasValandos prieš išsijungimą
- liko %1$.2f U
- Daugiau nei 50 U
+ liko %1$.2f U
+ Daugiau nei 50 UOmnipod (433.91 MHz)
- Neteisingas inicijavimo tipas:%1$s
- Ryšio klaida: įvyko netikėta klaida. Prašome pranešti!
- Inicijuoti PODIšjungti POD
- POD istorija šiuo metu nėra prieinama.
- Užpildyti POD
- Užpildymas
- Prijunkite POD
- \nParuoškite infuzijos vietą. Nuimkite adatos apsauginį dangtelį, pleistro apsaugą ir užklijuokite POD ant infuzijos vietos.\n\nJei kaniulė atšoks, paspauskite Atšaukti ir pakeiskite POD.\n\nSpauskite Kitas, norėdami įvesti kaniulę ir pradėti leisti insuliną.
- Įvedama kaniulė
- Mėginkite nustatyti pradinį bazės profilį ir įvesti kaniulę.\n\nKai visi elementai yra patikrinti, galite paspausti Kitas.
- \nPOD yra aktyvus.\n\nJūsų bazės profilis yra suprogramuotas ir kaniulė įvesta.\n\nPatikrinkite, ar kaniulė buvo tinkamai įvesta, ir, jei jaučiate, kad taip nėra, pakeiskite POD.
- \nSpustelėkiteKitas, kad išjungtumėte POD.\n\nPastaba: Tai sustabdys insulino leidimą ir išjungs POD.
- POD išjungimas
- POD išjungtas.\n\nNuimkite POD nuo odos ir jį išmeskite.
- POD suporavimas
- POD užpildymas
+ Užpildyti POD
+ Užpildymas
+ Prijunkite POD
+ \nParuoškite infuzijos vietą. Nuimkite adatos apsauginį dangtelį, pleistro apsaugą ir užklijuokite POD ant infuzijos vietos.\n\nJei kaniulė atšoks, paspauskite Atšaukti ir pakeiskite POD.\n\nSpauskite Kitas, norėdami įvesti kaniulę ir pradėti leisti insuliną.
+ Įvedama kaniulė
+ Mėginkite nustatyti pradinį bazės profilį ir įvesti kaniulę.\n\nKai visi elementai yra patikrinti, galite paspausti Kitas.
+ \nPOD yra aktyvus.\n\nJūsų bazės profilis yra suprogramuotas ir kaniulė įvesta.\n\nPatikrinkite, ar kaniulė buvo tinkamai įvesta, ir, jei jaučiate, kad taip nėra, pakeiskite POD.
+ \nSpustelėkiteKitas, kad išjungtumėte POD.\n\nPastaba: Tai sustabdys insulino leidimą ir išjungs POD.
+ POD išjungimas
+ POD išjungtas.\n\nNuimkite POD nuo odos ir jį išmeskite.Priminimas apie sąrankos pabaigąIšjungimas yra neišvengiamas
diff --git a/omnipod/src/main/res/values-nl-rNL/strings.xml b/omnipod/src/main/res/values-nl-rNL/strings.xml
index 2e4ffb1f94..48e84875cd 100644
--- a/omnipod/src/main/res/values-nl-rNL/strings.xml
+++ b/omnipod/src/main/res/values-nl-rNL/strings.xml
@@ -2,31 +2,26 @@
- Pomp integratie voor Omnipod, vereist RileyLink (met firmware 2.0 of hoger).
+ Pomp integratie voor Omnipod, vereist RileyLink (met firmware 2.0 of hoger).
- %1$.2f E over
- Meer dan 50 E
+ %1$.2f E over
+ Meer dan 50 EOmnipod (433,91 MHz)
- Communicatie mislukt: er is een onvoorziene fout opgetreden. Rapporteer dit alsjeblieft!
- Initialiseer PodDeactiveer Pod
- Pod Historie momenteel niet beschikbaar.
- Vul de Pod
- Uitvullen
- Plaats de Pod
- \nBereid het plaatsen voor. Verwijder de beschermdop van de naald en haal de papiertjes van de sticker.\n\n(Mocht je zien dat de canule uitsteekt, druk dan op Annuleren en begin overnieuw met een andere Pod.)\n\nBevestig de Pod op de huid. Druk op Volgende om de canule te gaan inschieten en de insulinetoediening te laten starten.
- Canule inschieten
- De basaalstand wordt ingesteld en de canule wordt ingeschoten.\n\nWanneer alle onderdelen zijn afgerond, druk je op Volgende.
- \nDe Pod is nu actief.\n\nJouw basaalprofiel is ingeladen in de Pod en de canule is ingebracht.\n\nControleer of de canule correct is geplaatst en vervang de Pod als je denkt dat er iets is misgegaan.
- \nDruk op Volgende om de Pod te deactiveren.\n\nOpmerking: Hiermee wordt de insuline toediening gestopt en wordt de Pod gedeactiveerd.
- Deactiveren van de Pod
- Pod gedeactiveerd.\n\nVerwijder de Pod van je lichaam en gooi hem weg.
- Pod Koppelen
- Pod Uitvullen
+ Vul de Pod
+ Uitvullen
+ Plaats de Pod
+ \nBereid het plaatsen voor. Verwijder de beschermdop van de naald en haal de papiertjes van de sticker.\n\n(Mocht je zien dat de canule uitsteekt, druk dan op Annuleren en begin overnieuw met een andere Pod.)\n\nBevestig de Pod op de huid. Druk op Volgende om de canule te gaan inschieten en de insulinetoediening te laten starten.
+ Canule inschieten
+ De basaalstand wordt ingesteld en de canule wordt ingeschoten.\n\nWanneer alle onderdelen zijn afgerond, druk je op Volgende.
+ \nDe Pod is nu actief.\n\nJouw basaalprofiel is ingeladen in de Pod en de canule is ingebracht.\n\nControleer of de canule correct is geplaatst en vervang de Pod als je denkt dat er iets is misgegaan.
+ \nDruk op Volgende om de Pod te deactiveren.\n\nOpmerking: Hiermee wordt de insuline toediening gestopt en wordt de Pod gedeactiveerd.
+ Deactiveren van de Pod
+ Pod gedeactiveerd.\n\nVerwijder de Pod van je lichaam en gooi hem weg.Herinnering setup afrondenSchakelt zeer binnenkort uit
diff --git a/omnipod/src/main/res/values-pl-rPL/strings.xml b/omnipod/src/main/res/values-pl-rPL/strings.xml
index 7ef9aa4820..01699174db 100644
--- a/omnipod/src/main/res/values-pl-rPL/strings.xml
+++ b/omnipod/src/main/res/values-pl-rPL/strings.xml
@@ -2,32 +2,26 @@
- Integracja pompy Omnipod, wymaga RileyLink (z firmwarem 2.0 lub wyższym).
+ Integracja pompy Omnipod, wymaga RileyLink (z firmwarem 2.0 lub wyższym).
- %1$.2f U zostało
- Ponad 50 U
+ %1$.2f U zostało
+ Ponad 50 UOmnipod (433,91 MHz)
- Niedozwolone działanie PodInitActionType: %1$s
- Komunikacja nie powiodła się: wystąpił nieoczekiwany błąd. Proszę zgłosić!
- Uruchom PodOdłącz Pod
- Historia Pod nie jest dostępna w tej chwili.
- Napełnij Pod
- Wypełnianie
- Przymocuj Poda
- \nPrzygotowanie miejsca do infuzji. Zdjąć osłonkę igły i zabezpieczenie plastra i przykleić Pod do skóry w miejscu wkłucia.\n\nJeśli kaniula odkleja się, proszę wcisnąć Anuluj i odczepić Pod.\n\nNaciśnij Następny w celu wprowadzenia kaniuli i rozpoczęcia podawania bazy.
- Wprowadzanie kaniuli
- Próba ustawienia początkowego planu bazowego i wprowadzeia kaniuli.\n\nKiedy wszystkie elementy są sprawdzane, można nacisnąć Następny.
- \nPod jest teraz aktywny.\n\nTwój plan dawki bazowej został zaprogramowany i wprowadzono kaniulę w miejsce wkłucia.\n\nSprawdź, czy kaniula została prawidłowo włożona i wymień swój Pod, jeśli czujesz, że nie.
- \nNaciśnij Następny w celu odłączenia Poda.\n\nUwaga: To spowoduje zawieszenie wszystkich dostaw insuliny i dezaktywację Poda.
- Odłączanie Poda
- Pod odłączony.\n\nProszę odkleić Pod od ciała i wyrzucić go.
- Sparuj Pod
- Wypełnij Pod
+ Napełnij Pod
+ Wypełnianie
+ Przymocuj Poda
+ \nPrzygotowanie miejsca do infuzji. Zdjąć osłonkę igły i zabezpieczenie plastra i przykleić Pod do skóry w miejscu wkłucia.\n\nJeśli kaniula odkleja się, proszę wcisnąć Anuluj i odczepić Pod.\n\nNaciśnij Następny w celu wprowadzenia kaniuli i rozpoczęcia podawania bazy.
+ Wprowadzanie kaniuli
+ Próba ustawienia początkowego planu bazowego i wprowadzeia kaniuli.\n\nKiedy wszystkie elementy są sprawdzane, można nacisnąć Następny.
+ \nPod jest teraz aktywny.\n\nTwój plan dawki bazowej został zaprogramowany i wprowadzono kaniulę w miejsce wkłucia.\n\nSprawdź, czy kaniula została prawidłowo włożona i wymień swój Pod, jeśli czujesz, że nie.
+ \nNaciśnij Następny w celu odłączenia Poda.\n\nUwaga: To spowoduje zawieszenie wszystkich dostaw insuliny i dezaktywację Poda.
+ Odłączanie Poda
+ Pod odłączony.\n\nProszę odkleić Pod od ciała i wyrzucić go.Zakończ przypomnienie o konfiguracjiWyłączenie jest nieuchronne
diff --git a/omnipod/src/main/res/values-pt-rPT/strings.xml b/omnipod/src/main/res/values-pt-rPT/strings.xml
index b1a96f8f1d..5e986ed582 100644
--- a/omnipod/src/main/res/values-pt-rPT/strings.xml
+++ b/omnipod/src/main/res/values-pt-rPT/strings.xml
@@ -2,23 +2,18 @@
- Integração de bomba para Omnipod, requer RileyLink (com pelo menos firmware 2.0) dispositivo.
+ Integração de bomba para Omnipod, requer RileyLink (com pelo menos firmware 2.0) dispositivo.
- %1$.2f U
- %1$.2f U restante
- Mais de 50 U
+ %1$.2f U
+ %1$.2f U restante
+ Mais de 50 UAvisoA correrOmnipod (433.91 MHz)A operação não é possível.\n\nPrecisa configurar o Omnipod primeiro, antes de pode usar esta operação.
- PodInitActionType Ilegal: %1$s
- A verificação do comando falhou
- Falha na comunicação: foram recebidos parâmetros de entrada inválidos
- Falha na comunicação: tempo limite
- Falha na comunicação: ocorreu um erro inesperado. Por favor, reporte!Falha na comunicação: mensagem de falha de verificação de integridadeFalha na comunicação: recebeu um pacote inválido do PodFalha na comunicação: o Pod está em um estado errado
@@ -32,26 +27,21 @@
Uma falha de Pod (%1$03d %2$s) foi detectada. Por favor, desactive o Pod e inicie um novoFalha na comunicação: o Pod devolveu uma resposta de erro
- Iniciar PodDesactivar Pod%1$.2f U%1$.2f U, HC=%2$.1f g
- Histórico do Pod não disponível no momento.
- Encher o Pod
- A Purgar
- Anexar o Pod
- \nPrepare o local de infusão. Remova a tampa da agulha do Pod e o adesivo e fixe o Pod no local de infusão.\n\nSe a canula sair, por favor, pressione Cancelar e descarte o seu Pod.\n\nPressione Próximo para inserir a canula e começar a administração da basal.
- A inserir canula
- A tentar definir um plano da basal inicial e inserir canula.\n\nQuando todos os itens estiverem verificados, pode pressionar Próximo.
- Info Pod
- \nO Pod está agora activo.\n\nO seu plano de basal foi programado e a canula foi inserida.\n\nPor favor, verifique se a canula foi inserida correctamente e substitua o seu Pod se você se sente que não.
- Desactivar Pod
- \nPressione Próximo para desactivar o Pod.\n\nNota: Isto irá suspender toda a administração de insulina e desactivar o Pod.
- A Desactivar Pod
- Pod desactivado.\n\nPor favor, remova o Pod do seu corpo e descarte-o.
- Emparelhar Pod
- Purgar Pod
- Desactivar Pod
+ Encher o Pod
+ A Purgar
+ Anexar o Pod
+ \nPrepare o local de infusão. Remova a tampa da agulha do Pod e o adesivo e fixe o Pod no local de infusão.\n\nSe a canula sair, por favor, pressione Cancelar e descarte o seu Pod.\n\nPressione Próximo para inserir a canula e começar a administração da basal.
+ A inserir canula
+ A tentar definir um plano da basal inicial e inserir canula.\n\nQuando todos os itens estiverem verificados, pode pressionar Próximo.
+ Info Pod
+ \nO Pod está agora activo.\n\nO seu plano de basal foi programado e a canula foi inserida.\n\nPor favor, verifique se a canula foi inserida correctamente e substitua o seu Pod se você se sente que não.
+ Desactivar Pod
+ \nPressione Próximo para desactivar o Pod.\n\nNota: Isto irá suspender toda a administração de insulina e desactivar o Pod.
+ A Desactivar Pod
+ Pod desactivado.\n\nPor favor, remova o Pod do seu corpo e descarte-o.Lembrete Concluir EmparelhamentoLembrete Terminar Configuração
@@ -60,18 +50,14 @@
Encerramento iminenteReservatório baixoAlerta desconhecido
- Estatísticas RL
- Erros
- Perfil Basal é o mesmo, então não será definido novamente.
- Actualizar
- Suspender
- Falha incerta
+ Estatísticas RL
+ Erros
+ Actualizar
+ SuspenderRileyLinkOutroAlertas
- Sair
- Anterior
- Seguinte
+ SeguinteDescriçãoFonteData
diff --git a/omnipod/src/main/res/values-ro-rRO/strings.xml b/omnipod/src/main/res/values-ro-rRO/strings.xml
index 2596075f76..265b8342d9 100644
--- a/omnipod/src/main/res/values-ro-rRO/strings.xml
+++ b/omnipod/src/main/res/values-ro-rRO/strings.xml
@@ -2,7 +2,7 @@
- Integrare pompa pentru Omnipod, necesită dispozitivul RileyLink (cu versiune firmware de cel puțin 2.0).
+ Integrare pompa pentru Omnipod, necesită dispozitivul RileyLink (cu versiune firmware de cel puțin 2.0).Bip pentru Bolus activatBip pentru Bazală activat
@@ -17,17 +17,17 @@
Număr unitățiAcum câteva momente
- Managementul POD-ului
- Statusul POD-ului
- Total livrat
- %1$.2f U
- %1$.2f U rămase
- Peste 50 U
- Adresă Pod
- Pod-ul expiră
+ Managementul POD-ului
+ Statusul POD-ului
+ Total livrat
+ %1$.2f U
+ %1$.2f U rămase
+ Peste 50 U
+ Adresă Pod
+ Pod-ul expirăAtențieNiciun Pod activ
- Inițializarea este în curs (se așteaptă împerecherea și amorsarea)
+ Inițializarea este în curs (se așteaptă împerecherea și amorsarea)Inițializarea este în curs (se așteaptă inserarea canulei)RuleazăSuspendat
@@ -35,20 +35,14 @@
Timp de activare depăşitInactivPod defect: %1$s %2$s
- Alerte active Pod
- Confirmare alerte
+ Alerte active Pod
+ Confirmare alerteOmnipod (433.91 MHz)Adresa RileyLink invalidă.Operațiunea nu este posibilă.\n\nTrebuie să configuraţi Omnipod înainte de a putea efectua această operațiune.
- Operaţiunea nu este posibilă.\n\n Trebuie să aşteptaţi câteva minute până când AAPS încearcă să seteze profilul bazal pentru prima dată.
- Acțiune PodInitActionType ilegala: %1$sNiciun Pod activ
- Verificarea comenzii a eşuat
- Comunicarea a eșuat: s-au primit parametri de intrare incorecți
- Comunicarea a eșuat: timpul a expirat
- Comunicarea a eşuat: a apărut o eroare neaşteptată. Vă rugăm să o raportaţi!Comunicarea a eşuat: verificarea integrităţii mesajului a eşuatComunicarea a eşuat: a fost primit un pachet invalid de la PodComunicarea a eșuat: Pod-ul este într-o stare incorectă
@@ -63,10 +57,9 @@
Comunicarea a eșuat: Pod-ul a returnat un răspuns de eroareManagement Pod
- Inițializare PodDezactivare PodBaandonare Pod
- Istoric Pod
+ Istoric PodSetează bolusAnulează bolusSetează bazala temporară
@@ -84,29 +77,22 @@
%1$.2f U%1$.2f U, CH=%2$.1f gRata: %1$.2f U, Durata: %2$d min
- Dacă apăsați OK, statusul Pod-ului va fi resetat forțat și nu veți mai putea comunica cu Pod-ul. Faceți acest lucru numai dacă nu mai se poate comunica deloc cu Pod-ul. Dacă se mai poate comunica cu Pod-ul, va rugam sa folosiți opțiunea Dezactivare Pod.\n\nDacă doriți să continuați, vă rugăm să vă asigurați, de asemenea, ca îndepărtați Pod-ul de pe corpul dvs.
- Istoricul Pod-ului nu este disponibil momentan.
- Umpleţi Pod-ul
- \nUmpleți noul Pod cu suficientă insulină pentru 3 zile.\n\nAr trebui sa auziți două bipuri de la Pod în timpul procesului de umplere. Acestea indică faptul că, cantitatea minimă de 85U a fost introdusă. Asigurați-vă ca ați golit complet seringa de umplere, chiar și după ce ați auzit două bipuri.\n\nDupă umplerea Pod-ului, vă rugăm să apăsați Următorul.\n\nNotă: Nu scoateți capacul transparent al acului in acest moment.\nNotă: Va rugam sa puneți RileyLink în poziție verticala și plasați Pod-ul la o distanta de câțiva centimetri.
- Amorsare
- Încercare de împerechere cu noul Pod și amorsare.\n\nAtunci când toate etapele sunt gata, puteți apăsa Următorul.\n\nNotă: Vă rugăm sa puneți RileyLInk in poziție verticala si sa plasați Pod-ul la câțiva centimetri distanta.
- Atașați Pod-ul
- \nPregătiți setul de infuzie. Scoateți capacul acului și suport adeziv și atașați Pod-ul la locul de infuzie.\n\nDacă, canula pare in neregulă, apăsați Anulare și aruncați Pod-ul.\n\nApăsați Următorul pentru a introduce canula și a începe livrarea bazalei.
- Inserare canulă
- Încercare de programare inițială a ratelor bazale si de insertie a canulei.\n\nCând toate elementele sunt gata, puteți apăsa Următorul.
- Informații Pod
- \nPod-ul este acum activ.\n\nRatele bazale au fost programate și canula a fost introdusă.\n\nVă rugăm să verificați că acul a fost introdus corect. Dacă considerați ca nu, înlocuiți Pod-ul.
- Dezactivare Pod
- \nApăsați Următorul pentru a dezactiva Pod-ul.\n\nNotă: Acest lucru va suspenda orice livrare de insulină și va dezactiva Pod-ul.
- Dezactivare Pod
- Dezactivare Pod.\n\nAtunci când toate elementele sunt gata, puteți apăsa Următorul.\n\nNotă: Dacă dezactivarea eșuează continuu, vă rugăm să apăsați Anulează și folosiți opțiunea Resetare Pod pentru a forța resetarea Pod-ului.
- Pod dezactivat.\n\nScoateți Pod-ul și aruncați-l.
- Împerechere Pod
- Amorsare Pod
- Umplere canulă
- Setare profil bazala
- Anulare livrare
- Dezactivare Pod
+ Dacă apăsați OK, statusul Pod-ului va fi resetat forțat și nu veți mai putea comunica cu Pod-ul. Faceți acest lucru numai dacă nu mai se poate comunica deloc cu Pod-ul. Dacă se mai poate comunica cu Pod-ul, va rugam sa folosiți opțiunea Dezactivare Pod.\n\nDacă doriți să continuați, vă rugăm să vă asigurați, de asemenea, ca îndepărtați Pod-ul de pe corpul dvs.
+ Umpleţi Pod-ul
+ \nUmpleți noul Pod cu suficientă insulină pentru 3 zile.\n\nAr trebui sa auziți două bipuri de la Pod în timpul procesului de umplere. Acestea indică faptul că, cantitatea minimă de 85U a fost introdusă. Asigurați-vă ca ați golit complet seringa de umplere, chiar și după ce ați auzit două bipuri.\n\nDupă umplerea Pod-ului, vă rugăm să apăsați Următorul.\n\nNotă: Nu scoateți capacul transparent al acului in acest moment.\nNotă: Va rugam sa puneți RileyLink în poziție verticala și plasați Pod-ul la o distanta de câțiva centimetri.
+ Amorsare
+ Încercare de împerechere cu noul Pod și amorsare.\n\nAtunci când toate etapele sunt gata, puteți apăsa Următorul.\n\nNotă: Vă rugăm sa puneți RileyLInk in poziție verticala si sa plasați Pod-ul la câțiva centimetri distanta.
+ Atașați Pod-ul
+ \nPregătiți setul de infuzie. Scoateți capacul acului și suport adeziv și atașați Pod-ul la locul de infuzie.\n\nDacă, canula pare in neregulă, apăsați Anulare și aruncați Pod-ul.\n\nApăsați Următorul pentru a introduce canula și a începe livrarea bazalei.
+ Inserare canulă
+ Încercare de programare inițială a ratelor bazale si de insertie a canulei.\n\nCând toate elementele sunt gata, puteți apăsa Următorul.
+ Informații Pod
+ \nPod-ul este acum activ.\n\nRatele bazale au fost programate și canula a fost introdusă.\n\nVă rugăm să verificați că acul a fost introdus corect. Dacă considerați ca nu, înlocuiți Pod-ul.
+ Dezactivare Pod
+ \nApăsați Următorul pentru a dezactiva Pod-ul.\n\nNotă: Acest lucru va suspenda orice livrare de insulină și va dezactiva Pod-ul.
+ Dezactivare Pod
+ Dezactivare Pod.\n\nAtunci când toate elementele sunt gata, puteți apăsa Următorul.\n\nNotă: Dacă dezactivarea eșuează continuu, vă rugăm să apăsați Anulează și folosiți opțiunea Resetare Pod pentru a forța resetarea Pod-ului.
+ Pod dezactivat.\n\nScoateți Pod-ul și aruncați-l.Notificare Finalizare împerechereFinalizare memento setare
@@ -124,29 +110,26 @@
Setarea timpului a eșuat. Livrarea este suspendată! Vă rugăm să reluați manual livrarea din secțiunea Omnipod.Nu se poate verifica dacă bolusul a reuşit. Vă rugăm să verificați manual că Pod-ul poate bolusa ascultand click-urile. Daca ești sigur ca bolus nu a reusit, ar trebui să stergi manual intrarea bolus din Tratamente, chiar dacă dai click pe \'Oprește bolus\' acum!Nu s-a putut verifica dacă bolusul SMB (%1$.2f U) a reușit. Daca ești sigur ca bolusul nu a reușit, ar trebui să ștergi manual intrarea SMB din Tratamente.
- Statistici RL
- Jurnal Pulsuri
- LOT
- TID
- Versiune firmware
- Erori
- Profilul bazal este la fel cu cel existent și nu va fi reincărcat.
+ Statistici RL
+ Jurnal Pulsuri
+ LOT
+ TID
+ Versiune firmware
+ EroriResetează configurația RileyLinkSchimbare oră și/sau fus orar în Pod%1$s și %2$s%1$s în urmă
- Aşteptare conexiune RileyLink...
+ Aşteptare conexiune RileyLink...Bolusul nu a reușit
- Actualizează
- Reluați livrarea
- Pod suspendat
+ Actualizează
+ Reluați livrarea
+ Pod suspendatMai puțin de un minut în urmă
- Suspendare
- Împerechere și amorsare
- Umpleţi canula şi setaţi profilul bazal
+ Suspendare
+ Împerechere și amorsare
+ Umpleţi canula şi setaţi profilul bazalObțineți jurnalul pulsurilor
- Eroare necunoscută
- S-a anulat vechea bazală temporară, dar nu s-a putut seta o nouă bazală temporarăSe setează o bazală temporară falsă deoarece Pod-ul este suspendatAnulează bazala temporară falsă creată pentru că Pod-ul a fost suspendatincert
@@ -155,10 +138,7 @@
AlteleAlerteBip-uri de confirmare
- Ieșire
- Precedent
- Următor
- Finalizare
+ UrmătorDescriereSursăData
diff --git a/omnipod/src/main/res/values-ru-rRU/strings.xml b/omnipod/src/main/res/values-ru-rRU/strings.xml
index a15a682ac9..078a04bc1d 100644
--- a/omnipod/src/main/res/values-ru-rRU/strings.xml
+++ b/omnipod/src/main/res/values-ru-rRU/strings.xml
@@ -2,7 +2,7 @@
- Для интеграции с помпой Omnipod требуется устройство RileyLink (с прошивкой 2.0 и выше).
+ Для интеграции с помпой Omnipod требуется устройство RileyLink (с прошивкой 2.0 и выше).Звуковой сигнал болюса включенЗвуковой сигнал базала включен
@@ -17,17 +17,16 @@
К-во единицТолько что
- Управление помпой
- Статус помпы
- Всего подано
- %1$.2f ед
- %1$.2f ед. осталось
- Более 50 ед.
- Адрес Пода
- Срок Пода истекает
+ Статус помпы
+ Всего подано
+ %1$.2f ед
+ %1$.2f ед. осталось
+ Более 50 ед.
+ Адрес Пода
+ Срок Пода истекаетВниманиеАктивная помпа не выбрана
- Выполняется настройка (ожидание сопряжения и заполнения)
+ Выполняется настройка (ожидание сопряжения и заполнения)Выполняется настройка (ожидание ввода катетера)ВыполняетсяПриостановлено
@@ -35,39 +34,16 @@
Превышено время активацииНеактивированОшибка Пода: %1$s %2$s
- Активные оповещения помпы
- Оповещения активны
+ Активные оповещения помпыOmnipod (433.91 МГц)Недопустимый адрес RileyLink.Операция невозможна.\n\n Сначала нужно настроить помпу Omnipod.
- Операция невозможна.\n\n Подождите несколько минут, пока AAPS пытается задать профиль.
- Недопустимый тип инициализации: %1$sАктивная помпа не включена
- Командная верификация не состоялась
- Произошла непредвиденная ошибка. Пожалуйста, сообщите об ошибке! (сообщить:: %1$s).
- Ошибка связи: недопустимые входные параметры
- Ошибка связи: время ожидания истекло
- Ошибка связи: возникла непредвиденная ошибка. Пожалуйста, сообщите!
- Ошибка связи: проверка целостности сообщения завершилась неудачно
- Ошибка связи: получен недопустимый пакет от Pod
- Ошибка связи: Pod находится в неверном состоянии
- Ошибка связи: недопустимый ответ от помпы
- Ошибка связи: получено сообщение с недопустимым порядковым номером от Pod
- Ошибка связи: получено сообщение с некорректным адресом от Pod
- Ошибка связи: не удалось декодировать сообщение от Pod
- Ошибка связи: не удалось выполнить повторную синхронизацию nonce
- Ошибка соединения: вне синхронизации
- Ошибка связи: недостаточно данных от Pod
- Обнаружена ошибка Pod (%1$03d %2$s). Деактивируйте Pod и запустите новый
- Ошибка связи: Pod ответил ошибкой
- Управление помпой Omnipod
- Инициализировать PodДеактивировать PodВыбросить помпу
- Журнал помпыНастроить болюсОтменить болюсУстановить временный базал
@@ -82,32 +58,21 @@
Приостановить подачуВозобновить подачуНеизвестная запись
- %1$.2f ед
- %1$.2f ед, CH=%2$.1f г
- Скорость: %1$.2f ед, Продолжительность: %2$d мин
- Если нажать OK, состояние помпы будет принудительно сброшено, и вы больше не сможете обмениваться командами с Pod. Сделайте это только в том случае, если вы не можете связаться с помпой. Если связь с Pod еще возможна, воспользуйтесь опцией Деактивировать Pod.\n\nЕсли хотите продолжить, также снимите помпу с тела.
- В настоящее время история помпы недоступна.
- Заполнить Pod
- \nЗаполните новый Pod запасом инсулина на 3 дня.\n\nПоступят два звуковых сигнала от помпы во время заправки. Это означает, что минимальное количество 85U заправлено. Не забудьте опустошить заправочный шприц даже после того, как услышите два звуковых сигнала.\n\nПосле заполнения Pod нажмите Next.\n\nПримечание: Пока не снимайте с помпы колпачок с иглой.\nПримечание:поставьте RileyLink вертикально рядом с Pod.
- Первичное заполнение инфузионной секции пода
- Попытка сопряжения с новым Podом и первичного заполнения инфузионного отсека..\n\n После проверки всех \'nfgjd можно нажать Далее.\n\nПримечание: В это время RileyLink должен находиться в вертикальном положении рядом с Pod.
- Подключить Под
- \nПодготовьте место инфузии. Удалите колпачок с иглы и защиту липкого слоя, Установите Pod на тело.\n\nесли канюля выступает, нажмите отменить и утилизируйте Pod.\n\Нажмите Далее чтобы вставить канюлю и начать подачу базала.
- Установка канюли (катетера)
- Определение графика подачи базала и установка канюли. \n\n Когда проверены все шаги, нажмите Далее.
- Информация о Pod
- \nПомпа сейчас активна.\n\nБазальный график запрограммирован и катетер установлен.\n\nУбедитесь в том, что канюля установлена правильно и замените Pod, если такой уверенности нет.
- Деактивировать Pod
- \nНажмите Далее для деактивации Пода\n\nПримечание: Это Приостановит всякую подачу инсулина и деактивирует помпу.
- Деактивация помпы
- Деактивация помпы.\n\n, Когда проверены все элементы, нажмите Далее.\n\nПримечание: Если деактивация постоянно завершается ошибкой, нажмите Отменить и примените Сброс помпы чтобы принудительно сбросить состояние Pod\'a.
- Pod деактивирован.\n\nУдалите и утилизируйте Pod.
- Сопряжение Pod
- Заполнение инфузионной секции Pod\'a
- Заполнение катетера
- Установка базального профиля
- Отмена подачи инсулина
- Деактивировать Pod
+ Заполнить Pod
+ \nЗаполните новый Pod запасом инсулина на 3 дня.\n\nПоступят два звуковых сигнала от помпы во время заправки. Это означает, что минимальное количество 85U заправлено. Не забудьте опустошить заправочный шприц даже после того, как услышите два звуковых сигнала.\n\nПосле заполнения Pod нажмите Next.\n\nПримечание: Пока не снимайте с помпы колпачок с иглой.\nПримечание:поставьте RileyLink вертикально рядом с Pod.
+ Первичное заполнение инфузионной секции пода
+ Попытка сопряжения с новым Podом и первичного заполнения инфузионного отсека..\n\n После проверки всех \'nfgjd можно нажать Далее.\n\nПримечание: В это время RileyLink должен находиться в вертикальном положении рядом с Pod.
+ Подключить Под
+ \nПодготовьте место инфузии. Удалите колпачок с иглы и защиту липкого слоя, Установите Pod на тело.\n\nесли канюля выступает, нажмите отменить и утилизируйте Pod.\n\Нажмите Далее чтобы вставить канюлю и начать подачу базала.
+ Установка канюли (катетера)
+ Определение графика подачи базала и установка канюли. \n\n Когда проверены все шаги, нажмите Далее.
+ Информация о Pod
+ \nПомпа сейчас активна.\n\nБазальный график запрограммирован и катетер установлен.\n\nУбедитесь в том, что канюля установлена правильно и замените Pod, если такой уверенности нет.
+ Деактивировать Pod
+ \nНажмите Далее для деактивации Пода\n\nПримечание: Это Приостановит всякую подачу инсулина и деактивирует помпу.
+ Деактивация помпы
+ Деактивация помпы.\n\n, Когда проверены все элементы, нажмите Далее.\n\nПримечание: Если деактивация постоянно завершается ошибкой, нажмите Отменить и примените Сброс помпы чтобы принудительно сбросить состояние Pod\'a.
+ Pod деактивирован.\n\nУдалите и утилизируйте Pod.Напоминание о завершении сопряженияНапоминание о завершении настройки
@@ -123,43 +88,25 @@
Не удалось задать временный базал. Если ранее был запущен временный базал, он мог быть отменен. Обновите вручную состояние Pod на вкладке Omnipod.Возможно, не удалось задать время. Подача инсулина может быть приостановлена! Обновите вручную состояние Pod на вкладке Omnipod и при необходимости возобновите подачу.Не удалось задать время. Подача инсулина приостановлена! Вручную возобновите подачу с вкладки Omnipod.
- Не удалось проверить, подан ли болюс. Проверьте, издаются ли звуки подачи болюса. Если вы уверены, что болюс не подан, следует вручную удалить запись болюса из Treatments, даже если вы нажмете \'Cancel bolus\' сейчас!
- Не удалось проверить, успешно ли выполнен микроболюс SMB (%1$.2f ед). Если вы уверены, что болюс не подан, следует вручную удалить запись SMB из Treatments.
- Статистика RL
- Журнал Pulse
- LOT
- TID
- Версия прошивки
- ошибки
- Базовый профиль идентичен, он не будет задан повторно.
+ LOT
+ TID
+ Версия прошивки
+ ошибкиСбросить конфигурацию RileyLink
- Время и/или часовой пояс изменены на Pod%1$s и %2$s%1$s назад
- Ожидание соединения RileyLink...
- Болюс не подан
- Обновить
- Возобновить подачу
- Omnipod остановлен
+ Ожидание соединения RileyLink...Менее минуты назад
- Останов
- Выполнить сопряжение и заполнить
- Заполнить катетер и установить базовый профиль
- Получить журнал импульсов
- Неизвестная ошибка
- Старый временный базал отменен, но не удалось установить новый
+ Выполнить сопряжение и заполнить
+ Заполнить катетер и установить базовый профильУстановить фейковый временный базал, так как Pod остановленОтменить фейковый временный базал, который был создан из-за приостановки действия Podне подтверждено
- Конфигурация оповещений обновлена в PodRileyLinkДругоеОповещенияЗвуковые сигналы подтверждения
- Выход
- Предыдущие
- Далее
- Завершить
+ ДалееОписаниеИсточникдата
diff --git a/omnipod/src/main/res/values-sk-rSK/strings.xml b/omnipod/src/main/res/values-sk-rSK/strings.xml
index d508f9e153..0c61a60e8f 100644
--- a/omnipod/src/main/res/values-sk-rSK/strings.xml
+++ b/omnipod/src/main/res/values-sk-rSK/strings.xml
@@ -2,7 +2,7 @@
- Integrácia pumpy pre Omnipod, vyžaduje zariadenie RileyLink (s firmwarom aspoň 2.0).
+ Integrácia pumpy pre Omnipod, vyžaduje zariadenie RileyLink (s firmwarom aspoň 2.0).Pípnutie pri boluse povolenéPípnutie pri bazále povolené
@@ -17,17 +17,16 @@
Počet jednotiekPred chvíľou
- Správa Podu
- Stav Podu
- Celkovo podané
- %1$.2f JI
- Zostáva %1$.2f JI
- Viac ako 50 JI
- Adresa Podu
- Expirácia Podu
+ Stav Podu
+ Celkovo podané
+ %1$.2f JI
+ Zostáva %1$.2f JI
+ Viac ako 50 JI
+ Adresa Podu
+ Expirácia PoduUpozornenieŽiadny aktívny Pod
- Inštalácia prebieha (čakanie na párovanie a plnenie)
+ Inštalácia prebieha (čakanie na párovanie a plnenie)Inštalácia prebieha (čaká sa na vloženie kanyly)V prevádzkePozastavené
@@ -35,39 +34,16 @@
Bol prekročený čas aktivácieNeaktívnyChyba Podu: %1$s %2$s
- Výstrahy aktívneho Podu
- Potvrdiť upozornenie
+ Výstrahy aktívneho PoduOmnipod (433,91 MHz)Neplatná adresa RileyLinku.Operácia nie je možná.\n\nNajskôr je nutné nakonfigurovať Omnipod, kým bude možné túto funkciu použiť.
- Operácia nie je možná.\n\n Je potrebné niekoľko minút počkať, pokiaľ sa AAPS nepokúsi prvý krát nastaviť bazálny profil.
- Neplatný atribút PodInitActionType: %1$sŽiadny aktívny Pod
- Overenie príkazu zlyhalo
- Došlo k neočakávanej chybe. Nahláste ju! (typ: %1$s).
- Komunikácia zlyhala: boli prijaté neplatné vstupné parametre
- Komunikácia zlyhala: časový limit vypršal
- Komunikácia zlyhala: vyskytla sa neočakávaná chyba. Prosím, nahláste to!
- Komunikácia zlyhala: overenie integrity správy zlyhalo
- Komunikácia zlyhala: boli prijaté neplatné pakety z Podu
- Komunikácia zlyhala: Pod je v chybnom stave
- Komunikácia zlyhala: bola prijatá neplatná odozva z Podu
- Komunikácia zlyhala: bola prijatá správa s neplatným poradovým číslom z Podu
- Komunikácia zlyhala: bola prijatá správa s neplatnou adresou z Podu
- Komunikácia zlyhala: nepodarilo se dekódovať správu z Podu
- Komunikácia zlyhala: opakovaná synchronizácia Nonce hodnoty zlyhala
- Komunikácia zlyhala: hodnota Nonce nebola synchronizovaná
- Komunikácia zlyhala: nedostatok dát prijatých z Podu
- Bola zistená chyba Podu (%1$03d %2$s). Deaktivujte Pod a spustite nový
- Komunikácia zlyhala: Pod vrátil chybovú odozvu
- Správa Podu
- Inicializovať PodDeaktivovať PodVyradiť Pod
- História PoduNastaviť bolusZrušiť bolusNastaviť dočasný bazál
@@ -82,32 +58,21 @@
Pozastaviť dodávanie inzulínuPokračovať v dodávaní inzulínuNeznáma položka
- %1$.2f JI
- %1$.2f JI, CH=%2$.1f g
- Rýchlosť: %1$.2f JI, Doba trvania: %2$d min
- Keď stlačíte OK, bude pripojenie na Pod nútene prerušené a nebudete sa môcť k nemu už viac pripojiť. Urob tak iba vtedy, ak AAPS nemôže viac komunikovať s Podom. Ak stále môžete komunikovať s Podom, prosím použite možnosť Deaktivovať Pod.\n\nPokiaľ chcete pokračovať, uistite sa, že je Pod odstránený z tela.
- História Podu momentálne nie je dostupná.
- Naplňte Pod
- \nNaplňte nový Pod dostatočným množstvom inzulínu na 3 dni.\n\nSledujte dve pípnutia z Podu v priebehu procesu plnenia. Tieto ukazujú, že minimálne množstvo 85JI bolo naplnené. Uistite sa, že striekačka je úplne vyprázdnená a to i po vypočutí dvoch pípnutí.\n\nPo naplnení Podu, prosím, stlačte Další.\n\nPoznámka: zatiaľ nedávajte dole kryt ihly.\nPoznámka:prosím umiestnite RileyLink vo zvislej pozícii blízko Podu.
- Plnenie
- Pokúste sa spárovať s novým Podom a naplňte ho.\n\nKeď sú všetky položky zaškrtnuté, môžete stlačiť Ďalej.\n\nPoznámka: prosím držte teraz Pod veľmi blízko RileyLinku.
- Pripevni Pod
- \nPripravte infúzny set. Odstráňte krytku ihly na Pode a ochranu samolepky a pripojte Pod k infúznemu setu. \n\nAk sa kanyla odlepí, prosím stlačte Zrušiť a zahoďte Váš Pod.\n\nStlačte Ďalšia na zavedenie kanyly a začiatok podávania bazálu.
- Zavedenie kanyly
- Pokúšam sa nastaviť počiatočnú bazálnu dávku a zaviesť kanylu.\n\nAk sú všetky položky označené, môžete stlačiť Ďalší.
- Informácie o Pode
- \nPod je teraz aktívny.\n\nVaša bazálna dávka je nastavená a kanyla bola zavedená.\n\nProsím skontrolujte, či bola kanyla zavedená správne a ak máte pocit, že nie, tak vymeňte Pod.
- Deaktivovať Pod
- \nStlačte Ďalej pre deaktiváciu Podu.\n\nPoznámka: Toto preruší celkovo podávanie inzulínu a deaktivuje Pod.
- Deaktivácia Podu
- Deaktivujem Pod.\n\nKeď sú všetky položky zaškrtnuté, môžete stlačiť Ďalej.\n\nPoznámka: Ak deaktivácia neustále zlyháva, stlačte prosím Zrušiť a použite možnosť Resetovať Pod, na nútené obnovenie stavu Podu.
- Pod deaktivovaný.\n\nProsím odstráňte Pod z Vášho tela a zlikvidujte ho.
- Spárujte Pod
- Naplňte Pod
- Naplňte kanylu
- Nastavte bazálny profil
- Zrušte podávanie
- Deaktivujte Pod
+ Naplňte Pod
+ \nNaplňte nový Pod dostatočným množstvom inzulínu na 3 dni.\n\nSledujte dve pípnutia z Podu v priebehu procesu plnenia. Tieto ukazujú, že minimálne množstvo 85JI bolo naplnené. Uistite sa, že striekačka je úplne vyprázdnená a to i po vypočutí dvoch pípnutí.\n\nPo naplnení Podu, prosím, stlačte Další.\n\nPoznámka: zatiaľ nedávajte dole kryt ihly.\nPoznámka:prosím umiestnite RileyLink vo zvislej pozícii blízko Podu.
+ Plnenie
+ Pokúste sa spárovať s novým Podom a naplňte ho.\n\nKeď sú všetky položky zaškrtnuté, môžete stlačiť Ďalej.\n\nPoznámka: prosím držte teraz Pod veľmi blízko RileyLinku.
+ Pripevni Pod
+ \nPripravte infúzny set. Odstráňte krytku ihly na Pode a ochranu samolepky a pripojte Pod k infúznemu setu. \n\nAk sa kanyla odlepí, prosím stlačte Zrušiť a zahoďte Váš Pod.\n\nStlačte Ďalšia na zavedenie kanyly a začiatok podávania bazálu.
+ Zavedenie kanyly
+ Pokúšam sa nastaviť počiatočnú bazálnu dávku a zaviesť kanylu.\n\nAk sú všetky položky označené, môžete stlačiť Ďalší.
+ Informácie o Pode
+ \nPod je teraz aktívny.\n\nVaša bazálna dávka je nastavená a kanyla bola zavedená.\n\nProsím skontrolujte, či bola kanyla zavedená správne a ak máte pocit, že nie, tak vymeňte Pod.
+ Deaktivovať Pod
+ \nStlačte Ďalej pre deaktiváciu Podu.\n\nPoznámka: Toto preruší celkovo podávanie inzulínu a deaktivuje Pod.
+ Deaktivácia Podu
+ Deaktivujem Pod.\n\nKeď sú všetky položky zaškrtnuté, môžete stlačiť Ďalej.\n\nPoznámka: Ak deaktivácia neustále zlyháva, stlačte prosím Zrušiť a použite možnosť Resetovať Pod, na nútené obnovenie stavu Podu.
+ Pod deaktivovaný.\n\nProsím odstráňte Pod z Vášho tela a zlikvidujte ho.Pripomienka ukončenia párovaniaPripomienka ukončenia nastavenia
@@ -123,43 +88,25 @@
Nastavenie dočasného bazálu zlyhalo. Ak bol predtým spustený dočasný bazál, mohol byť zrušený. Manuálne obnovte stav Podu zo záložky Omnipod.Nastavenie času, pravdepodobne zlyhalo. Podávanie môže byť pozastavené! Manuálne obnovte stav Podu zo záložky Omnipod a pokračujte v podávaní, ak je to potrebné.Nastavenie času zlyhalo. Podávanie je pozastavené! Manuálne obnovte podávanie zo záložky Omnipod.
- Nedá sa overiť, či bol bolus úspešný. Prosím manuálne overte, či Váš Pod podáva bolus počúvaním klikania. Ak ste si istý, že bolus nebol úspešný, mali by ste ručne odstrániť záznam o boluse z ošetrení, aj keď kliknete na \'Zrušiť bolus\' teraz!
- Nedá sa overiť, či bol bolus SMB (%1$.2f JI) úspešný. Ak ste si istí, že bolus nebol úspešný, mali by ste ručne vymazať záznam SMB z ošetrení.
- Štatistiky RL
- Pulse Log
- LOT
- TID
- Verzia firmvéru
- Chyby
- Bazálny profil je rovnaký, takže nebude znovu nastavený.
+ LOT
+ TID
+ Verzia firmvéru
+ ChybyResetovať konfiguráciu RileyLinku
- Zmena času a/alebo časovej zóny na Pode%1$s a %2$spred %1$s min
- Čaká sa na pripojenie RileyLinku...
- Bolus nebol úspešný
- Aktualizovať
- Pokračovať v podávaní inzulínu
- Pod pozastavený
+ Čaká sa na pripojenie RileyLinku...Pred menej ako minútou
- Pozastavenia
- Spáruj a naplň
- Naplňte kanylu a nastavte bazálny profil
- Získaj pulse log
- Neznáma chyba
- Bol zrušený starý dočasný bazál, ale nový dočasný bazál sa nepodarilo nastaviť
+ Spáruj a naplň
+ Naplňte kanylu a nastavte bazálny profilNastaviť falošný dočasný bazál, pretože Pod je pozastavenýZrušiť falošný dočasný bazál ktorý bol vytvorený, pretože Pod bol pozastavenýneznáme
- Nastavenie výstrahy bolo v Pode aktualizovanéRileyLinkInéVýstrahyPotvrdzujúce pípnutie
- Ukončiť
- Predošlá
- Ďalšia
- Dokončiť
+ ĎalšiaPopisZdrojDátum
diff --git a/omnipod/src/main/res/values-sv-rSE/strings.xml b/omnipod/src/main/res/values-sv-rSE/strings.xml
index d563935876..65e7413d16 100644
--- a/omnipod/src/main/res/values-sv-rSE/strings.xml
+++ b/omnipod/src/main/res/values-sv-rSE/strings.xml
@@ -2,32 +2,26 @@
- Pumpintegrering för Omnipod. Kräver Riley Link med minst v2-firmware.
+ Pumpintegrering för Omnipod. Kräver Riley Link med minst v2-firmware.
- %1$.2f U återstår
- Över 50 U
+ %1$.2f U återstår
+ Över 50 UOmnipod (433.91 MHz)
- Ogiltig PodInitActionType: %1$s
- Kommunikationsfel: Ett oväntat fel inträffade. Rapportera!
- Initiera podInaktivera pod
- Pod-historik är inte tillgänglig för tillfället.
- Fyll pod
- Förfyllning
- Fäst podden
- \nFörbered infusionsplatsen. Ta bort poddens nålskydd och fäst podden på infusionsplatsen.\n\nOm kanylen sticker ut, tryck på Avbryt och kasta din pod.\n\nTryck Nästa för att skjuta in kanylen och påbörja basaldoseringen.
- Skjuter in kanylen
- Försöker att ställa in basaldoser och skjuta in kanylen.\n\nNär alla steg är slutförda, kan du trycka på Nästa.
- \nPodden är nu aktiverad.\n\nDina basaldoser har programmerats och kanylen har skjutits in in.\n\nKontrollera att kanylen sitter på rätt sätt och byt pod om den inte gjort det.
- \nTryck på Nästa för att inaktivera podden.\n\nOBS! Det här stoppar all insulintillförsel och inaktiverar podden.
- Inaktiverar pod
- Pod inaktiverad.\n\nTa bort podden och kasta den.
- Parkoppla pod
- Förfyll pod
+ Fyll pod
+ Förfyllning
+ Fäst podden
+ \nFörbered infusionsplatsen. Ta bort poddens nålskydd och fäst podden på infusionsplatsen.\n\nOm kanylen sticker ut, tryck på Avbryt och kasta din pod.\n\nTryck Nästa för att skjuta in kanylen och påbörja basaldoseringen.
+ Skjuter in kanylen
+ Försöker att ställa in basaldoser och skjuta in kanylen.\n\nNär alla steg är slutförda, kan du trycka på Nästa.
+ \nPodden är nu aktiverad.\n\nDina basaldoser har programmerats och kanylen har skjutits in in.\n\nKontrollera att kanylen sitter på rätt sätt och byt pod om den inte gjort det.
+ \nTryck på Nästa för att inaktivera podden.\n\nOBS! Det här stoppar all insulintillförsel och inaktiverar podden.
+ Inaktiverar pod
+ Pod inaktiverad.\n\nTa bort podden och kasta den.Påminnelse att slutföra installationPod löper snart ut
diff --git a/omnipod/src/main/res/values/colors.xml b/omnipod/src/main/res/values/colors.xml
index 4dcf577aec..8630a21d13 100644
--- a/omnipod/src/main/res/values/colors.xml
+++ b/omnipod/src/main/res/values/colors.xml
@@ -1,6 +1,5 @@
- #66000000
- #f4d700
- #0099CC
+ #0099CC
+ #ff669900
\ No newline at end of file
diff --git a/omnipod/src/main/res/values/dimens.xml b/omnipod/src/main/res/values/dimens.xml
new file mode 100644
index 0000000000..2bad5c9a76
--- /dev/null
+++ b/omnipod/src/main/res/values/dimens.xml
@@ -0,0 +1,4 @@
+
+
+ 10dp
+
\ No newline at end of file
diff --git a/omnipod/src/main/res/values/strings.xml b/omnipod/src/main/res/values/strings.xml
index 5b422b40f2..b174533f0c 100644
--- a/omnipod/src/main/res/values/strings.xml
+++ b/omnipod/src/main/res/values/strings.xml
@@ -23,12 +23,12 @@
OmnipodPodOmnipod (433.91 MHz)
- LOT
- TID
- PM %1$s / PI %2$s
- %1$s (%2$s)
+ LOT
+ TID
+ PM %1$s / PI %2$s
+ %1$s (%2$s)%1$s: %2$s
- %1$.2f %2$s (%3$s)
+ %1$.2f %2$s (%3$s)Bolus beeps enabled
@@ -49,7 +49,7 @@
No active Pod
- Setup in progress (waiting for pair and prime)
+ Setup in progress (waiting for Pod activation)Setup in progress (waiting for cannula insertion)RunningSuspended
@@ -76,16 +76,12 @@
%1$.2f U%1$.2f U, CH=%2$.1f gRate: %1$.2f U, duration: %2$d minutes
- Pod History not available at the moment.WarningRileyLink address invalid.Operation is not possible.\n\nYou need to configure Omnipod first, before you can use this operation.
- Operation is not possible.\n\n You need to wait a few minutes, until AAPS tries to set basal profile for first time.
- Illegal PodInitActionType: %1$sNo active Pod
- Command verification failedAn unexpected error occurred. Please report! (%1$s: %2$s).Communication failed: message integrity verification failedCommunication failed: received an invalid packet from the Pod
@@ -107,14 +103,12 @@
Setting basal profile failed. Delivery is suspended! Please manually resume delivery from the Omnipod tab.Setting basal profile failed.Cancelling temp basal might have failed. Please manually refresh the Pod status from the Omnipod tab.
- Suspending delivery might have failed. Please manually refresh the Pod status from the Omnipod tab.Setting temp basal failed. If a temp basal was previously running, it might have been cancelled. Please manually refresh the Pod status from the Omnipod tab.Setting temp might have basal failed. If a temp basal was previously running, it has been cancelled. Please manually refresh the Pod status from the Omnipod tab.Setting time might have failed. Delivery might be suspended! Please manually refresh the Pod status from the Omnipod tab and resume delivery if needed.Setting time failed. Delivery is suspended! Please manually resume delivery from the Omnipod tab.Failed to set basal profile: received an empty profile. Make sure to activate your basal profile.No basal profile is active. Make sure to activate your basal profile.
- Uncertain failureUnknown custom command: %1$sFailed to read Pulse LogFailed to refresh status
@@ -122,20 +116,23 @@
Failed to suspend deliveryFailed to set timeFailed to resume delivery
- Failed to automatically change time and/or time zone on the Pod. You can manually synchronise the time on the Omnipod tab.
+ Failed to automatically change time on the Pod. You should manually synchronise the time on the Omnipod tab.Unable to verify whether the bolus succeeded. Please manually verify that your Pod is bolusing by listening to clicks. If you are sure that the bolus didn\'t succeed, you should manually delete the bolus entry from Treatments, even if you click \'Cancel bolus\' now!Unable to verify whether SMB bolus (%1$.2f U) succeeded. If you are sure that the Bolus didn\'t succeed, you should manually delete the SMB entry from Treatments.Bolus did not succeed.
+ Failed to activate the Pod
+ Failed to insert cannula
+ The Pod\'s activation time has been exceeded. This Pod can no longer be activated.Confirmation
- Basal profile is the same, so it will not be set again.Time and/or time zone changed on the Pod.Alert configuration has been updated in the Pod.The time on the Pod has been updated.All insulin delivery has been suspended.Active alerts have been acknowledged.Insulin delivery has been resumed.
+ Pod suspendedDeactivate Pod
@@ -154,89 +151,91 @@
Suspend deliveryResume deliveryUnknown entry
- Pair and prime
- Fill cannula and set basal profile
+ Activate new Pod
+ Insert cannulaRead pulse logSet fake temporary basal because the Pod is suspendedCancel fake temporary basal that was created because the Pod was suspended
-
- Fill the Pod
- \nFill the new Pod with enough insulin for 3 days.\n\nListen for two beeps from the Pod during the filling process. These indicate that the minimum amount of 85U has been inserted. Be sure to completely empty the fill syringe, even after hearing the two beeps.\n\nAfter filling the Pod, please press Next.\n\nNote: do not remove the Pod\'s needle cap at this time.\nNote: please place the RileyLink in an upright position and place the Pod a few inches away.
- Priming
- Trying to pair with the new Pod and prime it.\n\nWhen all items are checked, you can press Next.\n\nNote: please place the RileyLink in an upright position and place the Pod a few inches away from it.
- Attach the Pod
- \nPrepare the infusion site. Remove the Pod\'s needle cap and adhesive backing and attach the Pod to the infusion site.\n\nIf the cannula sticks out, please press Cancel and discard your Pod.\n\nPress Next to insert the cannula and begin basal delivery.
- Inserting cannula
- Trying to set initial basal schedule and insert the cannula.\n\nWhen all items are checked, you can press Next.
- Pod info
- \nThe Pod is now active.\n\nYour basal schedule has been programmed and the cannula has been inserted.\n\nPlease verify that the cannula has been inserted correctly and replace your Pod if you feel hasn\'t.
- Deactivate Pod
- \nPress Next to deactivate the Pod.\n\nNote: This will suspend all insulin delivery and deactivate the Pod.
- Deactivating the Pod
- Deactivating the Pod.\n\nWhen all items are checked, you can press Next.\n\nNote: If deactivating continuously fails, please press Cancel and use the Discard Pod option to forcibly reset the Pod state.
- Pod deactivated.\n\nPlease remove the Pod from your body and discard it.
- Pair Pod
- Prime Pod
- Fill cannula
- Set basal profile
- Cancel delivery
- Deactivate Pod
- Exit
- Previous
- Next
- Finish
+
+ Pod management
+ Waiting for RileyLink connection…
+ Change Pod
+ Discard Pod
+ Pod history
+ If you discard the Pod, you will not be able to communicate with it anymore. You should only do this when all communication with the Pod persistently fails. If you can still communicate with the Pod, please use the Change Pod option.\n\nIf you wish to proceed, please make sure to remove the Pod from your body!
-
- Init Pod
- Replace Pod (NEW)
- Deactivate Pod
- Discard Pod
- Set time
- Suspend
- RL stats
- Pulse log
- Refresh
- Resume delivery
- Pod history
- Pod mgmt
- Ack alerts
+
+ Cancel
+ Finish
+ Next
+ Retry
+ Deactivate Pod
+ Discard Pod
+ You haven\'t finished changing your Pod yet. Are you sure you want to exit?
+ Change Pod
+ Fill Pod
+ Fill a new Pod with enough insulin for 3 days.\n\nListen for two beeps from the Pod during the filling process. These indicate that the minimum amount of 85U has been inserted. Be sure to completely empty the fill syringe, even after hearing the two beeps.\n\nAfter filling the Pod, please press Next.\n\nNote: do not remove the Pod\'s needle cap at this time.\nNote: please place the RileyLink in an upright position and place the Pod a few inches away from it.
+ Activate Pod
+ Trying to pair with the new Pod and prime it.\n\nWhen the activation process has successfully been completed, you can press Next.\n\nNote: please place the RileyLink in an upright position and place the Pod a few inches away from it.
+ Attach Pod
+ Prepare the infusion site. Remove the Pod\'s needle cap and adhesive backing and attach the Pod to the infusion site.\n\nIf the cannula sticks out, please press Cancel and discard your Pod.\n\nPress Next to insert the cannula and begin basal delivery.
+ Insert cannula
+ Trying to set initial basal schedule and insert the cannula.\n\nWhen the cannula has successfully been inserted, you can press Next.
+ Pod changed
+ The new Pod is now active.\n\nYour basal schedule has been programmed and the cannula has been inserted.\n\nPlease verify that the cannula has been inserted correctly and change your Pod if you feel hasn\'t.
+ Deactivate Pod
+ Press Next to deactivate the Pod.\n\nNote: This will suspend all insulin delivery and deactivate the Pod.
+ Deactivating Pod
+ Deactivating the Pod.\n\nWhen deactivation has completed successfully, you can press Next.
+ Pod deactivated
+ Your Pod has been deactivated.\n\nPlease remove the Pod from your body and recycle it.
+ Pod discarded
+ The Pod state has been discarded. Insulin delivery hasn\'t been suspended because the Pod has not been properly deactivated!\n\nPlease remove the Pod from your body and recycle it.
+ If you discard the Pod, you will not be able to communicate with it anymore. You should only do this when all communication with the Pod persistently fails. Are you sure you want to discard the Pod?
+ Discard Pod
+
+
+ Set time
+ Suspend
+ RL stats
+ Pulse log
+ Refresh
+ Resume delivery
+ Pod mgmt
+ Ack alerts
+ Pod status
+ Total delivered
+ %1$.2f U
+ Pod address
+ Pod expires
+ Last connection
+ Last bolus
+ Temp basal rate
+ Base basal rate
+ Reservoir
+ Active Pod alerts
+ Firmware version
+ Time on Pod
+ %1$.2fU/h @%2$s (%3$d/%4$d minutes)
+ %1$.2f U left
+ Over 50 U left
+ Errors
- Errors
- Pod management
- Pod status
- Total delivered
- %1$.2f U
- %1$.2f U left
- Over 50 U
- Pod address
- Pod expires
- Active Pod alerts
- If you press OK, the Pod state will be forcibly reset and you will not be able to communicate with the Pod anymore. Do this only if you can not communicate with the Pod anymore. If you can still communicate with the Pod, please use the Deactivate Pod option.\n\nIf you wish to proceed, please make sure to also remove the Pod from your body.
- %1$.2fU/h @%2$s (%3$d/%4$d minutes)
- Pump integration for Omnipod, requires RileyLink (with at least 2.0 firmware) device.
- Firmware version
+ Pump integration for Omnipod, requires RileyLink (with at least 2.0 firmware) device.Reset RileyLink config
- Waiting for RileyLink connection…
- Pod suspendeduncertain
- Time on PodPulse logPulse Log (copied to clipboard)
+ Yes
+ NoMoments agoLess than a minute ago%1$s and %2$s%1$s ago
- Cancel
- Finish
- Next
- You haven\'t finished replacing your pod yet. Are you sure you want to exit?
- Replace Pod
- Yes
- No%1$d minute%1$d minutes
diff --git a/omnipod/src/main/res/values/styles.xml b/omnipod/src/main/res/values/styles.xml
index 29bc4f87a3..e9b7e37239 100644
--- a/omnipod/src/main/res/values/styles.xml
+++ b/omnipod/src/main/res/values/styles.xml
@@ -1,41 +1,17 @@
-
-
-
-
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/omnipod/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/communication/message/response/StatusResponseTest.java b/omnipod/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/communication/message/response/StatusResponseTest.java
index f3c8dca01c..e095a57953 100644
--- a/omnipod/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/communication/message/response/StatusResponseTest.java
+++ b/omnipod/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/communication/message/response/StatusResponseTest.java
@@ -55,7 +55,7 @@ public class StatusResponseTest {
}
@Test
- public void testWithSampleCaptureWithReplacePodSoonAlert() {
+ public void testWithSampleCaptureWithChangePodSoonAlert() {
byte[] bytes = ByteUtil.fromHexString("1d19061f6800044295e8"); // From https://github.com/openaps/openomni/wiki/Status-Response-1D-long-run-%28Lytrix%29
StatusResponse statusResponse = new StatusResponse(bytes);
diff --git a/omnipod/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/communication/message/response/podinfo/PodInfoActiveAlertsTest.java b/omnipod/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/communication/message/response/podinfo/PodInfoActiveAlertsTest.java
index 30035a69f9..97b19ab1b8 100644
--- a/omnipod/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/communication/message/response/podinfo/PodInfoActiveAlertsTest.java
+++ b/omnipod/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/communication/message/response/podinfo/PodInfoActiveAlertsTest.java
@@ -21,7 +21,7 @@ public class PodInfoActiveAlertsTest {
}
@Test
- public void testReplacePodAfter3Days() {
+ public void testChangePodAfter3Days() {
byte[] encodedMessage = ByteUtil.fromHexString("010000000000000000000000000000000010e1"); // from https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/PodInfoTests.swift
PodInfoActiveAlerts podInfoActiveAlerts = new PodInfoActiveAlerts(encodedMessage);