diff --git a/app/src/main/java/info/nightscout/androidaps/activities/MyPreferenceFragment.kt b/app/src/main/java/info/nightscout/androidaps/activities/MyPreferenceFragment.kt
index 4e8bf520fd..154a35ff49 100644
--- a/app/src/main/java/info/nightscout/androidaps/activities/MyPreferenceFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/activities/MyPreferenceFragment.kt
@@ -189,8 +189,8 @@ class MyPreferenceFragment : PreferenceFragmentCompat(), OnSharedPreferenceChang
addPreferencesFromResourceIfEnabled(comboPlugin, rootKey, config.PUMPDRIVERS)
addPreferencesFromResourceIfEnabled(medtronicPumpPlugin, rootKey, config.PUMPDRIVERS)
addPreferencesFromResourceIfEnabled(diaconnG8Plugin, rootKey, config.PUMPDRIVERS)
- addPreferencesFromResource(R.xml.pref_pump, rootKey, config.PUMPDRIVERS)
addPreferencesFromResourceIfEnabled(eopatchPumpPlugin, rootKey, config.PUMPDRIVERS)
+ addPreferencesFromResource(R.xml.pref_pump, rootKey, config.PUMPDRIVERS)
addPreferencesFromResourceIfEnabled(virtualPumpPlugin, rootKey)
addPreferencesFromResourceIfEnabled(insulinOrefFreePeakPlugin, rootKey)
addPreferencesFromResourceIfEnabled(nsClientPlugin, rootKey)
diff --git a/app/src/main/java/info/nightscout/androidaps/di/AppComponent.kt b/app/src/main/java/info/nightscout/androidaps/di/AppComponent.kt
index 77c7ca52d4..8433db9be4 100644
--- a/app/src/main/java/info/nightscout/androidaps/di/AppComponent.kt
+++ b/app/src/main/java/info/nightscout/androidaps/di/AppComponent.kt
@@ -70,7 +70,6 @@ import javax.inject.Singleton
WorkersModule::class,
DiaconnG8Module::class,
OpenHumansModule::class,
- SharedModule::class,
EopatchModule::class,
SharedModule::class,
UiModule::class,
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/StatusLightHandler.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/StatusLightHandler.kt
index 458ac13f46..45c83ef7cb 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/StatusLightHandler.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/StatusLightHandler.kt
@@ -16,6 +16,7 @@ import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.androidaps.utils.DecimalFormatter
import info.nightscout.androidaps.utils.WarnColors
import info.nightscout.androidaps.interfaces.ResourceHelper
+import info.nightscout.androidaps.plugins.pump.eopatch.AppConstant
import info.nightscout.shared.sharedPreferences.SP
import javax.inject.Inject
import javax.inject.Singleton
@@ -34,7 +35,15 @@ class StatusLightHandler @Inject constructor(
/**
* applies the extended statusLight subview on the overview fragment
*/
- fun updateStatusLights(careportal_cannula_age: TextView?, careportal_insulin_age: TextView?, careportal_reservoir_level: TextView?, careportal_sensor_age: TextView?, careportal_sensor_battery_level: TextView?, careportal_pb_age: TextView?, careportal_battery_level: TextView?) {
+ fun updateStatusLights(
+ careportal_cannula_age: TextView?,
+ careportal_insulin_age: TextView?,
+ careportal_reservoir_level: TextView?,
+ careportal_sensor_age: TextView?,
+ careportal_sensor_battery_level: TextView?,
+ careportal_pb_age: TextView?,
+ careportal_battery_level: TextView?
+ ) {
val pump = activePlugin.activePump
val bgSource = activePlugin.activeBgSource
handleAge(careportal_cannula_age, TherapyEvent.Type.CANNULA_CHANGE, R.string.key_statuslights_cage_warning, 48.0, R.string.key_statuslights_cage_critical, 72.0)
@@ -46,9 +55,11 @@ class StatusLightHandler @Inject constructor(
val insulinUnit = rh.gs(R.string.insulin_unit_shortname)
if (pump.model() == PumpType.OMNIPOD_EROS || pump.model() == PumpType.OMNIPOD_DASH) {
- handleOmnipodReservoirLevel(careportal_reservoir_level, R.string.key_statuslights_res_critical, 10.0, R.string.key_statuslights_res_warning, 80.0, pump.reservoirLevel, insulinUnit)
+ handlePatchReservoirLevel(careportal_reservoir_level, R.string.key_statuslights_res_critical, 10.0, R.string.key_statuslights_res_warning, 80.0, pump.reservoirLevel, insulinUnit,
+ OmnipodConstants.MAX_RESERVOIR_READING)
} else if (pump.model() == PumpType.EOFLOW_EOPATCH2) {
- handleEopatchReservoirLevel(careportal_reservoir_level, R.string.key_statuslights_res_critical, 10.0, R.string.key_statuslights_res_warning, 80.0, pump.reservoirLevel, insulinUnit)
+ handlePatchReservoirLevel(careportal_reservoir_level, R.string.key_statuslights_res_critical, 10.0, R.string.key_statuslights_res_warning, 80.0, pump.reservoirLevel, insulinUnit,
+ AppConstant.MAX_RESERVOIR_READING)
} else {
handleLevel(careportal_reservoir_level, R.string.key_statuslights_res_critical, 10.0, R.string.key_statuslights_res_warning, 80.0, pump.reservoirLevel, insulinUnit)
}
@@ -97,21 +108,13 @@ class StatusLightHandler @Inject constructor(
// Omnipod only reports reservoir level when it's 50 units or less, so we display "50+U" for any value > 50
@Suppress("SameParameterValue")
- private fun handleOmnipodReservoirLevel(view: TextView?, criticalSetting: Int, criticalDefaultValue: Double, warnSetting: Int, warnDefaultValue: Double, level: Double, units: String) {
- if (level >= OmnipodConstants.MAX_RESERVOIR_READING) {
+ private fun handlePatchReservoirLevel(
+ view: TextView?, criticalSetting: Int, criticalDefaultValue: Double, warnSetting: Int,
+ warnDefaultValue: Double, level: Double, units: String, maxReading: Double
+ ) {
+ if (level >= maxReading) {
@Suppress("SetTextI18n")
- view?.text = " 50+$units"
- view?.setTextColor(rh.gac(view.context, R.attr.defaultTextColor))
- } else {
- handleLevel(view, criticalSetting, criticalDefaultValue, warnSetting, warnDefaultValue, level, units)
- }
- }
-
- @Suppress("SameParameterValue")
- private fun handleEopatchReservoirLevel(view: TextView?, criticalSetting: Int, criticalDefaultValue: Double, warnSetting: Int, warnDefaultValue: Double, level: Double, units: String) {
- if (level > 50.0) {
- @Suppress("SetTextI18n")
- view?.text = " 50+$units"
+ view?.text = " ${maxReading.toInt()}+$units"
view?.setTextColor(rh.gac(view.context, R.attr.defaultTextColor))
} else {
handleLevel(view, criticalSetting, criticalDefaultValue, warnSetting, warnDefaultValue, level, units)
diff --git a/core/src/main/res/values-ko-rKR/strings.xml b/core/src/main/res/values-ko-rKR/strings.xml
index a449a48fe9..38bfd65137 100644
--- a/core/src/main/res/values-ko-rKR/strings.xml
+++ b/core/src/main/res/values-ko-rKR/strings.xml
@@ -150,7 +150,6 @@
변경사항 없음
유효하지 않은 프로파일: %1$s
-
%1$d 분
diff --git a/pump/eopatch-core/.gitignore b/pump/eopatch-core/.gitignore
new file mode 100644
index 0000000000..42afabfd2a
--- /dev/null
+++ b/pump/eopatch-core/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/pump/eopatch-core/build.gradle b/pump/eopatch-core/build.gradle
new file mode 100644
index 0000000000..37621a5a2b
--- /dev/null
+++ b/pump/eopatch-core/build.gradle
@@ -0,0 +1,2 @@
+configurations.create("default")
+artifacts.add("default", file('libs/eopatch_core.aar'))
\ No newline at end of file
diff --git a/pump/eopatch-core/consumer-rules.pro b/pump/eopatch-core/consumer-rules.pro
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/libs/eopatch_core.aar b/pump/eopatch-core/libs/eopatch_core.aar
similarity index 100%
rename from libraries/libs/eopatch_core.aar
rename to pump/eopatch-core/libs/eopatch_core.aar
diff --git a/pump/eopatch-core/proguard-rules.pro b/pump/eopatch-core/proguard-rules.pro
new file mode 100644
index 0000000000..481bb43481
--- /dev/null
+++ b/pump/eopatch-core/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/pump/eopatch-core/src/main/AndroidManifest.xml b/pump/eopatch-core/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000..a5918e68ab
--- /dev/null
+++ b/pump/eopatch-core/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/pump/eopatch/build.gradle b/pump/eopatch/build.gradle
index 3d34663f47..69c02c04f6 100644
--- a/pump/eopatch/build.gradle
+++ b/pump/eopatch/build.gradle
@@ -18,7 +18,7 @@ android {
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation (files("libs/eopatch_core.aar"))
+ implementation project(':pump:eopatch-core')
implementation project(':libraries')
implementation project(':shared')
implementation project(':database')
diff --git a/pump/eopatch/libs/eopatch_core.aar b/pump/eopatch/libs/eopatch_core.aar
deleted file mode 100644
index 7c48b147a2..0000000000
Binary files a/pump/eopatch/libs/eopatch_core.aar and /dev/null differ
diff --git a/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/AppConstant.kt b/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/AppConstant.kt
index 81087620ef..67e61ba793 100644
--- a/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/AppConstant.kt
+++ b/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/AppConstant.kt
@@ -25,5 +25,6 @@ interface AppConstant {
const val DAY_START_MINUTE = 0 * 60
const val DAY_END_MINUTE = 24 * 60
const val INSULIN_DURATION_MIN = 2.0f
+ const val MAX_RESERVOIR_READING = 50.0
}
}
\ No newline at end of file
diff --git a/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/EoPatchRxBus.kt b/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/EoPatchRxBus.kt
index 4658e28218..abc8625272 100644
--- a/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/EoPatchRxBus.kt
+++ b/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/EoPatchRxBus.kt
@@ -10,7 +10,7 @@ object EoPatchRxBus {
publishSubject.onNext(event)
}
- fun listen(eventType: Class): Observable {
+ fun listen(eventType: Class): Observable {
return publishSubject.ofType(eventType)
}
diff --git a/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/extension/ObservableExtension.kt b/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/extension/ObservableExtension.kt
index afec882772..1bc6009797 100644
--- a/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/extension/ObservableExtension.kt
+++ b/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/extension/ObservableExtension.kt
@@ -7,26 +7,26 @@ import io.reactivex.rxjava3.core.Observable
import io.reactivex.rxjava3.disposables.Disposable
import io.reactivex.rxjava3.schedulers.Schedulers
-fun Observable.observeOnMainThread(): Observable = observeOn(AndroidSchedulers.mainThread())
+fun Observable.observeOnMainThread(): Observable = observeOn(AndroidSchedulers.mainThread())
-fun Observable.observeOnComputation(): Observable = observeOn(Schedulers.computation())
+fun Observable.observeOnComputation(): Observable = observeOn(Schedulers.computation())
-fun Observable.observeOnIo(): Observable = observeOn(Schedulers.io())
+fun Observable.observeOnIo(): Observable = observeOn(Schedulers.io())
-fun Observable.subscribeEmpty(): Disposable = subscribe({}, {}, {})
+fun Observable.subscribeEmpty(): Disposable = subscribe({}, {}, {})
-fun Observable.subscribeEmpty(onSuccess: (T) -> Unit): Disposable = subscribe(onSuccess, {}, {})
+fun Observable.subscribeEmpty(onSuccess: (T) -> Unit): Disposable = subscribe(onSuccess, {}, {})
-fun Observable.subscribeEmpty(onSuccess: (T) -> Unit, onError: (Throwable) -> Unit): Disposable = subscribe(onSuccess, onError, {})
+fun Observable.subscribeEmpty(onSuccess: (T) -> Unit, onError: (Throwable) -> Unit): Disposable = subscribe(onSuccess, onError, {})
-fun Observable.subscribeDefault(aapsLogger: AAPSLogger): Disposable = subscribe({ aapsLogger.debug(LTag.PUMP, "onSuccess") }, { aapsLogger.error(LTag.PUMP, "onError", it) }, {
+fun Observable.subscribeDefault(aapsLogger: AAPSLogger): Disposable = subscribe({ aapsLogger.debug(LTag.PUMP, "onSuccess") }, { aapsLogger.error(LTag.PUMP, "onError", it) }, {
aapsLogger.debug(LTag.PUMP, "onComplete")
})
-fun Observable.subscribeDefault(aapsLogger: AAPSLogger, onSuccess: (T) -> Unit): Disposable =
+fun Observable.subscribeDefault(aapsLogger: AAPSLogger, onSuccess: (T) -> Unit): Disposable =
subscribe(onSuccess, { aapsLogger.error(LTag.PUMP, "onError", it) }, { aapsLogger.debug(LTag.PUMP, "onComplete") })
-fun Observable.subscribeDefault(aapsLogger: AAPSLogger, onSuccess: (T) -> Unit, onError: (Throwable) -> Unit): Disposable =
+fun Observable.subscribeDefault(aapsLogger: AAPSLogger, onSuccess: (T) -> Unit, onError: (Throwable) -> Unit): Disposable =
subscribe(onSuccess, onError, { aapsLogger.debug(LTag.PUMP, "onComplete") })
-fun Observable.with(): Observable = subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
\ No newline at end of file
+fun Observable.with(): Observable = subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
\ No newline at end of file
diff --git a/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/extension/SingleExtension.kt b/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/extension/SingleExtension.kt
index 16d857eb3c..fa028a7b7a 100644
--- a/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/extension/SingleExtension.kt
+++ b/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/extension/SingleExtension.kt
@@ -7,8 +7,8 @@ import io.reactivex.rxjava3.core.Single
import io.reactivex.rxjava3.disposables.Disposable
import io.reactivex.rxjava3.schedulers.Schedulers
-fun Single.subscribeDefault(aapsLogger: AAPSLogger, onSuccess: (T) -> Unit): Disposable = subscribe(onSuccess, {
+fun Single.subscribeDefault(aapsLogger: AAPSLogger, onSuccess: (T) -> Unit): Disposable = subscribe(onSuccess) {
aapsLogger.error(LTag.PUMP, "onError", it)
-})
+}
-fun Single.with(): Single = subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+fun Single.with(): Single = subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
diff --git a/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EopatchActivity.kt b/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EopatchActivity.kt
index 933bf5f645..d700a87a82 100644
--- a/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EopatchActivity.kt
+++ b/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EopatchActivity.kt
@@ -9,10 +9,11 @@ import android.os.Bundle
import android.view.MotionEvent
import androidx.appcompat.app.AlertDialog
import androidx.lifecycle.ViewModelProvider
+import info.nightscout.androidaps.extensions.safeGetSerializableExtra
import info.nightscout.androidaps.plugins.pump.eopatch.R
+import info.nightscout.androidaps.plugins.pump.eopatch.code.EventType
import info.nightscout.androidaps.plugins.pump.eopatch.code.PatchLifecycle
import info.nightscout.androidaps.plugins.pump.eopatch.code.PatchStep
-import info.nightscout.androidaps.plugins.pump.eopatch.code.EventType
import info.nightscout.androidaps.plugins.pump.eopatch.databinding.ActivityEopatchBinding
import info.nightscout.androidaps.plugins.pump.eopatch.extension.replaceFragmentInActivity
import info.nightscout.androidaps.plugins.pump.eopatch.extension.takeOne
@@ -117,7 +118,7 @@ class EopatchActivity : EoBaseActivity() {
binding.viewModel?.apply {
intent?.run {
- val step = intent.getSerializableExtra(EXTRA_START_PATCH_STEP) as PatchStep?
+ val step = intent.safeGetSerializableExtra(EXTRA_START_PATCH_STEP, PatchStep::class.java)
forceDiscard = intent.getBooleanExtra(EXTRA_FORCE_DISCARD, false)
if (intent.getBooleanExtra(EXTRA_START_WITH_COMM_CHECK, false)) {
diff --git a/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/IPreference.kt b/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/IPreference.kt
index 5d06f2ee3e..ccb254b79f 100644
--- a/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/IPreference.kt
+++ b/pump/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/IPreference.kt
@@ -3,7 +3,7 @@ package info.nightscout.androidaps.plugins.pump.eopatch.vo
import info.nightscout.shared.sharedPreferences.SP
import io.reactivex.rxjava3.core.Observable
-interface IPreference{
+interface IPreference{
fun flush(sp: SP)
fun observe(): Observable
}
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
index 96ecfeb29e..9f13a169ad 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -14,6 +14,7 @@ include ':pump:danar'
include ':pump:danars'
include ':pump:diaconn'
include ':pump:eopatch'
+include ':pump:eopatch-core'
include ':insight'
include ':pump:medtronic'
include ':pump:omnipod-common'