NSC: optimize devicestatus precessing
This commit is contained in:
parent
57afaafa5b
commit
eb9fa1a25b
3 changed files with 24 additions and 6 deletions
|
@ -14,6 +14,7 @@ import app.aaps.activities.PreferencesActivity
|
||||||
import app.aaps.core.interfaces.notifications.Notification
|
import app.aaps.core.interfaces.notifications.Notification
|
||||||
import app.aaps.core.interfaces.nsclient.NSAlarm
|
import app.aaps.core.interfaces.nsclient.NSAlarm
|
||||||
import app.aaps.core.interfaces.rx.bus.RxBus
|
import app.aaps.core.interfaces.rx.bus.RxBus
|
||||||
|
import app.aaps.core.interfaces.rx.events.EventDismissNotification
|
||||||
import app.aaps.core.interfaces.ui.UiInteraction
|
import app.aaps.core.interfaces.ui.UiInteraction
|
||||||
import app.aaps.core.main.events.EventNewNotification
|
import app.aaps.core.main.events.EventNewNotification
|
||||||
import app.aaps.core.ui.toast.ToastUtils
|
import app.aaps.core.ui.toast.ToastUtils
|
||||||
|
@ -169,6 +170,10 @@ class UiInteractionImpl @Inject constructor(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun dismissNotification(id: Int) {
|
||||||
|
rxBus.send(EventDismissNotification(id))
|
||||||
|
}
|
||||||
|
|
||||||
override fun addNotification(id: Int, text: String, level: Int) {
|
override fun addNotification(id: Int, text: String, level: Int) {
|
||||||
rxBus.send(EventNewNotification(Notification(id, text, level)))
|
rxBus.send(EventNewNotification(Notification(id, text, level)))
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,6 +68,7 @@ interface UiInteraction {
|
||||||
|
|
||||||
fun runCareDialog(fragmentManager: FragmentManager, options: EventType, @StringRes event: Int)
|
fun runCareDialog(fragmentManager: FragmentManager, options: EventType, @StringRes event: Int)
|
||||||
|
|
||||||
|
fun dismissNotification(id: Int)
|
||||||
fun addNotification(id: Int, text: String, level: Int)
|
fun addNotification(id: Int, text: String, level: Int)
|
||||||
fun addNotificationValidFor(id: Int, text: String, level: Int, validMinutes: Int)
|
fun addNotificationValidFor(id: Int, text: String, level: Int, validMinutes: Int)
|
||||||
fun addNotificationWithSound(id: Int, text: String, level: Int, @RawRes soundId: Int?)
|
fun addNotificationWithSound(id: Int, text: String, level: Int, @RawRes soundId: Int?)
|
||||||
|
|
|
@ -2,13 +2,18 @@ package app.aaps.plugins.sync.nsclient.data
|
||||||
|
|
||||||
import app.aaps.annotations.OpenForTesting
|
import app.aaps.annotations.OpenForTesting
|
||||||
import app.aaps.core.interfaces.configuration.Config
|
import app.aaps.core.interfaces.configuration.Config
|
||||||
|
import app.aaps.core.interfaces.notifications.Notification
|
||||||
import app.aaps.core.interfaces.nsclient.ProcessedDeviceStatusData
|
import app.aaps.core.interfaces.nsclient.ProcessedDeviceStatusData
|
||||||
|
import app.aaps.core.interfaces.resources.ResourceHelper
|
||||||
import app.aaps.core.interfaces.sharedPreferences.SP
|
import app.aaps.core.interfaces.sharedPreferences.SP
|
||||||
|
import app.aaps.core.interfaces.ui.UiInteraction
|
||||||
import app.aaps.core.interfaces.utils.DateUtil
|
import app.aaps.core.interfaces.utils.DateUtil
|
||||||
|
import app.aaps.core.interfaces.utils.T
|
||||||
import app.aaps.core.nssdk.interfaces.RunningConfiguration
|
import app.aaps.core.nssdk.interfaces.RunningConfiguration
|
||||||
import app.aaps.core.nssdk.localmodel.devicestatus.NSDeviceStatus
|
import app.aaps.core.nssdk.localmodel.devicestatus.NSDeviceStatus
|
||||||
import app.aaps.core.utils.HtmlHelper
|
import app.aaps.core.utils.HtmlHelper
|
||||||
import app.aaps.core.utils.JsonHelper
|
import app.aaps.core.utils.JsonHelper
|
||||||
|
import app.aaps.plugins.sync.R
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
|
|
||||||
|
@ -72,23 +77,30 @@ class NSDeviceStatusHandler @Inject constructor(
|
||||||
private val config: Config,
|
private val config: Config,
|
||||||
private val dateUtil: DateUtil,
|
private val dateUtil: DateUtil,
|
||||||
private val runningConfiguration: RunningConfiguration,
|
private val runningConfiguration: RunningConfiguration,
|
||||||
private val processedDeviceStatusData: ProcessedDeviceStatusData
|
private val processedDeviceStatusData: ProcessedDeviceStatusData,
|
||||||
|
private val uiInteraction: UiInteraction,
|
||||||
|
private val rh: ResourceHelper
|
||||||
) {
|
) {
|
||||||
|
|
||||||
fun handleNewData(deviceStatuses: Array<NSDeviceStatus>) {
|
fun handleNewData(deviceStatuses: Array<NSDeviceStatus>) {
|
||||||
var configurationDetected = false
|
var configurationDetected = false
|
||||||
for (i in deviceStatuses.size - 1 downTo 0) {
|
for (i in deviceStatuses.size - 1 downTo 0) {
|
||||||
val nsDeviceStatus = deviceStatuses[i]
|
val nsDeviceStatus = deviceStatuses[i]
|
||||||
|
if (config.NSCLIENT) {
|
||||||
updatePumpData(nsDeviceStatus)
|
updatePumpData(nsDeviceStatus)
|
||||||
updateDeviceData(nsDeviceStatus)
|
updateDeviceData(nsDeviceStatus)
|
||||||
updateOpenApsData(nsDeviceStatus)
|
updateOpenApsData(nsDeviceStatus)
|
||||||
updateUploaderData(nsDeviceStatus)
|
updateUploaderData(nsDeviceStatus)
|
||||||
nsDeviceStatus.pump?.let { sp.putBoolean(app.aaps.core.utils.R.string.key_objectives_pump_status_is_available_in_ns, true) } // Objective 0
|
}
|
||||||
if (config.NSCLIENT && !configurationDetected)
|
if (config.NSCLIENT && !configurationDetected)
|
||||||
nsDeviceStatus.configuration?.let {
|
nsDeviceStatus.configuration?.let {
|
||||||
// copy configuration of Insulin and Sensitivity from main AAPS
|
// copy configuration of Insulin and Sensitivity from main AAPS
|
||||||
runningConfiguration.apply(it)
|
runningConfiguration.apply(it)
|
||||||
configurationDetected = true // pick only newest
|
configurationDetected = true // pick only newest
|
||||||
|
|
||||||
|
}
|
||||||
|
if (config.APS) {
|
||||||
|
nsDeviceStatus.pump?.let { sp.putBoolean(app.aaps.core.utils.R.string.key_objectives_pump_status_is_available_in_ns, true) } // Objective 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue