NSClient: better status
This commit is contained in:
parent
bbb49ccdab
commit
81180344a0
5 changed files with 122 additions and 142 deletions
|
@ -21,8 +21,7 @@ import info.nightscout.androidaps.interfaces.Config
|
||||||
import info.nightscout.androidaps.interfaces.PluginBase
|
import info.nightscout.androidaps.interfaces.PluginBase
|
||||||
import info.nightscout.androidaps.interfaces.PluginDescription
|
import info.nightscout.androidaps.interfaces.PluginDescription
|
||||||
import info.nightscout.androidaps.interfaces.PluginType
|
import info.nightscout.androidaps.interfaces.PluginType
|
||||||
import info.nightscout.shared.logging.AAPSLogger
|
import info.nightscout.androidaps.interfaces.ResourceHelper
|
||||||
import info.nightscout.shared.logging.LTag
|
|
||||||
import info.nightscout.androidaps.plugins.bus.RxBus
|
import info.nightscout.androidaps.plugins.bus.RxBus
|
||||||
import info.nightscout.androidaps.plugins.general.nsclient.data.AlarmAck
|
import info.nightscout.androidaps.plugins.general.nsclient.data.AlarmAck
|
||||||
import info.nightscout.androidaps.plugins.general.nsclient.data.NSAlarm
|
import info.nightscout.androidaps.plugins.general.nsclient.data.NSAlarm
|
||||||
|
@ -35,11 +34,12 @@ import info.nightscout.androidaps.utils.FabricPrivacy
|
||||||
import info.nightscout.androidaps.utils.HtmlHelper.fromHtml
|
import info.nightscout.androidaps.utils.HtmlHelper.fromHtml
|
||||||
import info.nightscout.androidaps.utils.ToastUtils
|
import info.nightscout.androidaps.utils.ToastUtils
|
||||||
import info.nightscout.androidaps.utils.buildHelper.BuildHelper
|
import info.nightscout.androidaps.utils.buildHelper.BuildHelper
|
||||||
import info.nightscout.androidaps.interfaces.ResourceHelper
|
|
||||||
import info.nightscout.androidaps.utils.rx.AapsSchedulers
|
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 info.nightscout.shared.sharedPreferences.SP
|
||||||
import io.reactivex.rxjava3.disposables.CompositeDisposable
|
import io.reactivex.rxjava3.disposables.CompositeDisposable
|
||||||
import java.util.*
|
import io.reactivex.rxjava3.kotlin.plusAssign
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
|
|
||||||
|
@ -80,62 +80,49 @@ class NSClientPlugin @Inject constructor(
|
||||||
var nsClientService: NSClientService? = null
|
var nsClientService: NSClientService? = null
|
||||||
val isAllowed: Boolean
|
val isAllowed: Boolean
|
||||||
get() = nsClientReceiverDelegate.allowed
|
get() = nsClientReceiverDelegate.allowed
|
||||||
|
val blockingReason: String
|
||||||
|
get() = nsClientReceiverDelegate.blockingReason
|
||||||
|
|
||||||
override fun onStart() {
|
override fun onStart() {
|
||||||
paused = sp.getBoolean(R.string.key_nsclientinternal_paused, false)
|
paused = sp.getBoolean(R.string.key_nsclientinternal_paused, false)
|
||||||
autoscroll = sp.getBoolean(R.string.key_nsclientinternal_autoscroll, true)
|
autoscroll = sp.getBoolean(R.string.key_nsclientinternal_autoscroll, true)
|
||||||
val intent = Intent(context, NSClientService::class.java)
|
context.bindService(Intent(context, NSClientService::class.java), mConnection, Context.BIND_AUTO_CREATE)
|
||||||
context.bindService(intent, mConnection, Context.BIND_AUTO_CREATE)
|
|
||||||
super.onStart()
|
super.onStart()
|
||||||
nsClientReceiverDelegate.grabReceiversState()
|
nsClientReceiverDelegate.grabReceiversState()
|
||||||
disposable.add(
|
disposable += rxBus
|
||||||
rxBus
|
.toObservable(EventNSClientStatus::class.java)
|
||||||
.toObservable(EventNSClientStatus::class.java)
|
.observeOn(aapsSchedulers.io)
|
||||||
.observeOn(aapsSchedulers.io)
|
.subscribe({ event: EventNSClientStatus ->
|
||||||
.subscribe({ event: EventNSClientStatus ->
|
status = event.getStatus(rh)
|
||||||
status = event.getStatus(rh)
|
rxBus.send(EventNSClientUpdateGUI())
|
||||||
rxBus.send(EventNSClientUpdateGUI())
|
}, fabricPrivacy::logException)
|
||||||
}, fabricPrivacy::logException)
|
disposable += rxBus
|
||||||
)
|
.toObservable(EventNetworkChange::class.java)
|
||||||
disposable.add(
|
.observeOn(aapsSchedulers.io)
|
||||||
rxBus
|
.subscribe({ ev -> nsClientReceiverDelegate.onStatusEvent(ev) }, fabricPrivacy::logException)
|
||||||
.toObservable(EventNetworkChange::class.java)
|
disposable += rxBus
|
||||||
.observeOn(aapsSchedulers.io)
|
.toObservable(EventPreferenceChange::class.java)
|
||||||
.subscribe({ ev -> nsClientReceiverDelegate.onStatusEvent(ev) }, fabricPrivacy::logException)
|
.observeOn(aapsSchedulers.io)
|
||||||
)
|
.subscribe({ ev -> nsClientReceiverDelegate.onStatusEvent(ev) }, fabricPrivacy::logException)
|
||||||
disposable.add(
|
disposable += rxBus
|
||||||
rxBus
|
.toObservable(EventAppExit::class.java)
|
||||||
.toObservable(EventPreferenceChange::class.java)
|
.observeOn(aapsSchedulers.io)
|
||||||
.observeOn(aapsSchedulers.io)
|
.subscribe({ if (nsClientService != null) context.unbindService(mConnection) }, fabricPrivacy::logException)
|
||||||
.subscribe({ ev -> nsClientReceiverDelegate.onStatusEvent(ev) }, fabricPrivacy::logException)
|
disposable += rxBus
|
||||||
)
|
.toObservable(EventNSClientNewLog::class.java)
|
||||||
disposable.add(
|
.observeOn(aapsSchedulers.io)
|
||||||
rxBus
|
.subscribe({ event: EventNSClientNewLog ->
|
||||||
.toObservable(EventAppExit::class.java)
|
addToLog(event)
|
||||||
.observeOn(aapsSchedulers.io)
|
aapsLogger.debug(LTag.NSCLIENT, event.action + " " + event.logText)
|
||||||
.subscribe({ if (nsClientService != null) context.unbindService(mConnection) }, fabricPrivacy::logException)
|
}, fabricPrivacy::logException)
|
||||||
)
|
disposable += rxBus
|
||||||
disposable.add(
|
.toObservable(EventChargingState::class.java)
|
||||||
rxBus
|
.observeOn(aapsSchedulers.io)
|
||||||
.toObservable(EventNSClientNewLog::class.java)
|
.subscribe({ ev -> nsClientReceiverDelegate.onStatusEvent(ev) }, fabricPrivacy::logException)
|
||||||
.observeOn(aapsSchedulers.io)
|
disposable += rxBus
|
||||||
.subscribe({ event: EventNSClientNewLog ->
|
.toObservable(EventNSClientResend::class.java)
|
||||||
addToLog(event)
|
.observeOn(aapsSchedulers.io)
|
||||||
aapsLogger.debug(LTag.NSCLIENT, event.action + " " + event.logText)
|
.subscribe({ event -> resend(event.reason) }, fabricPrivacy::logException)
|
||||||
}, fabricPrivacy::logException)
|
|
||||||
)
|
|
||||||
disposable.add(
|
|
||||||
rxBus
|
|
||||||
.toObservable(EventChargingState::class.java)
|
|
||||||
.observeOn(aapsSchedulers.io)
|
|
||||||
.subscribe({ ev -> nsClientReceiverDelegate.onStatusEvent(ev) }, fabricPrivacy::logException)
|
|
||||||
)
|
|
||||||
disposable.add(
|
|
||||||
rxBus
|
|
||||||
.toObservable(EventNSClientResend::class.java)
|
|
||||||
.observeOn(aapsSchedulers.io)
|
|
||||||
.subscribe({ event -> resend(event.reason) }, fabricPrivacy::logException)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onStop() {
|
override fun onStop() {
|
||||||
|
|
|
@ -22,6 +22,7 @@ class NsClientReceiverDelegate @Inject constructor(
|
||||||
private var allowedChargingState = true
|
private var allowedChargingState = true
|
||||||
private var allowedNetworkState = true
|
private var allowedNetworkState = true
|
||||||
var allowed = true
|
var allowed = true
|
||||||
|
var blockingReason = ""
|
||||||
|
|
||||||
fun grabReceiversState() {
|
fun grabReceiversState() {
|
||||||
receiverStatusStore.updateNetworkStatus()
|
receiverStatusStore.updateNetworkStatus()
|
||||||
|
@ -48,6 +49,7 @@ class NsClientReceiverDelegate @Inject constructor(
|
||||||
val newChargingState = calculateStatus(ev)
|
val newChargingState = calculateStatus(ev)
|
||||||
if (newChargingState != allowedChargingState) {
|
if (newChargingState != allowedChargingState) {
|
||||||
allowedChargingState = newChargingState
|
allowedChargingState = newChargingState
|
||||||
|
blockingReason = rh.gs(R.string.blocked_by_charging)
|
||||||
processStateChange()
|
processStateChange()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,6 +58,7 @@ class NsClientReceiverDelegate @Inject constructor(
|
||||||
val newNetworkState = calculateStatus(ev)
|
val newNetworkState = calculateStatus(ev)
|
||||||
if (newNetworkState != allowedNetworkState) {
|
if (newNetworkState != allowedNetworkState) {
|
||||||
allowedNetworkState = newNetworkState
|
allowedNetworkState = newNetworkState
|
||||||
|
blockingReason = rh.gs(R.string.blocked_by_connectivity)
|
||||||
processStateChange()
|
processStateChange()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,9 +16,14 @@ import info.nightscout.androidaps.events.EventConfigBuilderChange
|
||||||
import info.nightscout.androidaps.events.EventPreferenceChange
|
import info.nightscout.androidaps.events.EventPreferenceChange
|
||||||
import info.nightscout.androidaps.interfaces.Config
|
import info.nightscout.androidaps.interfaces.Config
|
||||||
import info.nightscout.androidaps.interfaces.DataSyncSelector
|
import info.nightscout.androidaps.interfaces.DataSyncSelector
|
||||||
|
import info.nightscout.androidaps.interfaces.ResourceHelper
|
||||||
import info.nightscout.androidaps.plugins.bus.RxBus
|
import info.nightscout.androidaps.plugins.bus.RxBus
|
||||||
import info.nightscout.androidaps.plugins.general.food.FoodPlugin.FoodWorker
|
import info.nightscout.androidaps.plugins.general.food.FoodPlugin.FoodWorker
|
||||||
import info.nightscout.androidaps.plugins.general.nsclient.*
|
import info.nightscout.androidaps.plugins.general.nsclient.NSClientAddAckWorker
|
||||||
|
import info.nightscout.androidaps.plugins.general.nsclient.NSClientAddUpdateWorker
|
||||||
|
import info.nightscout.androidaps.plugins.general.nsclient.NSClientMbgWorker
|
||||||
|
import info.nightscout.androidaps.plugins.general.nsclient.NSClientPlugin
|
||||||
|
import info.nightscout.androidaps.plugins.general.nsclient.NSClientUpdateRemoveAckWorker
|
||||||
import info.nightscout.androidaps.plugins.general.nsclient.acks.NSAddAck
|
import info.nightscout.androidaps.plugins.general.nsclient.acks.NSAddAck
|
||||||
import info.nightscout.androidaps.plugins.general.nsclient.acks.NSAuthAck
|
import info.nightscout.androidaps.plugins.general.nsclient.acks.NSAuthAck
|
||||||
import info.nightscout.androidaps.plugins.general.nsclient.acks.NSUpdateAck
|
import info.nightscout.androidaps.plugins.general.nsclient.acks.NSUpdateAck
|
||||||
|
@ -44,12 +49,12 @@ import info.nightscout.androidaps.utils.JsonHelper.safeGetStringAllowNull
|
||||||
import info.nightscout.androidaps.utils.T.Companion.mins
|
import info.nightscout.androidaps.utils.T.Companion.mins
|
||||||
import info.nightscout.androidaps.utils.XDripBroadcast
|
import info.nightscout.androidaps.utils.XDripBroadcast
|
||||||
import info.nightscout.androidaps.utils.buildHelper.BuildHelper
|
import info.nightscout.androidaps.utils.buildHelper.BuildHelper
|
||||||
import info.nightscout.androidaps.interfaces.ResourceHelper
|
|
||||||
import info.nightscout.androidaps.utils.rx.AapsSchedulers
|
import info.nightscout.androidaps.utils.rx.AapsSchedulers
|
||||||
import info.nightscout.shared.logging.AAPSLogger
|
import info.nightscout.shared.logging.AAPSLogger
|
||||||
import info.nightscout.shared.logging.LTag
|
import info.nightscout.shared.logging.LTag
|
||||||
import info.nightscout.shared.sharedPreferences.SP
|
import info.nightscout.shared.sharedPreferences.SP
|
||||||
import io.reactivex.rxjava3.disposables.CompositeDisposable
|
import io.reactivex.rxjava3.disposables.CompositeDisposable
|
||||||
|
import io.reactivex.rxjava3.kotlin.plusAssign
|
||||||
import io.socket.client.IO
|
import io.socket.client.IO
|
||||||
import io.socket.client.Socket
|
import io.socket.client.Socket
|
||||||
import io.socket.emitter.Emitter
|
import io.socket.emitter.Emitter
|
||||||
|
@ -114,70 +119,56 @@ class NSClientService : DaggerService() {
|
||||||
wakeLock = (getSystemService(Context.POWER_SERVICE) as PowerManager).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "AndroidAPS:NSClientService")
|
wakeLock = (getSystemService(Context.POWER_SERVICE) as PowerManager).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "AndroidAPS:NSClientService")
|
||||||
wakeLock?.acquire()
|
wakeLock?.acquire()
|
||||||
initialize()
|
initialize()
|
||||||
disposable.add(
|
disposable += rxBus
|
||||||
rxBus
|
.toObservable(EventConfigBuilderChange::class.java)
|
||||||
.toObservable(EventConfigBuilderChange::class.java)
|
.observeOn(aapsSchedulers.io)
|
||||||
.observeOn(aapsSchedulers.io)
|
.subscribe({
|
||||||
.subscribe({
|
if (nsEnabled != nsClientPlugin.isEnabled()) {
|
||||||
if (nsEnabled != nsClientPlugin.isEnabled()) {
|
|
||||||
latestDateInReceivedData = 0
|
|
||||||
destroy()
|
|
||||||
initialize()
|
|
||||||
}
|
|
||||||
}, fabricPrivacy::logException)
|
|
||||||
)
|
|
||||||
disposable.add(
|
|
||||||
rxBus
|
|
||||||
.toObservable(EventPreferenceChange::class.java)
|
|
||||||
.observeOn(aapsSchedulers.io)
|
|
||||||
.subscribe({ event: EventPreferenceChange ->
|
|
||||||
if (event.isChanged(rh, R.string.key_nsclientinternal_url) ||
|
|
||||||
event.isChanged(rh, R.string.key_nsclientinternal_api_secret) ||
|
|
||||||
event.isChanged(rh, R.string.key_nsclientinternal_paused)
|
|
||||||
) {
|
|
||||||
latestDateInReceivedData = 0
|
|
||||||
destroy()
|
|
||||||
initialize()
|
|
||||||
}
|
|
||||||
}, fabricPrivacy::logException)
|
|
||||||
)
|
|
||||||
disposable.add(
|
|
||||||
rxBus
|
|
||||||
.toObservable(EventAppExit::class.java)
|
|
||||||
.observeOn(aapsSchedulers.io)
|
|
||||||
.subscribe({
|
|
||||||
aapsLogger.debug(LTag.NSCLIENT, "EventAppExit received")
|
|
||||||
destroy()
|
|
||||||
stopSelf()
|
|
||||||
}, fabricPrivacy::logException)
|
|
||||||
)
|
|
||||||
disposable.add(
|
|
||||||
rxBus
|
|
||||||
.toObservable(EventNSClientRestart::class.java)
|
|
||||||
.observeOn(aapsSchedulers.io)
|
|
||||||
.subscribe({
|
|
||||||
latestDateInReceivedData = 0
|
latestDateInReceivedData = 0
|
||||||
restart()
|
destroy()
|
||||||
}, fabricPrivacy::logException)
|
initialize()
|
||||||
)
|
}
|
||||||
disposable.add(
|
}, fabricPrivacy::logException)
|
||||||
rxBus
|
disposable += rxBus
|
||||||
.toObservable(NSAuthAck::class.java)
|
.toObservable(EventPreferenceChange::class.java)
|
||||||
.observeOn(aapsSchedulers.io)
|
.observeOn(aapsSchedulers.io)
|
||||||
.subscribe({ ack -> processAuthAck(ack) }, fabricPrivacy::logException)
|
.subscribe({ event: EventPreferenceChange ->
|
||||||
)
|
if (event.isChanged(rh, R.string.key_nsclientinternal_url) ||
|
||||||
disposable.add(
|
event.isChanged(rh, R.string.key_nsclientinternal_api_secret) ||
|
||||||
rxBus
|
event.isChanged(rh, R.string.key_nsclientinternal_paused)
|
||||||
.toObservable(NSUpdateAck::class.java)
|
) {
|
||||||
.observeOn(aapsSchedulers.io)
|
latestDateInReceivedData = 0
|
||||||
.subscribe({ ack -> processUpdateAck(ack) }, fabricPrivacy::logException)
|
destroy()
|
||||||
)
|
initialize()
|
||||||
disposable.add(
|
}
|
||||||
rxBus
|
}, fabricPrivacy::logException)
|
||||||
.toObservable(NSAddAck::class.java)
|
disposable += rxBus
|
||||||
.observeOn(aapsSchedulers.io)
|
.toObservable(EventAppExit::class.java)
|
||||||
.subscribe({ ack -> processAddAck(ack) }, fabricPrivacy::logException)
|
.observeOn(aapsSchedulers.io)
|
||||||
)
|
.subscribe({
|
||||||
|
aapsLogger.debug(LTag.NSCLIENT, "EventAppExit received")
|
||||||
|
destroy()
|
||||||
|
stopSelf()
|
||||||
|
}, fabricPrivacy::logException)
|
||||||
|
disposable += rxBus
|
||||||
|
.toObservable(EventNSClientRestart::class.java)
|
||||||
|
.observeOn(aapsSchedulers.io)
|
||||||
|
.subscribe({
|
||||||
|
latestDateInReceivedData = 0
|
||||||
|
restart()
|
||||||
|
}, fabricPrivacy::logException)
|
||||||
|
disposable += rxBus
|
||||||
|
.toObservable(NSAuthAck::class.java)
|
||||||
|
.observeOn(aapsSchedulers.io)
|
||||||
|
.subscribe({ ack -> processAuthAck(ack) }, fabricPrivacy::logException)
|
||||||
|
disposable += rxBus
|
||||||
|
.toObservable(NSUpdateAck::class.java)
|
||||||
|
.observeOn(aapsSchedulers.io)
|
||||||
|
.subscribe({ ack -> processUpdateAck(ack) }, fabricPrivacy::logException)
|
||||||
|
disposable += rxBus
|
||||||
|
.toObservable(NSAddAck::class.java)
|
||||||
|
.observeOn(aapsSchedulers.io)
|
||||||
|
.subscribe({ ack -> processAddAck(ack) }, fabricPrivacy::logException)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
|
@ -234,13 +225,9 @@ class NSClientService : DaggerService() {
|
||||||
get() = this@NSClientService
|
get() = this@NSClientService
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBind(intent: Intent): IBinder {
|
override fun onBind(intent: Intent): IBinder = binder
|
||||||
return binder
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
|
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int = START_STICKY
|
||||||
return START_STICKY
|
|
||||||
}
|
|
||||||
|
|
||||||
fun initialize() {
|
fun initialize() {
|
||||||
dataCounter = 0
|
dataCounter = 0
|
||||||
|
@ -249,8 +236,8 @@ class NSClientService : DaggerService() {
|
||||||
if (nsAPISecret != "") nsApiHashCode = Hashing.sha1().hashString(nsAPISecret, Charsets.UTF_8).toString()
|
if (nsAPISecret != "") nsApiHashCode = Hashing.sha1().hashString(nsAPISecret, Charsets.UTF_8).toString()
|
||||||
rxBus.send(EventNSClientStatus("Initializing"))
|
rxBus.send(EventNSClientStatus("Initializing"))
|
||||||
if (!nsClientPlugin.isAllowed) {
|
if (!nsClientPlugin.isAllowed) {
|
||||||
rxBus.send(EventNSClientNewLog("NSCLIENT", "not allowed"))
|
rxBus.send(EventNSClientNewLog("NSCLIENT", nsClientPlugin.blockingReason))
|
||||||
rxBus.send(EventNSClientStatus("Not allowed"))
|
rxBus.send(EventNSClientStatus(nsClientPlugin.blockingReason))
|
||||||
} else if (nsClientPlugin.paused) {
|
} else if (nsClientPlugin.paused) {
|
||||||
rxBus.send(EventNSClientNewLog("NSCLIENT", "paused"))
|
rxBus.send(EventNSClientNewLog("NSCLIENT", "paused"))
|
||||||
rxBus.send(EventNSClientStatus("Paused"))
|
rxBus.send(EventNSClientStatus("Paused"))
|
||||||
|
|
|
@ -1244,6 +1244,8 @@
|
||||||
<string name="aidex">GlucoRx Aidex</string>
|
<string name="aidex">GlucoRx Aidex</string>
|
||||||
<string name="aidex_short">Aidex</string>
|
<string name="aidex_short">Aidex</string>
|
||||||
<string name="description_source_aidex">Receive BG values from GlucoRx Aidex CGMS.</string>
|
<string name="description_source_aidex">Receive BG values from GlucoRx Aidex CGMS.</string>
|
||||||
|
<string name="blocked_by_charging">Blocked by charging options</string>
|
||||||
|
<string name="blocked_by_connectivity">Blocked by connectivity options</string>
|
||||||
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -20,20 +20,15 @@ class NsClientReceiverDelegateTest : TestBase() {
|
||||||
@Mock lateinit var context: Context
|
@Mock lateinit var context: Context
|
||||||
@Mock lateinit var sp: SP
|
@Mock lateinit var sp: SP
|
||||||
@Mock lateinit var rh: ResourceHelper
|
@Mock lateinit var rh: ResourceHelper
|
||||||
|
|
||||||
lateinit var receiverStatusStore: ReceiverStatusStore
|
|
||||||
val rxBus = RxBus(aapsSchedulers, aapsLogger)
|
val rxBus = RxBus(aapsSchedulers, aapsLogger)
|
||||||
|
|
||||||
|
private lateinit var receiverStatusStore: ReceiverStatusStore
|
||||||
private lateinit var sut: NsClientReceiverDelegate
|
private lateinit var sut: NsClientReceiverDelegate
|
||||||
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun prepare() {
|
fun prepare() {
|
||||||
receiverStatusStore = ReceiverStatusStore(context, rxBus)
|
receiverStatusStore = ReceiverStatusStore(context, rxBus)
|
||||||
// `when`(sp.getLong(anyInt(), anyLong())).thenReturn(0L)
|
|
||||||
// `when`(sp.getBoolean(anyInt(), anyBoolean())).thenReturn(false)
|
|
||||||
// `when`(sp.getInt(anyInt(), anyInt())).thenReturn(0)
|
|
||||||
// `when`(sp.getString(anyInt(), anyString())).thenReturn("")
|
|
||||||
|
|
||||||
sut = NsClientReceiverDelegate(rxBus, rh, sp, receiverStatusStore)
|
sut = NsClientReceiverDelegate(rxBus, rh, sp, receiverStatusStore)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,37 +47,43 @@ class NsClientReceiverDelegateTest : TestBase() {
|
||||||
@Test
|
@Test
|
||||||
fun testCalculateStatusNetworkState() {
|
fun testCalculateStatusNetworkState() {
|
||||||
`when`(sp.getBoolean(R.string.key_ns_cellular, true)).thenReturn(true)
|
`when`(sp.getBoolean(R.string.key_ns_cellular, true)).thenReturn(true)
|
||||||
|
`when`(sp.getBoolean(R.string.key_ns_allow_roaming, true)).thenReturn(true)
|
||||||
`when`(sp.getBoolean(R.string.key_ns_wifi, true)).thenReturn(true)
|
`when`(sp.getBoolean(R.string.key_ns_wifi, true)).thenReturn(true)
|
||||||
`when`(sp.getString(R.string.key_ns_wifi_ssids, "")).thenReturn("")
|
`when`(sp.getString(R.string.key_ns_wifi_ssids, "")).thenReturn("")
|
||||||
|
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(mobileConnected = true, wifiConnected = false, roaming = true)))
|
||||||
|
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(mobileConnected = true, wifiConnected = false, roaming = false)))
|
||||||
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(ssid = "<unknown ssid>", mobileConnected = true, wifiConnected = true)))
|
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(ssid = "<unknown ssid>", mobileConnected = true, wifiConnected = true)))
|
||||||
|
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(ssid = "<unknown ssid>", mobileConnected = false, wifiConnected = true)))
|
||||||
|
Assert.assertFalse(sut.calculateStatus(EventNetworkChange()))
|
||||||
|
|
||||||
`when`(sp.getString(R.string.key_ns_wifi_ssids, "")).thenReturn("test")
|
`when`(sp.getString(R.string.key_ns_wifi_ssids, "")).thenReturn("test")
|
||||||
|
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(mobileConnected = true, wifiConnected = false, roaming = true)))
|
||||||
|
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(mobileConnected = true, wifiConnected = false, roaming = false)))
|
||||||
|
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(ssid = "<unknown ssid>", mobileConnected = true, wifiConnected = true)))
|
||||||
|
Assert.assertFalse(sut.calculateStatus(EventNetworkChange(ssid = "<unknown ssid>", mobileConnected = false, wifiConnected = true)))
|
||||||
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(ssid = "test", mobileConnected = true, wifiConnected = true)))
|
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(ssid = "test", mobileConnected = true, wifiConnected = true)))
|
||||||
Assert.assertFalse(sut.calculateStatus(EventNetworkChange(ssid = "unknown", mobileConnected = true, wifiConnected = true)))
|
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(ssid = "test", mobileConnected = false, wifiConnected = true)))
|
||||||
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(mobileConnected = true)))
|
Assert.assertFalse(sut.calculateStatus(EventNetworkChange()))
|
||||||
|
|
||||||
// wifiOnly = true
|
|
||||||
// allowRoaming = true as well
|
|
||||||
`when`(sp.getBoolean(R.string.key_ns_cellular, true)).thenReturn(false)
|
`when`(sp.getBoolean(R.string.key_ns_cellular, true)).thenReturn(false)
|
||||||
`when`(sp.getBoolean(R.string.key_ns_wifi, true)).thenReturn(true)
|
`when`(sp.getBoolean(R.string.key_ns_wifi, true)).thenReturn(true)
|
||||||
`when`(sp.getBoolean(R.string.key_ns_allow_roaming, true)).thenReturn(true)
|
`when`(sp.getBoolean(R.string.key_ns_allow_roaming, true)).thenReturn(true)
|
||||||
|
`when`(sp.getString(R.string.key_ns_wifi_ssids, "")).thenReturn("")
|
||||||
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(wifiConnected = true)))
|
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(wifiConnected = true)))
|
||||||
Assert.assertFalse(sut.calculateStatus(EventNetworkChange()))
|
Assert.assertFalse(sut.calculateStatus(EventNetworkChange()))
|
||||||
Assert.assertFalse(sut.calculateStatus(EventNetworkChange(mobileConnected = true)))
|
Assert.assertFalse(sut.calculateStatus(EventNetworkChange(mobileConnected = true)))
|
||||||
|
|
||||||
// wifiOnly = false
|
|
||||||
// allowRoaming = false as well
|
|
||||||
`when`(sp.getBoolean(R.string.key_ns_cellular, true)).thenReturn(true)
|
`when`(sp.getBoolean(R.string.key_ns_cellular, true)).thenReturn(true)
|
||||||
`when`(sp.getBoolean(R.string.key_ns_wifi, true)).thenReturn(true)
|
`when`(sp.getBoolean(R.string.key_ns_wifi, true)).thenReturn(true)
|
||||||
`when`(sp.getBoolean(R.string.key_ns_allow_roaming, true)).thenReturn(false)
|
`when`(sp.getBoolean(R.string.key_ns_allow_roaming, true)).thenReturn(false)
|
||||||
|
`when`(sp.getString(R.string.key_ns_wifi_ssids, "")).thenReturn("")
|
||||||
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(mobileConnected = true, roaming = false)))
|
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(mobileConnected = true, roaming = false)))
|
||||||
Assert.assertFalse(sut.calculateStatus(EventNetworkChange(mobileConnected = true, roaming = true)))
|
Assert.assertFalse(sut.calculateStatus(EventNetworkChange(mobileConnected = true, roaming = true)))
|
||||||
|
|
||||||
// wifiOnly = false
|
|
||||||
// allowRoaming = true
|
|
||||||
`when`(sp.getBoolean(R.string.key_ns_cellular, true)).thenReturn(true)
|
`when`(sp.getBoolean(R.string.key_ns_cellular, true)).thenReturn(true)
|
||||||
`when`(sp.getBoolean(R.string.key_ns_wifi, true)).thenReturn(true)
|
`when`(sp.getBoolean(R.string.key_ns_wifi, true)).thenReturn(true)
|
||||||
`when`(sp.getBoolean(R.string.key_ns_allow_roaming, true)).thenReturn(true)
|
`when`(sp.getBoolean(R.string.key_ns_allow_roaming, true)).thenReturn(true)
|
||||||
|
`when`(sp.getString(R.string.key_ns_wifi_ssids, "")).thenReturn("")
|
||||||
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(mobileConnected = true, roaming = false)))
|
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(mobileConnected = true, roaming = false)))
|
||||||
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(mobileConnected = true, roaming = true)))
|
Assert.assertTrue(sut.calculateStatus(EventNetworkChange(mobileConnected = true, roaming = true)))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue