From 8fe336b3ce2f3372d7102cdbccf6bf9792cd4d74 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Mon, 12 Sep 2022 09:14:24 +0200 Subject: [PATCH] EOPATCH: migrate to rx3 --- .../queue/CommandQueueImplementation.kt | 2 +- .../androidaps/interfaces/CommandQueue.kt | 2 +- eopatch/build.gradle | 16 +-- eopatch/libs/eopatch_core.aar | Bin 91070 -> 91258 bytes .../pump/eopatch/ExampleInstrumentedTest.kt | 25 ----- eopatch/src/main/AndroidManifest.xml | 3 +- .../plugins/pump/eopatch/CommonUtils.kt | 2 +- .../plugins/pump/eopatch/EoPatchRxBus.kt | 4 +- .../plugins/pump/eopatch/EopatchPumpPlugin.kt | 56 +++------ .../plugins/pump/eopatch/OsAlarmService.java | 2 +- .../plugins/pump/eopatch/RxAction.kt | 3 +- .../pump/eopatch/alarm/AlarmManager.kt | 24 ++-- .../pump/eopatch/alarm/AlarmProcess.kt | 3 +- .../pump/eopatch/alarm/AlarmRegistry.kt | 29 +++-- .../pump/eopatch/ble/IPatchManager.java | 4 +- .../pump/eopatch/ble/PatchManager.java | 24 ++-- .../pump/eopatch/ble/PatchManagerImpl.java | 106 ++++++++++-------- .../pump/eopatch/ble/PatchStateManager.java | 9 +- .../pump/eopatch/ble/PreferenceManager.kt | 2 +- .../pump/eopatch/ble/task/ActivateTask.java | 4 +- .../pump/eopatch/ble/task/DeactivateTask.java | 18 +-- .../pump/eopatch/ble/task/FetchAlarmTask.java | 2 +- .../eopatch/ble/task/GetPatchInfoTask.java | 4 +- .../eopatch/ble/task/InfoReminderTask.java | 2 +- .../ble/task/InternalSuspendedTask.java | 8 +- .../eopatch/ble/task/NeedleSensingTask.java | 2 +- .../pump/eopatch/ble/task/PauseBasalTask.java | 8 +- .../pump/eopatch/ble/task/PrimingTask.java | 2 +- .../ble/task/ReadBolusFinishTimeTask.java | 2 +- .../ble/task/ReadTempBasalFinishTimeTask.java | 2 +- .../eopatch/ble/task/ResumeBasalTask.java | 2 +- .../pump/eopatch/ble/task/SelfTestTask.java | 2 +- .../eopatch/ble/task/SetGlobalTimeTask.java | 2 +- .../eopatch/ble/task/SetLowReservoirTask.java | 2 +- .../pump/eopatch/ble/task/StartBondTask.java | 2 +- .../eopatch/ble/task/StartCalcBolusTask.java | 2 +- .../ble/task/StartNormalBasalTask.java | 19 ++-- .../eopatch/ble/task/StartQuickBolusTask.java | 2 +- .../eopatch/ble/task/StartTempBasalTask.java | 15 +-- .../pump/eopatch/ble/task/StopBasalTask.java | 8 +- .../eopatch/ble/task/StopComboBolusTask.java | 2 +- .../eopatch/ble/task/StopExtBolusTask.java | 2 +- .../eopatch/ble/task/StopNowBolusTask.java | 17 +-- .../eopatch/ble/task/StopTempBasalTask.java | 2 +- .../ble/task/SyncBasalHistoryTask.java | 2 +- .../pump/eopatch/ble/task/TaskBase.java | 4 +- .../pump/eopatch/ble/task/TaskQueue.java | 9 +- .../ble/task/UpdateConnectionTask.java | 2 +- .../eopatch/extension/ObservableExtension.kt | 8 +- .../pump/eopatch/extension/SingleExtension.kt | 8 +- .../pump/eopatch/ui/AlarmHelperActivity.kt | 9 +- .../plugins/pump/eopatch/ui/EoBaseActivity.kt | 6 +- .../plugins/pump/eopatch/ui/EoBaseFragment.kt | 7 +- .../eopatch/ui/EopatchOverviewFragment.kt | 2 +- .../pump/eopatch/ui/dialogs/AlarmDialog.kt | 37 +++--- .../ui/receiver/RxBroadcastReceiver.kt | 6 +- .../eopatch/ui/viewmodel/EoBaseViewModel.kt | 7 +- .../ui/viewmodel/EopatchOverviewViewModel.kt | 6 +- .../eopatch/ui/viewmodel/EopatchViewModel.kt | 12 +- .../plugins/pump/eopatch/vo/Alarms.kt | 4 +- .../plugins/pump/eopatch/vo/BolusCurrent.kt | 4 +- .../plugins/pump/eopatch/vo/IPreference.kt | 2 +- .../pump/eopatch/vo/NormalBasalManager.kt | 4 +- .../plugins/pump/eopatch/vo/PatchConfig.kt | 4 +- .../plugins/pump/eopatch/vo/PatchState.kt | 4 +- .../pump/eopatch/vo/TempBasalManager.kt | 4 +- .../plugins/pump/eopatch/ExampleUnitTest.kt | 18 --- 67 files changed, 274 insertions(+), 344 deletions(-) delete mode 100644 eopatch/src/androidTest/java/info/nightscout/androidaps/plugins/pump/eopatch/ExampleInstrumentedTest.kt delete mode 100644 eopatch/src/test/java/info/nightscout/androidaps/plugins/pump/eopatch/ExampleUnitTest.kt diff --git a/app/src/main/java/info/nightscout/androidaps/queue/CommandQueueImplementation.kt b/app/src/main/java/info/nightscout/androidaps/queue/CommandQueueImplementation.kt index f8ba452203..fa729c18e4 100644 --- a/app/src/main/java/info/nightscout/androidaps/queue/CommandQueueImplementation.kt +++ b/app/src/main/java/info/nightscout/androidaps/queue/CommandQueueImplementation.kt @@ -323,7 +323,7 @@ class CommandQueueImplementation @Inject constructor( } @Synchronized - override fun cancelAllBoluses(id: Long) { + override fun cancelAllBoluses(id: Long?) { if (!isRunning(CommandType.BOLUS)) { rxBus.send(EventDismissBolusProgressIfRunning(PumpEnactResult(injector).success(true).enacted(false), id)) } diff --git a/core/src/main/java/info/nightscout/androidaps/interfaces/CommandQueue.kt b/core/src/main/java/info/nightscout/androidaps/interfaces/CommandQueue.kt index b81f4fa0fe..f1798a1791 100644 --- a/core/src/main/java/info/nightscout/androidaps/interfaces/CommandQueue.kt +++ b/core/src/main/java/info/nightscout/androidaps/interfaces/CommandQueue.kt @@ -17,7 +17,7 @@ interface CommandQueue { fun independentConnect(reason: String, callback: Callback?) fun bolusInQueue(): Boolean fun bolus(detailedBolusInfo: DetailedBolusInfo, callback: Callback?): Boolean - fun cancelAllBoluses(id: Long) + fun cancelAllBoluses(id: Long?) fun stopPump(callback: Callback?) fun startPump(callback: Callback?) fun setTBROverNotification(callback: Callback?, enable: Boolean) diff --git a/eopatch/build.gradle b/eopatch/build.gradle index 8f813b9f45..b3a2f28729 100644 --- a/eopatch/build.gradle +++ b/eopatch/build.gradle @@ -10,28 +10,20 @@ apply from: "${project.rootDir}/core/test_dependencies.gradle" apply from: "${project.rootDir}/core/jacoco_global.gradle" android { + namespace 'info.nightscout.androidaps.plugins.pump.eopatch' dataBinding { enabled = true } } -allprojects { - repositories { - flatDir { - dirs 'libs' - } - } -} - dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation (name: 'eopatch_core', ext: 'aar') -// implementation (files("libs/eopatch_core.aar")) + implementation (files("libs/eopatch_core.aar")) implementation project(':core') implementation project(':shared') implementation project(':database') //RxAndroidBle - implementation "com.polidea.rxandroidble2:rxandroidble:1.12.1" - implementation "com.jakewharton.rx2:replaying-share:2.2.0" + implementation "com.polidea.rxandroidble3:rxandroidble:1.16.0" + implementation "com.jakewharton.rx3:replaying-share:3.0.0" } \ No newline at end of file diff --git a/eopatch/libs/eopatch_core.aar b/eopatch/libs/eopatch_core.aar index 837d402724ff2a0eb66e7b9cf97368417d63fb71..938f227251da185173fb09c29f03685d12f45584 100644 GIT binary patch literal 91258 zcmV(|K+(TYO9KQ7000OG0000%0000000IC20000000jU508%b=cyt2*P)h>@3IG5I z2mk;8K>*fsbQ!t;0018W000vJ002R5WO8q5WKCgiX=Y_}bS`*pY-NwZYQr!PMDK?D zgV=kdwDb^+?R-Qb_eEOE!qG}-rIOFD+t`QFxePnZKA7S5j1ToiMMB~c-t+|&u}v

_QPm@42=q8qBLHBxcXx)TvDw?TVg8 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�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

qvF0-${7(Bs75*Bj`Z#0;f{BEOT|($&ubE0}CU3 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

D>#bDg&dMdBYhbeqj%?kOijo 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 z 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 diff --git a/eopatch/src/androidTest/java/info/nightscout/androidaps/plugins/pump/eopatch/ExampleInstrumentedTest.kt b/eopatch/src/androidTest/java/info/nightscout/androidaps/plugins/pump/eopatch/ExampleInstrumentedTest.kt deleted file mode 100644 index 5a38981b80..0000000000 --- a/eopatch/src/androidTest/java/info/nightscout/androidaps/plugins/pump/eopatch/ExampleInstrumentedTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package info.nightscout.androidaps.plugins.pump.eopatch - -import androidx.test.platform.app.InstrumentationRegistry -import androidx.test.ext.junit.runners.AndroidJUnit4 - -import org.junit.Test -import org.junit.runner.RunWith - -import org.junit.Assert.* - -/** - * Instrumented test, which will execute on an Android device. - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -@RunWith(AndroidJUnit4::class) -class ExampleInstrumentedTest { - - @Test - fun useAppContext() { - // Context of the app under test. - val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("com.eoflow.patch", appContext.packageName) - } -} \ No newline at end of file diff --git a/eopatch/src/main/AndroidManifest.xml b/eopatch/src/main/AndroidManifest.xml index b41d2247be..b84a88757c 100644 --- a/eopatch/src/main/AndroidManifest.xml +++ b/eopatch/src/main/AndroidManifest.xml @@ -1,6 +1,5 @@ - + diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/CommonUtils.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/CommonUtils.kt index 2780825ed7..1ac00e6306 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/CommonUtils.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/CommonUtils.kt @@ -1,6 +1,6 @@ package info.nightscout.androidaps.plugins.pump.eopatch -import io.reactivex.disposables.Disposable +import io.reactivex.rxjava3.disposables.Disposable import java.util.* import kotlin.math.abs import kotlin.math.min diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/EoPatchRxBus.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/EoPatchRxBus.kt index be24015956..4658e28218 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/EoPatchRxBus.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/EoPatchRxBus.kt @@ -1,7 +1,7 @@ package info.nightscout.androidaps.plugins.pump.eopatch -import io.reactivex.Observable -import io.reactivex.subjects.PublishSubject +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.subjects.PublishSubject object EoPatchRxBus { private val publishSubject: PublishSubject = PublishSubject.create() diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/EopatchPumpPlugin.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/EopatchPumpPlugin.kt index 18852d29c1..b919ff15bd 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/EopatchPumpPlugin.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/EopatchPumpPlugin.kt @@ -1,17 +1,20 @@ package info.nightscout.androidaps.plugins.pump.eopatch import android.os.SystemClock -import androidx.preference.Preference -import androidx.preference.PreferenceFragmentCompat import dagger.android.HasAndroidInjector import info.nightscout.androidaps.data.DetailedBolusInfo -import info.nightscout.androidaps.interfaces.Profile import info.nightscout.androidaps.data.PumpEnactResult import info.nightscout.androidaps.events.EventAppInitialized import info.nightscout.androidaps.events.EventPreferenceChange -import info.nightscout.androidaps.interfaces.* -import info.nightscout.shared.logging.AAPSLogger -import info.nightscout.shared.logging.LTag +import info.nightscout.androidaps.interfaces.CommandQueue +import info.nightscout.androidaps.interfaces.PluginDescription +import info.nightscout.androidaps.interfaces.PluginType +import info.nightscout.androidaps.interfaces.Profile +import info.nightscout.androidaps.interfaces.Pump +import info.nightscout.androidaps.interfaces.PumpDescription +import info.nightscout.androidaps.interfaces.PumpPluginBase +import info.nightscout.androidaps.interfaces.PumpSync +import info.nightscout.androidaps.interfaces.ResourceHelper import info.nightscout.androidaps.plugins.bus.RxBus import info.nightscout.androidaps.plugins.common.ManufacturerType import info.nightscout.androidaps.plugins.general.actions.defs.CustomAction @@ -31,13 +34,12 @@ import info.nightscout.androidaps.utils.DateUtil import info.nightscout.androidaps.utils.FabricPrivacy import info.nightscout.androidaps.utils.T import info.nightscout.androidaps.utils.TimeChangeType -import info.nightscout.androidaps.utils.resources.ResourceHelper import info.nightscout.androidaps.utils.rx.AapsSchedulers -import io.reactivex.android.schedulers.AndroidSchedulers -import io.reactivex.disposables.CompositeDisposable -import io.reactivex.functions.Consumer -import io.reactivex.schedulers.Schedulers -import io.reactivex.subjects.BehaviorSubject +import info.nightscout.shared.logging.AAPSLogger +import info.nightscout.shared.logging.LTag +import io.reactivex.rxjava3.disposables.CompositeDisposable +import io.reactivex.rxjava3.functions.Consumer +import io.reactivex.rxjava3.subjects.BehaviorSubject import org.json.JSONObject import javax.inject.Inject import javax.inject.Singleton @@ -78,7 +80,7 @@ class EopatchPumpPlugin @Inject constructor( super.onStart() mDisposables.add(rxBus .toObservable(EventPreferenceChange::class.java) - .observeOn(Schedulers.io()) + .observeOn(aapsSchedulers.io) .subscribe({ event: EventPreferenceChange -> if (event.isChanged(rh, SettingKeys.LOW_RESERVOIR_REMINDERS) || event.isChanged(rh, SettingKeys.EXPIRATION_REMINDERS)) { patchManager.changeReminderSetting() @@ -90,7 +92,7 @@ class EopatchPumpPlugin @Inject constructor( mDisposables.add(rxBus .toObservable(EventAppInitialized::class.java) - .observeOn(Schedulers.io()) + .observeOn(aapsSchedulers.io) .subscribe({ aapsLogger.debug(LTag.PUMP,"EventAppInitialized") preferenceManager.init() @@ -109,35 +111,11 @@ class EopatchPumpPlugin @Inject constructor( return super.specialEnableCondition() } - override fun specialShowInListCondition(): Boolean { - return super.specialShowInListCondition() - } - override fun onStop() { super.onStop() aapsLogger.debug(LTag.PUMP, "EOPatchPumpPlugin onStop()") } - override fun onStateChange(type: PluginType?, oldState: State?, newState: State?) { - super.onStateChange(type, oldState, newState) - } - - override fun preprocessPreferences(preferenceFragment: PreferenceFragmentCompat) { - super.preprocessPreferences(preferenceFragment) - } - - override fun updatePreferenceSummary(pref: Preference) { - super.updatePreferenceSummary(pref) - } - - override fun isUnreachableAlertTimeoutExceeded(alertTimeoutMilliseconds: Long): Boolean { - return super.isUnreachableAlertTimeoutExceeded(alertTimeoutMilliseconds) - } - - override fun setNeutralTempAtFullHour(): Boolean { - return super.setNeutralTempAtFullHour() - } - override fun isInitialized(): Boolean { return isConnected() && patchManager.isActivated } @@ -207,7 +185,7 @@ class EopatchPumpPlugin @Inject constructor( val nb = preferenceManager.getNormalBasalManager().convertProfileToNormalBasal(profile) mDisposables.add(patchManager.startBasal(nb) - .observeOn(AndroidSchedulers.mainThread()) + .observeOn(aapsSchedulers.main) .subscribe({ response -> result.onNext(response.isSuccess) }, { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/OsAlarmService.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/OsAlarmService.java index a1671f619a..a03ea1520b 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/OsAlarmService.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/OsAlarmService.java @@ -8,7 +8,7 @@ import android.os.IBinder; import java.util.Objects; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public class OsAlarmService extends Service { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/RxAction.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/RxAction.kt index 2565d41e64..5ec9fd146a 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/RxAction.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/RxAction.kt @@ -5,7 +5,8 @@ package info.nightscout.androidaps.plugins.pump.eopatch import android.os.SystemClock import info.nightscout.androidaps.utils.rx.AapsSchedulers import info.nightscout.shared.logging.AAPSLogger -import io.reactivex.* +import io.reactivex.rxjava3.core.Scheduler +import io.reactivex.rxjava3.core.Single import java.util.concurrent.TimeUnit import javax.inject.Inject import javax.inject.Singleton diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/alarm/AlarmManager.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/alarm/AlarmManager.kt index b00b8067d4..9d26583d75 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/alarm/AlarmManager.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/alarm/AlarmManager.kt @@ -4,15 +4,14 @@ import android.content.Context import android.content.Intent import info.nightscout.androidaps.interfaces.ActivePlugin import info.nightscout.androidaps.interfaces.CommandQueue -import info.nightscout.shared.logging.AAPSLogger -import info.nightscout.shared.logging.LTag +import info.nightscout.androidaps.interfaces.ResourceHelper import info.nightscout.androidaps.plugins.bus.RxBus import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification import info.nightscout.androidaps.plugins.general.overview.notifications.Notification -import info.nightscout.androidaps.plugins.pump.eopatch.alarm.AlarmCode.* import info.nightscout.androidaps.plugins.pump.eopatch.EONotification import info.nightscout.androidaps.plugins.pump.eopatch.EoPatchRxBus import info.nightscout.androidaps.plugins.pump.eopatch.R +import info.nightscout.androidaps.plugins.pump.eopatch.alarm.AlarmCode.* import info.nightscout.androidaps.plugins.pump.eopatch.ble.IPatchManager import info.nightscout.androidaps.plugins.pump.eopatch.ble.IPreferenceManager import info.nightscout.androidaps.plugins.pump.eopatch.code.AlarmCategory @@ -20,14 +19,14 @@ import info.nightscout.androidaps.plugins.pump.eopatch.event.EventEoPatchAlarm import info.nightscout.androidaps.plugins.pump.eopatch.ui.AlarmHelperActivity import info.nightscout.androidaps.plugins.pump.eopatch.vo.Alarms import info.nightscout.androidaps.utils.FabricPrivacy -import info.nightscout.androidaps.utils.resources.ResourceHelper +import info.nightscout.androidaps.utils.rx.AapsSchedulers +import info.nightscout.shared.logging.AAPSLogger +import info.nightscout.shared.logging.LTag import info.nightscout.shared.sharedPreferences.SP -import io.reactivex.Observable -import io.reactivex.Single -import io.reactivex.android.schedulers.AndroidSchedulers -import io.reactivex.disposables.CompositeDisposable -import io.reactivex.disposables.Disposable -import io.reactivex.schedulers.Schedulers +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.Single +import io.reactivex.rxjava3.disposables.CompositeDisposable +import io.reactivex.rxjava3.disposables.Disposable import java.util.concurrent.TimeUnit import javax.inject.Inject import javax.inject.Singleton @@ -49,6 +48,7 @@ class AlarmManager @Inject constructor() : IAlarmManager { @Inject lateinit var fabricPrivacy: FabricPrivacy @Inject lateinit var sp: SP @Inject lateinit var context: Context + @Inject lateinit var aapsSchedulers: AapsSchedulers @Inject lateinit var pm: IPreferenceManager @Inject lateinit var mAlarmRegistry: IAlarmRegistry @@ -69,8 +69,8 @@ class AlarmManager @Inject constructor() : IAlarmManager { .doOnNext { aapsLogger.info(LTag.PUMP,"EventEoPatchAlarm Received") } .concatMap { Observable.fromArray(it) - .observeOn(Schedulers.io()) - .subscribeOn(AndroidSchedulers.mainThread()) + .observeOn(aapsSchedulers.io) + .subscribeOn(aapsSchedulers.main) .doOnNext { alarmCodes -> alarmCodes.forEach { alarmCode -> aapsLogger.info(LTag.PUMP,"alarmCode: ${alarmCode.name}") diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/alarm/AlarmProcess.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/alarm/AlarmProcess.kt index cc686f9540..8ebfdfc998 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/alarm/AlarmProcess.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/alarm/AlarmProcess.kt @@ -17,7 +17,7 @@ import info.nightscout.androidaps.plugins.pump.eopatch.event.EventDialog import info.nightscout.androidaps.plugins.pump.eopatch.event.EventProgressDialog import info.nightscout.androidaps.plugins.pump.eopatch.extension.takeOne import info.nightscout.androidaps.plugins.pump.eopatch.ui.dialogs.CommonDialog -import io.reactivex.Single +import io.reactivex.rxjava3.core.Single import java.lang.Exception import java.util.concurrent.Callable @@ -119,7 +119,6 @@ class AlarmProcess(val patchManager: IPatchManager, val rxBus: RxBus) : IAlarmPr .filter{ok -> ok} .flatMap { patchManager.resumeBasal().map { it.isSuccess.takeOne(IAlarmProcess.ALARM_HANDLED, IAlarmProcess.ALARM_UNHANDLED) }.toMaybe() } .defaultIfEmpty(IAlarmProcess.ALARM_UNHANDLED) - .toSingle() } } } \ No newline at end of file diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/alarm/AlarmRegistry.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/alarm/AlarmRegistry.kt index 157fea2d95..dcd01a5d0f 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/alarm/AlarmRegistry.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/alarm/AlarmRegistry.kt @@ -1,27 +1,26 @@ package info.nightscout.androidaps.plugins.pump.eopatch.alarm import android.app.AlarmManager -import info.nightscout.androidaps.plugins.pump.eopatch.alarm.AlarmCode.Companion.getUri -import info.nightscout.androidaps.plugins.pump.eopatch.ble.IPreferenceManager -import info.nightscout.androidaps.plugins.bus.RxBus -import info.nightscout.androidaps.plugins.pump.eopatch.event.EventEoPatchAlarm -import android.app.PendingIntent import android.app.AlarmManager.AlarmClockInfo +import android.app.PendingIntent import android.content.Context import android.content.Intent -import info.nightscout.shared.logging.AAPSLogger +import info.nightscout.androidaps.plugins.bus.RxBus import info.nightscout.androidaps.plugins.general.overview.events.EventDismissNotification import info.nightscout.androidaps.plugins.general.overview.notifications.Notification import info.nightscout.androidaps.plugins.pump.eopatch.EoPatchRxBus import info.nightscout.androidaps.plugins.pump.eopatch.OsAlarmReceiver +import info.nightscout.androidaps.plugins.pump.eopatch.alarm.AlarmCode.Companion.getUri +import info.nightscout.androidaps.plugins.pump.eopatch.ble.IPreferenceManager import info.nightscout.androidaps.plugins.pump.eopatch.code.PatchLifecycle import info.nightscout.androidaps.plugins.pump.eopatch.core.code.PatchAeCode +import info.nightscout.androidaps.plugins.pump.eopatch.event.EventEoPatchAlarm import info.nightscout.androidaps.utils.rx.AapsSchedulers -import io.reactivex.Maybe -import io.reactivex.Observable -import io.reactivex.android.schedulers.AndroidSchedulers -import io.reactivex.disposables.CompositeDisposable -import io.reactivex.disposables.Disposable +import info.nightscout.shared.logging.AAPSLogger +import io.reactivex.rxjava3.core.Maybe +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.disposables.CompositeDisposable +import io.reactivex.rxjava3.disposables.Disposable import java.util.concurrent.TimeUnit import javax.inject.Inject import javax.inject.Singleton @@ -109,10 +108,10 @@ class AlarmRegistry @Inject constructor() : IAlarmRegistry { override fun add(patchAeCodes: Set) { compositeDisposable.add( Observable.fromIterable(patchAeCodes) - .filter{patchAeCodeItem -> AlarmCode.findByPatchAeCode(patchAeCodeItem.getAeValue()) != null} - .observeOn(AndroidSchedulers.mainThread()) - .filter { aeCodes -> AlarmCode.findByPatchAeCode(aeCodes.getAeValue()) != null } - .flatMapMaybe{aeCodeResponse -> add(AlarmCode.findByPatchAeCode(aeCodeResponse.getAeValue())!!,0L, true)} + .filter{patchAeCodeItem -> AlarmCode.findByPatchAeCode(patchAeCodeItem.aeValue) != null} + .observeOn(aapsSchedulers.main) + .filter { aeCodes -> AlarmCode.findByPatchAeCode(aeCodes.aeValue) != null } + .flatMapMaybe{aeCodeResponse -> add(AlarmCode.findByPatchAeCode(aeCodeResponse.aeValue)!!, 0L, true)} .subscribe() ) } diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/IPatchManager.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/IPatchManager.java index 26f1f800b1..ed6f829238 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/IPatchManager.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/IPatchManager.java @@ -23,8 +23,8 @@ import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchConfig; import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchLifecycleEvent; import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchState; import info.nightscout.androidaps.plugins.pump.eopatch.vo.TempBasal; -import io.reactivex.Observable; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; public interface IPatchManager { void init(); diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/PatchManager.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/PatchManager.java index 4922551756..faa98c6412 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/PatchManager.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/PatchManager.java @@ -16,6 +16,7 @@ import info.nightscout.androidaps.interfaces.ActivePlugin; import info.nightscout.androidaps.interfaces.CommandQueue; import info.nightscout.androidaps.interfaces.ProfileFunction; import info.nightscout.androidaps.interfaces.PumpSync; +import info.nightscout.androidaps.interfaces.ResourceHelper; import info.nightscout.androidaps.plugins.bus.RxBus; import info.nightscout.androidaps.plugins.pump.common.defs.PumpType; import info.nightscout.androidaps.plugins.pump.eopatch.R; @@ -47,15 +48,13 @@ import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchLifecycleEvent; import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchState; import info.nightscout.androidaps.plugins.pump.eopatch.vo.TempBasal; import info.nightscout.androidaps.utils.DateUtil; -import info.nightscout.androidaps.utils.resources.ResourceHelper; +import info.nightscout.androidaps.utils.rx.AapsSchedulers; import info.nightscout.shared.logging.AAPSLogger; import info.nightscout.shared.sharedPreferences.SP; -import io.reactivex.Observable; -import io.reactivex.Single; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; -import io.reactivex.disposables.Disposable; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.disposables.CompositeDisposable; +import io.reactivex.rxjava3.disposables.Disposable; @Singleton public class PatchManager implements IPatchManager { @@ -73,6 +72,7 @@ public class PatchManager implements IPatchManager { @Inject PumpSync pumpSync; @Inject DateUtil dateUtil; @Inject RxAction rxAction; + @Inject AapsSchedulers aapsSchedulers; private IPatchScanner patchScanner; private final CompositeDisposable mCompositeDisposable = new CompositeDisposable(); @@ -104,7 +104,7 @@ public class PatchManager implements IPatchManager { case CONNECTING: mConnectingDisposable = Observable.interval(0, 1, TimeUnit.SECONDS) - .observeOn(AndroidSchedulers.mainThread()) + .observeOn(aapsSchedulers.getMain()) .takeUntil(n -> getPatchConnectionState().isConnected() || n > 10 * 60) .subscribe(n -> rxBus.send(new EventPumpStatusChanged(EventPumpStatusChanged.Status.CONNECTING, n.intValue()))); break; @@ -116,8 +116,8 @@ public class PatchManager implements IPatchManager { ); mCompositeDisposable.add(rxBus .toObservable(EventPatchActivationNotComplete.class) - .observeOn(Schedulers.io()) - .subscribeOn(AndroidSchedulers.mainThread()) + .observeOn(aapsSchedulers.getIo()) + .subscribeOn(aapsSchedulers.getMain()) .subscribe(eventPatchActivationNotComplete -> { Intent i = new Intent(context, DialogHelperActivity.class); i.putExtra("title", resourceHelper.gs(R.string.patch_activate_reminder_title)); @@ -383,7 +383,7 @@ public class PatchManager implements IPatchManager { if(pm.getPatchConfig().getInfoReminder() != buzzer) { if (isActivated()) { mCompositeDisposable.add(infoReminderSet(buzzer) - .observeOn(AndroidSchedulers.mainThread()) + .observeOn(aapsSchedulers.getMain()) .subscribe(patchBooleanResponse -> { pm.getPatchConfig().setInfoReminder(buzzer); pm.flushPatchConfig(); @@ -403,7 +403,7 @@ public class PatchManager implements IPatchManager { if(pc.getLowReservoirAlertAmount() != doseUnit || pc.getPatchExpireAlertTime() != hours) { if (isActivated()) { mCompositeDisposable.add(setLowReservoir(doseUnit, hours) - .observeOn(AndroidSchedulers.mainThread()) + .observeOn(aapsSchedulers.getMain()) .subscribe(patchBooleanResponse -> { pc.setLowReservoirAlertAmount(doseUnit); pc.setPatchExpireAlertTime(hours); diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/PatchManagerImpl.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/PatchManagerImpl.java index c308950433..569f04959f 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/PatchManagerImpl.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/PatchManagerImpl.java @@ -10,9 +10,30 @@ import android.content.IntentFilter; import androidx.annotation.Nullable; +import java.math.BigInteger; +import java.security.AlgorithmParameters; +import java.security.InvalidKeyException; +import java.security.KeyFactory; +import java.security.KeyPair; +import java.security.KeyPairGenerator; +import java.security.NoSuchAlgorithmException; +import java.security.PrivateKey; +import java.security.PublicKey; +import java.security.interfaces.ECPublicKey; +import java.security.spec.ECGenParameterSpec; +import java.security.spec.ECParameterSpec; +import java.security.spec.ECPoint; +import java.security.spec.ECPublicKeySpec; +import java.security.spec.InvalidKeySpecException; +import java.security.spec.InvalidParameterSpecException; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import javax.crypto.KeyAgreement; +import javax.inject.Inject; +import javax.inject.Singleton; + import info.nightscout.androidaps.data.DetailedBolusInfo; -import info.nightscout.shared.logging.AAPSLogger; -import info.nightscout.shared.logging.LTag; import info.nightscout.androidaps.plugins.pump.eopatch.EoPatchRxBus; import info.nightscout.androidaps.plugins.pump.eopatch.alarm.AlarmCode; import info.nightscout.androidaps.plugins.pump.eopatch.ble.task.ActivateTask; @@ -38,10 +59,10 @@ import info.nightscout.androidaps.plugins.pump.eopatch.ble.task.SyncBasalHistory import info.nightscout.androidaps.plugins.pump.eopatch.ble.task.TaskBase; import info.nightscout.androidaps.plugins.pump.eopatch.ble.task.TaskFunc; import info.nightscout.androidaps.plugins.pump.eopatch.ble.task.UpdateConnectionTask; -import info.nightscout.androidaps.plugins.pump.eopatch.core.scan.BleConnectionState; -import info.nightscout.androidaps.plugins.pump.eopatch.core.scan.IBleDevice; +import info.nightscout.androidaps.plugins.pump.eopatch.code.BolusExDuration; +import info.nightscout.androidaps.plugins.pump.eopatch.code.DeactivationStatus; +import info.nightscout.androidaps.plugins.pump.eopatch.code.SettingKeys; import info.nightscout.androidaps.plugins.pump.eopatch.core.Patch; -import info.nightscout.androidaps.plugins.pump.eopatch.core.scan.PatchSelfTestResult; import info.nightscout.androidaps.plugins.pump.eopatch.core.api.BuzzerStop; import info.nightscout.androidaps.plugins.pump.eopatch.core.api.GetTemperature; import info.nightscout.androidaps.plugins.pump.eopatch.core.api.PublicKeySend; @@ -51,35 +72,18 @@ import info.nightscout.androidaps.plugins.pump.eopatch.core.code.BolusType; import info.nightscout.androidaps.plugins.pump.eopatch.core.noti.AlarmNotification; import info.nightscout.androidaps.plugins.pump.eopatch.core.noti.BaseNotification; import info.nightscout.androidaps.plugins.pump.eopatch.core.noti.InfoNotification; -import info.nightscout.androidaps.plugins.pump.eopatch.core.response.*; - -import info.nightscout.androidaps.plugins.pump.eopatch.code.BolusExDuration; -import info.nightscout.androidaps.plugins.pump.eopatch.code.DeactivationStatus; - -import java.math.BigInteger; -import java.security.AlgorithmParameters; -import java.security.InvalidKeyException; -import java.security.KeyFactory; -import java.security.KeyPair; -import java.security.KeyPairGenerator; -import java.security.NoSuchAlgorithmException; -import java.security.PrivateKey; -import java.security.PublicKey; -import java.security.interfaces.ECPublicKey; -import java.security.spec.ECGenParameterSpec; -import java.security.spec.ECParameterSpec; -import java.security.spec.ECPoint; -import java.security.spec.ECPublicKeySpec; -import java.security.spec.InvalidKeySpecException; -import java.security.spec.InvalidParameterSpecException; -import java.util.Arrays; -import java.util.concurrent.TimeUnit; - -import javax.crypto.KeyAgreement; -import javax.inject.Inject; -import javax.inject.Singleton; - -import info.nightscout.androidaps.plugins.pump.eopatch.code.SettingKeys; +import info.nightscout.androidaps.plugins.pump.eopatch.core.response.BasalScheduleSetResponse; +import info.nightscout.androidaps.plugins.pump.eopatch.core.response.BaseResponse; +import info.nightscout.androidaps.plugins.pump.eopatch.core.response.BolusResponse; +import info.nightscout.androidaps.plugins.pump.eopatch.core.response.BolusStopResponse; +import info.nightscout.androidaps.plugins.pump.eopatch.core.response.ComboBolusStopResponse; +import info.nightscout.androidaps.plugins.pump.eopatch.core.response.KeyResponse; +import info.nightscout.androidaps.plugins.pump.eopatch.core.response.PatchBooleanResponse; +import info.nightscout.androidaps.plugins.pump.eopatch.core.response.TempBasalScheduleSetResponse; +import info.nightscout.androidaps.plugins.pump.eopatch.core.response.TemperatureResponse; +import info.nightscout.androidaps.plugins.pump.eopatch.core.scan.BleConnectionState; +import info.nightscout.androidaps.plugins.pump.eopatch.core.scan.IBleDevice; +import info.nightscout.androidaps.plugins.pump.eopatch.core.scan.PatchSelfTestResult; import info.nightscout.androidaps.plugins.pump.eopatch.event.EventEoPatchAlarm; import info.nightscout.androidaps.plugins.pump.eopatch.ui.receiver.RxBroadcastReceiver; import info.nightscout.androidaps.plugins.pump.eopatch.vo.BolusCurrent; @@ -87,13 +91,16 @@ import info.nightscout.androidaps.plugins.pump.eopatch.vo.NormalBasal; import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchConfig; import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchState; import info.nightscout.androidaps.plugins.pump.eopatch.vo.TempBasal; +import info.nightscout.androidaps.utils.rx.AapsSchedulers; +import info.nightscout.shared.logging.AAPSLogger; +import info.nightscout.shared.logging.LTag; import info.nightscout.shared.sharedPreferences.SP; -import io.reactivex.Observable; -import io.reactivex.Scheduler; -import io.reactivex.Single; -import io.reactivex.disposables.CompositeDisposable; -import io.reactivex.functions.Consumer; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Scheduler; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.disposables.CompositeDisposable; +import io.reactivex.rxjava3.functions.Consumer; +import io.reactivex.rxjava3.schedulers.Schedulers; @Singleton public class PatchManagerImpl{ @@ -101,6 +108,7 @@ public class PatchManagerImpl{ @Inject Context context; @Inject SP sp; @Inject AAPSLogger aapsLogger; + @Inject AapsSchedulers aapsSchedulers; @Inject StartBondTask START_BOND; @Inject GetPatchInfoTask GET_PATCH_INFO; @@ -146,17 +154,19 @@ public class PatchManagerImpl{ compositeDisposable.add( Observable.combineLatest(patch.observeConnected(), pm.observePatchLifeCycle(), (connected, lifeCycle) -> (connected && lifeCycle.isActivated())) - .subscribeOn(Schedulers.io()) + .subscribeOn(aapsSchedulers.getIo()) .filter(ok -> ok) - .observeOn(Schedulers.io()) + .observeOn(aapsSchedulers.getIo()) .doOnNext(v -> TaskBase.enqueue(TaskFunc.UPDATE_CONNECTION)) .retry() .subscribe()); compositeDisposable.add( - Observable.combineLatest(patch.observeConnected(), pm.observePatchLifeCycle().distinctUntilChanged(), dateTimeChanged.startWith(new Intent()), + Observable.combineLatest(patch.observeConnected(), + pm.observePatchLifeCycle().distinctUntilChanged(), + dateTimeChanged.startWith(Observable.just(new Intent())), (connected, lifeCycle, value) -> (connected && lifeCycle.isActivated())) - .subscribeOn(Schedulers.io()) + .subscribeOn(aapsSchedulers.getIo()) .doOnNext(v -> aapsLogger.debug(LTag.PUMP,"Has the date or time changed? "+v)) .filter(ok -> ok) .doOnNext(v -> TaskBase.enqueue(TaskFunc.SET_GLOBAL_TIME)) @@ -279,7 +289,7 @@ public class PatchManagerImpl{ // synchronized lock private final Object lock = new Object(); - private void updatePatchConfig(Consumer consumer, boolean needSave) throws Exception { + private void updatePatchConfig(Consumer consumer, boolean needSave) throws Throwable { synchronized (lock) { consumer.accept(pm.getPatchConfig()); if (needSave) { @@ -549,7 +559,7 @@ public class PatchManagerImpl{ @Inject SyncBasalHistoryTask syncBasalHistoryTask; - void onAlarmNotification(AlarmNotification notification) throws Exception { + void onAlarmNotification(AlarmNotification notification) throws Throwable { patchStateManager.updatePatchState(PatchState.create(notification.patchState, System.currentTimeMillis())); if (pm.getPatchConfig().isActivated()) { @@ -562,7 +572,7 @@ public class PatchManagerImpl{ } } - private void onInfoNotification(InfoNotification notification) throws Exception { + private void onInfoNotification(InfoNotification notification) throws Throwable { readBolusStatusFromNotification(notification); updateInjected(notification, false); if (notification.isBolusDone()) { @@ -570,7 +580,7 @@ public class PatchManagerImpl{ } } - void updateInjected(BaseNotification notification, boolean needSave) throws Exception { + void updateInjected(BaseNotification notification, boolean needSave) throws Throwable { updatePatchConfig(patchConfig -> { patchConfig.setInjectCount(notification.getTotalInjected()); patchConfig.setStandardBolusInjectCount(notification.getSB_CNT()); diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/PatchStateManager.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/PatchStateManager.java index 974c7ac061..a41131e4db 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/PatchStateManager.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/PatchStateManager.java @@ -6,6 +6,7 @@ import javax.inject.Inject; import javax.inject.Singleton; import info.nightscout.androidaps.interfaces.CommandQueue; +import info.nightscout.androidaps.utils.rx.AapsSchedulers; import info.nightscout.shared.logging.AAPSLogger; import info.nightscout.shared.logging.LTag; import info.nightscout.androidaps.plugins.pump.eopatch.core.code.BolusType; @@ -17,9 +18,8 @@ import info.nightscout.androidaps.plugins.pump.eopatch.vo.BolusCurrent; import info.nightscout.androidaps.plugins.pump.eopatch.vo.NormalBasal; import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchState; import info.nightscout.androidaps.plugins.pump.eopatch.vo.TempBasal; -import io.reactivex.Maybe; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.core.Maybe; +import io.reactivex.rxjava3.schedulers.Schedulers; @Singleton @@ -32,6 +32,7 @@ public class PatchStateManager { @Inject FetchAlarmTask FETCH_ALARM; @Inject CommandQueue commandQueue; @Inject AAPSLogger aapsLogger; + @Inject AapsSchedulers aapsSchedulers; @Inject public PatchStateManager() { @@ -41,7 +42,7 @@ public class PatchStateManager { public synchronized void updatePatchState(PatchState newState) { Maybe.fromCallable(() -> newState).observeOn(Schedulers.single()) .doOnSuccess(patchState -> updatePatchStateInner(patchState)) - .observeOn(AndroidSchedulers.mainThread()) + .observeOn(aapsSchedulers.getMain()) .doOnSuccess(patchState -> aapsLogger.debug(LTag.PUMP, patchState.toString())) .subscribe(); } diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/PreferenceManager.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/PreferenceManager.kt index 244814a109..5ceeb6ce0c 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/PreferenceManager.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/PreferenceManager.kt @@ -8,7 +8,7 @@ import info.nightscout.androidaps.plugins.pump.eopatch.code.SettingKeys import info.nightscout.androidaps.plugins.pump.eopatch.code.PatchLifecycle import info.nightscout.androidaps.plugins.pump.eopatch.vo.* import info.nightscout.shared.sharedPreferences.SP -import io.reactivex.Observable +import io.reactivex.rxjava3.core.Observable import javax.inject.Inject import javax.inject.Singleton diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/ActivateTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/ActivateTask.java index 888444e186..650e314e68 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/ActivateTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/ActivateTask.java @@ -9,8 +9,8 @@ import javax.inject.Singleton; import info.nightscout.androidaps.plugins.pump.eopatch.vo.NormalBasal; import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchLifecycleEvent; -import io.reactivex.Single; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.schedulers.Schedulers; @Singleton public class ActivateTask extends TaskBase { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/DeactivateTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/DeactivateTask.java index 3a403a4fe2..9765550713 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/DeactivateTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/DeactivateTask.java @@ -1,27 +1,27 @@ package info.nightscout.androidaps.plugins.pump.eopatch.ble.task; -import info.nightscout.shared.logging.LTag; -import info.nightscout.androidaps.plugins.pump.eopatch.ble.IPreferenceManager; -import info.nightscout.androidaps.plugins.pump.eopatch.core.code.BolusType; -import info.nightscout.androidaps.plugins.pump.eopatch.code.DeactivationStatus; - import java.util.concurrent.TimeUnit; import javax.inject.Inject; import javax.inject.Singleton; +import info.nightscout.androidaps.plugins.pump.eopatch.ble.IPreferenceManager; +import info.nightscout.androidaps.plugins.pump.eopatch.code.DeactivationStatus; import info.nightscout.androidaps.plugins.pump.eopatch.core.api.DeActivation; +import info.nightscout.androidaps.plugins.pump.eopatch.core.code.BolusType; import info.nightscout.androidaps.plugins.pump.eopatch.vo.BolusCurrent; import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchLifecycleEvent; import info.nightscout.androidaps.plugins.pump.eopatch.vo.TempBasal; -import io.reactivex.Observable; -import io.reactivex.Single; -import io.reactivex.schedulers.Schedulers; +import info.nightscout.androidaps.utils.rx.AapsSchedulers; +import info.nightscout.shared.logging.LTag; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; @Singleton public class DeactivateTask extends TaskBase { @Inject StopBasalTask stopBasalTask; @Inject IPreferenceManager pm; + @Inject AapsSchedulers aapsSchedulers; private final DeActivation DEACTIVATION; @@ -37,7 +37,7 @@ public class DeactivateTask extends TaskBase { .concatMapSingle(v -> DEACTIVATION.start() .doOnSuccess(this::checkResponse) - .observeOn(Schedulers.io()) + .observeOn(aapsSchedulers.getIo()) .doOnSuccess(response -> onDeactivated())) .map(response -> DeactivationStatus.of(response.isSuccess(), forced)) .firstOrError() diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/FetchAlarmTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/FetchAlarmTask.java index 84276d013e..ba6f1aa217 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/FetchAlarmTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/FetchAlarmTask.java @@ -11,7 +11,7 @@ import javax.inject.Inject; import javax.inject.Singleton; import info.nightscout.androidaps.plugins.pump.eopatch.core.response.AeCodeResponse; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; @Singleton public class FetchAlarmTask extends TaskBase { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/GetPatchInfoTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/GetPatchInfoTask.java index d297086148..15ee26f1c1 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/GetPatchInfoTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/GetPatchInfoTask.java @@ -21,8 +21,8 @@ import java.util.Arrays; import javax.inject.Inject; import javax.inject.Singleton; -import io.reactivex.Single; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.schedulers.Schedulers; @Singleton public class GetPatchInfoTask extends TaskBase { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/InfoReminderTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/InfoReminderTask.java index 367016ffb1..15dfe2dbff 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/InfoReminderTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/InfoReminderTask.java @@ -10,7 +10,7 @@ import java.util.concurrent.TimeUnit; import javax.inject.Inject; import javax.inject.Singleton; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; @Singleton public class InfoReminderTask extends TaskBase { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/InternalSuspendedTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/InternalSuspendedTask.java index facd2c38c8..6ef7bd5b8b 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/InternalSuspendedTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/InternalSuspendedTask.java @@ -18,9 +18,9 @@ import info.nightscout.androidaps.plugins.pump.eopatch.core.response.PatchIntern import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.queue.commands.Command; -import io.reactivex.Observable; -import io.reactivex.Single; -import io.reactivex.subjects.BehaviorSubject; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.subjects.BehaviorSubject; @Singleton public class InternalSuspendedTask extends BolusTask { @@ -64,7 +64,7 @@ public class InternalSuspendedTask extends BolusTask { if (commandQueue.isRunning(Command.CommandType.BOLUS)) { uel.log(UserEntryMapper.Action.CANCEL_BOLUS, UserEntryMapper.Sources.EOPatch2); - commandQueue.cancelAllBoluses(); + commandQueue.cancelAllBoluses(null); SystemClock.sleep(650); } bolusCheckSubject.onNext(true); diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/NeedleSensingTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/NeedleSensingTask.java index c39f8d740b..d9a1a7451a 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/NeedleSensingTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/NeedleSensingTask.java @@ -9,7 +9,7 @@ import info.nightscout.androidaps.plugins.pump.eopatch.core.api.StartNeedleCheck import info.nightscout.androidaps.plugins.pump.eopatch.core.api.UpdateConnection; import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchState; import info.nightscout.shared.logging.LTag; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; @Singleton public class NeedleSensingTask extends TaskBase { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/PauseBasalTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/PauseBasalTask.java index 9b0dca6015..bdbd28b964 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/PauseBasalTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/PauseBasalTask.java @@ -23,9 +23,9 @@ import info.nightscout.androidaps.plugins.pump.eopatch.core.api.BasalPause; import info.nightscout.androidaps.plugins.pump.eopatch.core.response.PatchBooleanResponse; import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.queue.commands.Command; -import io.reactivex.Observable; -import io.reactivex.Single; -import io.reactivex.subjects.BehaviorSubject; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.subjects.BehaviorSubject; @Singleton public class PauseBasalTask extends BolusTask { @@ -71,7 +71,7 @@ public class PauseBasalTask extends BolusTask { if (commandQueue.isRunning(Command.CommandType.BOLUS)) { uel.log(UserEntryMapper.Action.CANCEL_BOLUS, UserEntryMapper.Sources.EOPatch2); - commandQueue.cancelAllBoluses(); + commandQueue.cancelAllBoluses(null); SystemClock.sleep(650); } bolusCheckSubject.onNext(true); diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/PrimingTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/PrimingTask.java index ed65a8430e..f9e0014856 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/PrimingTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/PrimingTask.java @@ -10,7 +10,7 @@ import info.nightscout.shared.logging.LTag; import info.nightscout.androidaps.plugins.pump.eopatch.core.api.StartPriming; import info.nightscout.androidaps.plugins.pump.eopatch.core.api.UpdateConnection; import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchState; -import io.reactivex.Observable; +import io.reactivex.rxjava3.core.Observable; @Singleton public class PrimingTask extends TaskBase { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/ReadBolusFinishTimeTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/ReadBolusFinishTimeTask.java index 971d8cd0be..3e73ecd354 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/ReadBolusFinishTimeTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/ReadBolusFinishTimeTask.java @@ -11,7 +11,7 @@ import info.nightscout.androidaps.plugins.pump.eopatch.core.response.BolusFinish import info.nightscout.androidaps.plugins.pump.eopatch.core.code.BolusType; import info.nightscout.androidaps.plugins.pump.eopatch.vo.BolusCurrent; import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchState; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; @Singleton public class ReadBolusFinishTimeTask extends BolusTask { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/ReadTempBasalFinishTimeTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/ReadTempBasalFinishTimeTask.java index 3b858a3e0b..21fa18feb3 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/ReadTempBasalFinishTimeTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/ReadTempBasalFinishTimeTask.java @@ -9,7 +9,7 @@ import javax.inject.Singleton; import info.nightscout.shared.logging.LTag; import info.nightscout.androidaps.plugins.pump.eopatch.core.api.TempBasalFinishTimeGet; import info.nightscout.androidaps.plugins.pump.eopatch.core.response.TempBasalFinishTimeResponse; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; @Singleton public class ReadTempBasalFinishTimeTask extends TaskBase { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/ResumeBasalTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/ResumeBasalTask.java index 2927b4665a..2a1d2f6870 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/ResumeBasalTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/ResumeBasalTask.java @@ -14,7 +14,7 @@ import javax.inject.Singleton; import info.nightscout.androidaps.plugins.pump.eopatch.core.response.PatchBooleanResponse; import info.nightscout.androidaps.plugins.pump.eopatch.vo.NormalBasal; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; @Singleton public class ResumeBasalTask extends TaskBase { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/SelfTestTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/SelfTestTask.java index c39e89b256..05a990fe66 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/SelfTestTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/SelfTestTask.java @@ -14,7 +14,7 @@ import java.util.Arrays; import javax.inject.Inject; import javax.inject.Singleton; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; @Singleton public class SelfTestTask extends TaskBase { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/SetGlobalTimeTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/SetGlobalTimeTask.java index 3fb3da115e..cfbd3701e6 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/SetGlobalTimeTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/SetGlobalTimeTask.java @@ -12,7 +12,7 @@ import java.util.concurrent.TimeUnit; import javax.inject.Inject; import javax.inject.Singleton; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; @Singleton public class SetGlobalTimeTask extends TaskBase { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/SetLowReservoirTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/SetLowReservoirTask.java index fbb5a41ad3..ea719bface 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/SetLowReservoirTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/SetLowReservoirTask.java @@ -10,7 +10,7 @@ import java.util.concurrent.TimeUnit; import javax.inject.Inject; import javax.inject.Singleton; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; @Singleton public class SetLowReservoirTask extends TaskBase { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartBondTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartBondTask.java index d3a6d43066..0924de25af 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartBondTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartBondTask.java @@ -10,7 +10,7 @@ import java.util.concurrent.TimeUnit; import javax.inject.Inject; import javax.inject.Singleton; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; import static info.nightscout.androidaps.plugins.pump.eopatch.core.api.StartBonding.OPTION_NUMERIC; diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartCalcBolusTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartCalcBolusTask.java index de0a3e7920..022b9c9f8b 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartCalcBolusTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartCalcBolusTask.java @@ -9,7 +9,7 @@ import javax.inject.Inject; import javax.inject.Singleton; import info.nightscout.androidaps.plugins.pump.eopatch.core.response.BolusResponse; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; @Singleton public class StartCalcBolusTask extends BolusTask { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartNormalBasalTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartNormalBasalTask.java index 8f170eb4ab..3adb07b441 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartNormalBasalTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartNormalBasalTask.java @@ -1,25 +1,22 @@ package info.nightscout.androidaps.plugins.pump.eopatch.ble.task; -import info.nightscout.shared.logging.LTag; -import info.nightscout.androidaps.plugins.pump.eopatch.ble.PatchStateManager; -import info.nightscout.androidaps.plugins.pump.eopatch.core.api.BasalScheduleSetBig; - -import java.sql.SQLException; - import javax.inject.Inject; import javax.inject.Singleton; +import info.nightscout.androidaps.plugins.pump.eopatch.ble.PatchStateManager; +import info.nightscout.androidaps.plugins.pump.eopatch.core.api.BasalScheduleSetBig; import info.nightscout.androidaps.plugins.pump.eopatch.core.response.BasalScheduleSetResponse; import info.nightscout.androidaps.plugins.pump.eopatch.vo.NormalBasal; -import io.reactivex.Single; -import io.reactivex.schedulers.Schedulers; +import info.nightscout.androidaps.utils.rx.AapsSchedulers; +import info.nightscout.shared.logging.LTag; +import io.reactivex.rxjava3.core.Single; @Singleton public class StartNormalBasalTask extends TaskBase { private final BasalScheduleSetBig BASAL_SCHEDULE_SET_BIG; - @Inject - PatchStateManager patchStateManager; + @Inject PatchStateManager patchStateManager; + @Inject AapsSchedulers aapsSchedulers; @Inject public StartNormalBasalTask() { @@ -34,7 +31,7 @@ public class StartNormalBasalTask extends TaskBase { public Single startJob(NormalBasal basal) { return BASAL_SCHEDULE_SET_BIG.set(basal.getDoseUnitPerSegmentArray()) .doOnSuccess(this::checkResponse) - .observeOn(Schedulers.io()) + .observeOn(aapsSchedulers.getIo()) .doOnSuccess(v -> onStartNormalBasalResponse(v, basal)) .doOnError(e -> aapsLogger.error(LTag.PUMPCOMM, (e.getMessage() != null) ? e.getMessage() : "StartNormalBasalTask error")); } diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartQuickBolusTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartQuickBolusTask.java index 483f510c71..bf662cad68 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartQuickBolusTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartQuickBolusTask.java @@ -11,7 +11,7 @@ import javax.inject.Inject; import javax.inject.Singleton; import info.nightscout.androidaps.plugins.pump.eopatch.core.response.BolusResponse; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; @Singleton public class StartQuickBolusTask extends BolusTask { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartTempBasalTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartTempBasalTask.java index c3476f7df7..e496d5e9f5 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartTempBasalTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StartTempBasalTask.java @@ -1,20 +1,21 @@ package info.nightscout.androidaps.plugins.pump.eopatch.ble.task; -import info.nightscout.androidaps.plugins.pump.eopatch.ble.IPreferenceManager; -import info.nightscout.shared.logging.LTag; -import info.nightscout.androidaps.plugins.pump.eopatch.core.api.TempBasalScheduleStart; - import javax.inject.Inject; import javax.inject.Singleton; +import info.nightscout.androidaps.plugins.pump.eopatch.ble.IPreferenceManager; +import info.nightscout.androidaps.plugins.pump.eopatch.core.api.TempBasalScheduleStart; import info.nightscout.androidaps.plugins.pump.eopatch.core.response.TempBasalScheduleSetResponse; import info.nightscout.androidaps.plugins.pump.eopatch.vo.TempBasal; -import io.reactivex.Single; -import io.reactivex.schedulers.Schedulers; +import info.nightscout.androidaps.utils.rx.AapsSchedulers; +import info.nightscout.shared.logging.LTag; +import io.reactivex.rxjava3.core.Single; @Singleton public class StartTempBasalTask extends TaskBase { @Inject IPreferenceManager pm; + @Inject AapsSchedulers aapsSchedulers; + private final TempBasalScheduleStart TEMP_BASAL_SCHEDULE_START; @Inject @@ -29,7 +30,7 @@ public class StartTempBasalTask extends TaskBase { .concatMapSingle(v -> TEMP_BASAL_SCHEDULE_START.start(tempBasal.getDurationMinutes(), tempBasal.getDoseUnitPerHour(), tempBasal.getPercent())) .doOnNext(this::checkResponse) .firstOrError() - .observeOn(Schedulers.io()) + .observeOn(aapsSchedulers.getIo()) .doOnSuccess(v -> onTempBasalStarted(tempBasal)) .doOnError(e -> aapsLogger.error(LTag.PUMPCOMM, (e.getMessage() != null) ? e.getMessage() : "StartTempBasalTask error")); } diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopBasalTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopBasalTask.java index 77c5544349..20ddbfff38 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopBasalTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopBasalTask.java @@ -19,9 +19,9 @@ import info.nightscout.androidaps.interfaces.CommandQueue; import info.nightscout.shared.logging.AAPSLogger; import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.queue.commands.Command; -import io.reactivex.Observable; -import io.reactivex.Single; -import io.reactivex.subjects.BehaviorSubject; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.subjects.BehaviorSubject; @Singleton public class StopBasalTask extends TaskBase { @@ -59,7 +59,7 @@ public class StopBasalTask extends TaskBase { if (commandQueue.isRunning(Command.CommandType.BOLUS)) { uel.log(UserEntryMapper.Action.CANCEL_BOLUS, UserEntryMapper.Sources.EOPatch2); - commandQueue.cancelAllBoluses(); + commandQueue.cancelAllBoluses(null); SystemClock.sleep(650); } bolusCheckSubject.onNext(true); diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopComboBolusTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopComboBolusTask.java index 0746ae5e18..2e5393a0eb 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopComboBolusTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopComboBolusTask.java @@ -12,7 +12,7 @@ import java.util.concurrent.TimeUnit; import javax.inject.Inject; import javax.inject.Singleton; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; @Singleton public class StopComboBolusTask extends BolusTask { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopExtBolusTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopExtBolusTask.java index b0ecf5265a..079855197e 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopExtBolusTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopExtBolusTask.java @@ -10,7 +10,7 @@ import java.util.concurrent.TimeUnit; import javax.inject.Inject; import javax.inject.Singleton; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; @Singleton public class StopExtBolusTask extends BolusTask { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopNowBolusTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopNowBolusTask.java index b66244b9e6..fdb6b9d0f6 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopNowBolusTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopNowBolusTask.java @@ -1,22 +1,23 @@ package info.nightscout.androidaps.plugins.pump.eopatch.ble.task; -import info.nightscout.shared.logging.LTag; -import info.nightscout.androidaps.plugins.pump.eopatch.core.define.IPatchConstant; -import info.nightscout.androidaps.plugins.pump.eopatch.core.api.BolusStop; -import info.nightscout.androidaps.plugins.pump.eopatch.core.response.BolusStopResponse; - import java.util.concurrent.TimeUnit; import javax.inject.Inject; import javax.inject.Singleton; -import io.reactivex.Single; -import io.reactivex.android.schedulers.AndroidSchedulers; +import info.nightscout.androidaps.plugins.pump.eopatch.core.api.BolusStop; +import info.nightscout.androidaps.plugins.pump.eopatch.core.define.IPatchConstant; +import info.nightscout.androidaps.plugins.pump.eopatch.core.response.BolusStopResponse; +import info.nightscout.androidaps.utils.rx.AapsSchedulers; +import info.nightscout.shared.logging.LTag; +import io.reactivex.rxjava3.core.Single; @Singleton public class StopNowBolusTask extends BolusTask { private final BolusStop BOLUS_STOP; + @Inject AapsSchedulers aapsSchedulers; + @Inject public StopNowBolusTask() { super(TaskFunc.STOP_NOW_BOLUS); @@ -25,7 +26,7 @@ public class StopNowBolusTask extends BolusTask { public Single stop() { return isReady() - .observeOn(AndroidSchedulers.mainThread()) + .observeOn(aapsSchedulers.getMain()) .concatMapSingle(v -> stopJob()).firstOrError() .doOnError(e -> aapsLogger.error(LTag.PUMPCOMM, (e.getMessage() != null) ? e.getMessage() : "StopNowBolusTask error")); } diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopTempBasalTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopTempBasalTask.java index 8ee052c05e..dfed1f1105 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopTempBasalTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/StopTempBasalTask.java @@ -9,7 +9,7 @@ import java.util.concurrent.TimeUnit; import javax.inject.Inject; import javax.inject.Singleton; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; @Singleton public class StopTempBasalTask extends TaskBase { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/SyncBasalHistoryTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/SyncBasalHistoryTask.java index 966b913b6f..20265ec379 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/SyncBasalHistoryTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/SyncBasalHistoryTask.java @@ -12,7 +12,7 @@ import javax.inject.Singleton; import info.nightscout.androidaps.plugins.pump.eopatch.core.response.BasalHistoryIndexResponse; import info.nightscout.androidaps.plugins.pump.eopatch.core.response.BasalHistoryResponse; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; import static info.nightscout.androidaps.plugins.pump.eopatch.core.define.IPatchConstant.BASAL_HISTORY_SIZE_BIG; diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/TaskBase.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/TaskBase.java index b92163309b..8e0e0d89d1 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/TaskBase.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/TaskBase.java @@ -14,8 +14,8 @@ import javax.inject.Inject; import javax.inject.Singleton; import info.nightscout.shared.logging.AAPSLogger; -import io.reactivex.Observable; -import io.reactivex.disposables.Disposable; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.disposables.Disposable; @Singleton public class TaskBase { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/TaskQueue.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/TaskQueue.java index 88895ff90c..c88f4f6a80 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/TaskQueue.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/TaskQueue.java @@ -7,15 +7,16 @@ import java.util.Queue; import javax.inject.Inject; import javax.inject.Singleton; +import info.nightscout.androidaps.utils.rx.AapsSchedulers; import info.nightscout.shared.logging.AAPSLogger; import info.nightscout.shared.logging.LTag; -import io.reactivex.Observable; -import io.reactivex.schedulers.Schedulers; -import io.reactivex.subjects.BehaviorSubject; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.subjects.BehaviorSubject; @Singleton public class TaskQueue { @Inject AAPSLogger aapsLogger; + @Inject AapsSchedulers aapsSchedulers; Queue queue = new LinkedList<>(); @@ -37,7 +38,7 @@ public class TaskQueue { .takeUntil(it -> it.number > v) .filter(it -> it.number == v)) .doOnNext(v -> aapsLogger.debug(LTag.PUMPCOMM, String.format("Task #:%s started func:%s", v.number, v.func.name()))) - .observeOn(Schedulers.io()) + .observeOn(aapsSchedulers.getIo()) .map(it -> it.func) .doFinally(this::done); } diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/UpdateConnectionTask.java b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/UpdateConnectionTask.java index cc80416365..311154a388 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/UpdateConnectionTask.java +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ble/task/UpdateConnectionTask.java @@ -11,7 +11,7 @@ import javax.inject.Singleton; import info.nightscout.androidaps.plugins.pump.eopatch.core.api.UpdateConnection; import info.nightscout.androidaps.plugins.pump.eopatch.core.response.UpdateConnectionResponse; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; @Singleton public class UpdateConnectionTask extends TaskBase { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/extension/ObservableExtension.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/extension/ObservableExtension.kt index b99d74570a..afec882772 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/extension/ObservableExtension.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/extension/ObservableExtension.kt @@ -2,10 +2,10 @@ package info.nightscout.androidaps.plugins.pump.eopatch.extension import info.nightscout.shared.logging.AAPSLogger import info.nightscout.shared.logging.LTag -import io.reactivex.Observable -import io.reactivex.android.schedulers.AndroidSchedulers -import io.reactivex.disposables.Disposable -import io.reactivex.schedulers.Schedulers +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +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()) diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/extension/SingleExtension.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/extension/SingleExtension.kt index cd89deeb51..16d857eb3c 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/extension/SingleExtension.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/extension/SingleExtension.kt @@ -2,10 +2,10 @@ package info.nightscout.androidaps.plugins.pump.eopatch.extension import info.nightscout.shared.logging.AAPSLogger import info.nightscout.shared.logging.LTag -import io.reactivex.Single -import io.reactivex.android.schedulers.AndroidSchedulers -import io.reactivex.disposables.Disposable -import io.reactivex.schedulers.Schedulers +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +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, { aapsLogger.error(LTag.PUMP, "onError", it) diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/AlarmHelperActivity.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/AlarmHelperActivity.kt index 47706da849..f9fb16935b 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/AlarmHelperActivity.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/AlarmHelperActivity.kt @@ -10,14 +10,15 @@ import info.nightscout.androidaps.plugins.pump.eopatch.event.EventDialog import info.nightscout.androidaps.plugins.pump.eopatch.event.EventProgressDialog import info.nightscout.androidaps.plugins.pump.eopatch.ui.dialogs.AlarmDialog import info.nightscout.androidaps.plugins.pump.eopatch.ui.dialogs.ProgressDialogHelper +import info.nightscout.androidaps.utils.rx.AapsSchedulers import info.nightscout.shared.sharedPreferences.SP -import io.reactivex.android.schedulers.AndroidSchedulers -import io.reactivex.disposables.CompositeDisposable +import io.reactivex.rxjava3.disposables.CompositeDisposable import javax.inject.Inject class AlarmHelperActivity : DialogAppCompatActivity() { @Inject lateinit var sp : SP @Inject lateinit var rxBus: RxBus + @Inject lateinit var aapsSchedulers: AapsSchedulers private var disposable: CompositeDisposable = CompositeDisposable() private var mProgressDialog: AlertDialog? = null @@ -42,7 +43,7 @@ class AlarmHelperActivity : DialogAppCompatActivity() { disposable.add(rxBus .toObservable(EventProgressDialog::class.java) - .observeOn(AndroidSchedulers.mainThread()) + .observeOn(aapsSchedulers.main) .subscribe({ if(it.show){ showProgressDialog(it.resId) @@ -54,7 +55,7 @@ class AlarmHelperActivity : DialogAppCompatActivity() { disposable.add(rxBus .toObservable(EventDialog::class.java) - .observeOn(AndroidSchedulers.mainThread()) + .observeOn(aapsSchedulers.main) .subscribe({ if(it.show) it.dialog.show(supportFragmentManager, "") }, { }) diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EoBaseActivity.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EoBaseActivity.kt index b3dafab128..75598cf32f 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EoBaseActivity.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EoBaseActivity.kt @@ -13,10 +13,8 @@ import info.nightscout.androidaps.activities.NoSplashAppCompatActivity import info.nightscout.androidaps.core.R import info.nightscout.androidaps.plugins.pump.eopatch.dagger.EopatchPluginQualifier import info.nightscout.androidaps.utils.rx.AapsSchedulers -import io.reactivex.disposables.CompositeDisposable -import io.reactivex.disposables.Disposable +import io.reactivex.rxjava3.disposables.CompositeDisposable import javax.inject.Inject -import io.reactivex.rxkotlin.addTo abstract class EoBaseActivity : NoSplashAppCompatActivity(), EoBaseNavigator { @Inject @@ -66,6 +64,4 @@ abstract class EoBaseActivity : NoSplashAppCompatActivity() finish() } } - - fun Disposable.addTo() = addTo(compositeDisposable) } \ No newline at end of file diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EoBaseFragment.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EoBaseFragment.kt index bba0632a3e..9161a94770 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EoBaseFragment.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EoBaseFragment.kt @@ -12,10 +12,8 @@ import androidx.databinding.ViewDataBinding import androidx.lifecycle.ViewModelProvider import dagger.android.support.DaggerFragment import info.nightscout.androidaps.plugins.pump.eopatch.dagger.EopatchPluginQualifier -import io.reactivex.disposables.CompositeDisposable -import io.reactivex.disposables.Disposable +import io.reactivex.rxjava3.disposables.CompositeDisposable import javax.inject.Inject -import io.reactivex.rxkotlin.addTo abstract class EoBaseFragment : DaggerFragment(), EoBaseNavigator { @Inject @@ -73,7 +71,4 @@ abstract class EoBaseFragment : DaggerFragment(), EoBaseNav override fun finish(finishAffinity: Boolean) { baseActivity?.finish(finishAffinity) } - - fun Disposable.addTo() = addTo(compositeDisposable) - } \ No newline at end of file diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EopatchOverviewFragment.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EopatchOverviewFragment.kt index eb4707c8d8..cc4a4f7017 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EopatchOverviewFragment.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/EopatchOverviewFragment.kt @@ -20,7 +20,7 @@ import info.nightscout.androidaps.plugins.pump.eopatch.extension.takeOne import info.nightscout.androidaps.plugins.pump.eopatch.ui.viewmodel.EopatchOverviewViewModel import info.nightscout.androidaps.utils.rx.AapsSchedulers import info.nightscout.shared.logging.AAPSLogger -import io.reactivex.disposables.CompositeDisposable +import io.reactivex.rxjava3.disposables.CompositeDisposable import javax.inject.Inject class EopatchOverviewFragment: EoBaseFragment() { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/dialogs/AlarmDialog.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/dialogs/AlarmDialog.kt index 23e431fd5e..19e08c53c3 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/dialogs/AlarmDialog.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/dialogs/AlarmDialog.kt @@ -4,13 +4,16 @@ import android.os.Build import android.os.Bundle import android.os.Handler import android.os.HandlerThread -import android.view.* +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.view.Window +import android.view.WindowManager import dagger.android.support.DaggerDialogFragment import info.nightscout.androidaps.core.R -import info.nightscout.shared.logging.AAPSLogger import info.nightscout.androidaps.plugins.bus.RxBus -import info.nightscout.androidaps.plugins.pump.eopatch.alarm.AlarmProcess import info.nightscout.androidaps.plugins.pump.eopatch.alarm.AlarmCode +import info.nightscout.androidaps.plugins.pump.eopatch.alarm.AlarmProcess import info.nightscout.androidaps.plugins.pump.eopatch.alarm.IAlarmProcess import info.nightscout.androidaps.plugins.pump.eopatch.bindingadapters.setOnSafeClickListener import info.nightscout.androidaps.plugins.pump.eopatch.ble.IPatchManager @@ -19,8 +22,8 @@ import info.nightscout.androidaps.plugins.pump.eopatch.ui.AlarmHelperActivity import info.nightscout.androidaps.services.AlarmSoundServiceHelper import info.nightscout.androidaps.utils.T import info.nightscout.androidaps.utils.rx.AapsSchedulers -import io.reactivex.disposables.Disposable -import io.reactivex.schedulers.Schedulers +import info.nightscout.shared.logging.AAPSLogger +import io.reactivex.rxjava3.disposables.Disposable import javax.inject.Inject class AlarmDialog : DaggerDialogFragment() { @@ -79,7 +82,7 @@ class AlarmDialog : DaggerDialogFragment() { aapsLogger.debug("USER ENTRY: Alarm dialog ok button pressed") alarmCode?.let { ac -> mAlarmProcess.doAction(requireContext(), ac) - .subscribeOn(Schedulers.io()) + .subscribeOn(aapsSchedulers.io) .subscribe ({ ret -> aapsLogger.debug("Alarm processing result :${ret}") if (ret == IAlarmProcess.ALARM_HANDLED) { @@ -92,25 +95,25 @@ class AlarmDialog : DaggerDialogFragment() { isHolding = true }else if (ret == IAlarmProcess.ALARM_UNHANDLED) { if(!isMute){ - startAlarm() + startAlarm("ALARM_UNHANDLED") } } }, { t -> aapsLogger.error("${t.printStackTrace()}") }) } - stopAlarm() + stopAlarm("OK clicked") } binding.mute.setOnSafeClickListener { aapsLogger.debug("USER ENTRY: Error dialog mute button pressed") isMute = true - stopAlarm() + stopAlarm("Mute clicked") } binding.mute5min.setOnSafeClickListener { aapsLogger.debug("USER ENTRY: Error dialog mute 5 min button pressed") - stopAlarm() + stopAlarm("Mute5m clicked") isMute = true - handler.postDelayed(this::startAlarm, T.mins(5).msecs()) + handler.postDelayed({ startAlarm("post") }, T.mins(5).msecs()) } - startAlarm() + startAlarm("onViewCreated") disposable = patchManager.observePatchLifeCycle() .observeOn(aapsSchedulers.main) @@ -137,7 +140,7 @@ class AlarmDialog : DaggerDialogFragment() { override fun onResume() { super.onResume() if(isHolding && !isMute){ - startAlarm() + startAlarm("onResume") } binding.status.text = status } @@ -155,17 +158,17 @@ class AlarmDialog : DaggerDialogFragment() { helperActivity?.finish() } - private fun startAlarm() { + private fun startAlarm(reason: String) { if (sound != 0) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - context?.let { context -> alarmSoundServiceHelper.startAlarm(context, sound) } + context?.let { context -> alarmSoundServiceHelper.startAlarm(context, sound, reason) } } } } - private fun stopAlarm() { + private fun stopAlarm(reason: String) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - context?.let { context -> alarmSoundServiceHelper.stopService(context) } + context?.let { context -> alarmSoundServiceHelper.stopService(context, reason) } } } } diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/receiver/RxBroadcastReceiver.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/receiver/RxBroadcastReceiver.kt index 680e1c0483..2844866abb 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/receiver/RxBroadcastReceiver.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/receiver/RxBroadcastReceiver.kt @@ -5,9 +5,9 @@ import android.content.Context import android.content.Intent import android.content.IntentFilter import androidx.annotation.CheckResult -import io.reactivex.android.MainThreadDisposable -import io.reactivex.Observable -import io.reactivex.Observer +import io.reactivex.rxjava3.android.MainThreadDisposable +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.Observer class RxBroadcastReceiver private constructor() { internal class BroadcastReceiverObservable : Observable { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/viewmodel/EoBaseViewModel.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/viewmodel/EoBaseViewModel.kt index 223e9ebbe5..9e30541ef3 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/viewmodel/EoBaseViewModel.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/viewmodel/EoBaseViewModel.kt @@ -2,9 +2,8 @@ package info.nightscout.androidaps.plugins.pump.eopatch.ui.viewmodel import androidx.lifecycle.ViewModel import info.nightscout.androidaps.plugins.pump.eopatch.ui.EoBaseNavigator -import io.reactivex.disposables.CompositeDisposable -import io.reactivex.disposables.Disposable -import io.reactivex.rxkotlin.addTo +import io.reactivex.rxjava3.disposables.CompositeDisposable +import io.reactivex.rxjava3.disposables.Disposable import java.lang.ref.WeakReference abstract class EoBaseViewModel : ViewModel() { @@ -27,6 +26,6 @@ abstract class EoBaseViewModel : ViewModel() { fun finish() = navigator?.finish() - fun Disposable.addTo() = addTo(compositeDisposable) + fun Disposable.addTo() = apply { compositeDisposable.add(this) } } \ No newline at end of file diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/viewmodel/EopatchOverviewViewModel.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/viewmodel/EopatchOverviewViewModel.kt index 76529dcb27..895f53e97a 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/viewmodel/EopatchOverviewViewModel.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/viewmodel/EopatchOverviewViewModel.kt @@ -15,10 +15,10 @@ import info.nightscout.androidaps.plugins.pump.eopatch.ui.event.UIEvent import info.nightscout.androidaps.plugins.pump.eopatch.vo.Alarms import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchConfig import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchState -import info.nightscout.androidaps.utils.resources.ResourceHelper +import info.nightscout.androidaps.interfaces.ResourceHelper import info.nightscout.androidaps.utils.rx.AapsSchedulers -import io.reactivex.Observable -import io.reactivex.disposables.Disposable +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.disposables.Disposable import java.util.* import java.util.concurrent.TimeUnit import javax.inject.Inject diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/viewmodel/EopatchViewModel.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/viewmodel/EopatchViewModel.kt index fb70d95f57..08e1e7edf6 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/viewmodel/EopatchViewModel.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/ui/viewmodel/EopatchViewModel.kt @@ -28,15 +28,15 @@ import info.nightscout.androidaps.plugins.pump.eopatch.ui.viewmodel.EopatchViewM import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchConfig import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchLifecycleEvent import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchState -import info.nightscout.androidaps.utils.resources.ResourceHelper +import info.nightscout.androidaps.interfaces.ResourceHelper import info.nightscout.androidaps.utils.rx.AapsSchedulers import info.nightscout.shared.logging.AAPSLogger import info.nightscout.shared.logging.LTag -import io.reactivex.Maybe -import io.reactivex.Observable -import io.reactivex.Single -import io.reactivex.disposables.Disposable -import io.reactivex.subjects.PublishSubject +import io.reactivex.rxjava3.core.Maybe +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.Single +import io.reactivex.rxjava3.disposables.Disposable +import io.reactivex.rxjava3.subjects.PublishSubject import java.util.concurrent.TimeUnit import java.util.concurrent.TimeoutException import javax.inject.Inject diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/Alarms.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/Alarms.kt index 46bea819b8..58facc5ef2 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/Alarms.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/Alarms.kt @@ -4,8 +4,8 @@ import info.nightscout.androidaps.plugins.pump.eopatch.GsonHelper import info.nightscout.androidaps.plugins.pump.eopatch.alarm.AlarmCode import info.nightscout.androidaps.plugins.pump.eopatch.code.SettingKeys import info.nightscout.shared.sharedPreferences.SP -import io.reactivex.Observable -import io.reactivex.subjects.BehaviorSubject +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.subjects.BehaviorSubject import java.util.* class Alarms: IPreference { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/BolusCurrent.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/BolusCurrent.kt index 905673835a..b094b163a0 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/BolusCurrent.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/BolusCurrent.kt @@ -6,8 +6,8 @@ import info.nightscout.androidaps.plugins.pump.eopatch.core.code.BolusType import info.nightscout.androidaps.plugins.pump.eopatch.core.util.FloatAdjusters import info.nightscout.androidaps.plugins.pump.eopatch.code.SettingKeys import info.nightscout.shared.sharedPreferences.SP -import io.reactivex.Observable -import io.reactivex.subjects.BehaviorSubject +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.subjects.BehaviorSubject /** * 볼루스 주입 형태 2가지 모드 diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/IPreference.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/IPreference.kt index e92fc7e5c6..5d06f2ee3e 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/IPreference.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/IPreference.kt @@ -1,7 +1,7 @@ package info.nightscout.androidaps.plugins.pump.eopatch.vo import info.nightscout.shared.sharedPreferences.SP -import io.reactivex.Observable +import io.reactivex.rxjava3.core.Observable interface IPreference{ fun flush(sp: SP) diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/NormalBasalManager.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/NormalBasalManager.kt index 6f52a70436..dbd198cf4d 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/NormalBasalManager.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/NormalBasalManager.kt @@ -6,8 +6,8 @@ import info.nightscout.androidaps.plugins.pump.eopatch.GsonHelper import info.nightscout.androidaps.plugins.pump.eopatch.code.SettingKeys import info.nightscout.androidaps.plugins.pump.eopatch.code.BasalStatus import info.nightscout.shared.sharedPreferences.SP -import io.reactivex.Observable -import io.reactivex.subjects.BehaviorSubject +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.subjects.BehaviorSubject import java.util.concurrent.TimeUnit class NormalBasalManager : IPreference { diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/PatchConfig.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/PatchConfig.kt index 27efffe120..caa522392e 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/PatchConfig.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/PatchConfig.kt @@ -9,8 +9,8 @@ import info.nightscout.androidaps.plugins.pump.eopatch.core.define.IPatchConstan import info.nightscout.androidaps.plugins.pump.eopatch.code.SettingKeys import info.nightscout.androidaps.plugins.pump.eopatch.code.PatchLifecycle import info.nightscout.shared.sharedPreferences.SP -import io.reactivex.Observable -import io.reactivex.subjects.BehaviorSubject +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.subjects.BehaviorSubject import java.util.concurrent.TimeUnit // @Singleton diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/PatchState.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/PatchState.kt index b1789cdd3c..7986eabe35 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/PatchState.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/PatchState.kt @@ -6,8 +6,8 @@ import info.nightscout.androidaps.plugins.pump.eopatch.core.code.BolusType import info.nightscout.androidaps.plugins.pump.eopatch.core.util.FloatAdjusters import info.nightscout.androidaps.plugins.pump.eopatch.code.SettingKeys import info.nightscout.shared.sharedPreferences.SP -import io.reactivex.Observable -import io.reactivex.subjects.BehaviorSubject +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.subjects.BehaviorSubject import java.io.Serializable import java.text.SimpleDateFormat import java.util.* diff --git a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/TempBasalManager.kt b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/TempBasalManager.kt index 0de79a36f5..5cccec3270 100644 --- a/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/TempBasalManager.kt +++ b/eopatch/src/main/java/info/nightscout/androidaps/plugins/pump/eopatch/vo/TempBasalManager.kt @@ -6,8 +6,8 @@ import info.nightscout.androidaps.plugins.pump.eopatch.GsonHelper import info.nightscout.androidaps.plugins.pump.eopatch.code.SettingKeys import info.nightscout.androidaps.plugins.pump.eopatch.code.UnitOrPercent import info.nightscout.shared.sharedPreferences.SP -import io.reactivex.Observable -import io.reactivex.subjects.BehaviorSubject +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.subjects.BehaviorSubject class TempBasalManager : IPreference{ @Transient diff --git a/eopatch/src/test/java/info/nightscout/androidaps/plugins/pump/eopatch/ExampleUnitTest.kt b/eopatch/src/test/java/info/nightscout/androidaps/plugins/pump/eopatch/ExampleUnitTest.kt deleted file mode 100644 index b47eab6568..0000000000 --- a/eopatch/src/test/java/info/nightscout/androidaps/plugins/pump/eopatch/ExampleUnitTest.kt +++ /dev/null @@ -1,18 +0,0 @@ -package info.nightscout.androidaps.plugins.pump.eopatch - -import org.junit.Test - -import org.junit.Assert.* - -/** - * Example local unit test, which will execute on the development machine (host). - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -class ExampleUnitTest { - - @Test - fun addition_isCorrect() { - assertEquals(4, 2 + 2) - } -} \ No newline at end of file