diff --git a/lib_service/src/main/java/no/nordicsemi/android/service/BleProfileService.kt b/lib_service/src/main/java/no/nordicsemi/android/service/BleProfileService.kt index d03d584f..7e674d39 100644 --- a/lib_service/src/main/java/no/nordicsemi/android/service/BleProfileService.kt +++ b/lib_service/src/main/java/no/nordicsemi/android/service/BleProfileService.kt @@ -92,6 +92,13 @@ abstract class BleProfileService : Service() { }) } + protected fun stopIfDisconnected(status: BleManagerStatus) { + if (status == BleManagerStatus.DISCONNECTED) { + scope.close() + stopSelf() + } + } + override fun onBind(intent: Intent?): IBinder? { return null } diff --git a/profile_cgms/src/main/java/no/nordicsemi/android/cgms/repository/CGMService.kt b/profile_cgms/src/main/java/no/nordicsemi/android/cgms/repository/CGMService.kt index 32085512..473e4917 100644 --- a/profile_cgms/src/main/java/no/nordicsemi/android/cgms/repository/CGMService.kt +++ b/profile_cgms/src/main/java/no/nordicsemi/android/cgms/repository/CGMService.kt @@ -24,9 +24,7 @@ internal class CGMService : ForegroundBleService() { status.onEach { val status = it.mapToSimpleManagerStatus() repository.setNewStatus(status) - if (status == BleManagerStatus.DISCONNECTED) { - scope.close() - } + stopIfDisconnected(status) }.launchIn(scope) repository.command.onEach { diff --git a/profile_csc/src/main/java/no/nordicsemi/android/csc/repository/CSCService.kt b/profile_csc/src/main/java/no/nordicsemi/android/csc/repository/CSCService.kt index a6a89a4f..d0e1f6db 100644 --- a/profile_csc/src/main/java/no/nordicsemi/android/csc/repository/CSCService.kt +++ b/profile_csc/src/main/java/no/nordicsemi/android/csc/repository/CSCService.kt @@ -25,9 +25,7 @@ internal class CSCService : ForegroundBleService() { status.onEach { val status = it.mapToSimpleManagerStatus() repository.setNewStatus(status) - if (status == BleManagerStatus.DISCONNECTED) { - scope.close() - } + stopIfDisconnected(status) }.launchIn(scope) repository.command.onEach { diff --git a/profile_hrs/src/main/java/no/nordicsemi/android/hrs/service/HRSService.kt b/profile_hrs/src/main/java/no/nordicsemi/android/hrs/service/HRSService.kt index 39db85bd..ba425bec 100644 --- a/profile_hrs/src/main/java/no/nordicsemi/android/hrs/service/HRSService.kt +++ b/profile_hrs/src/main/java/no/nordicsemi/android/hrs/service/HRSService.kt @@ -5,9 +5,7 @@ import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import no.nordicsemi.android.hrs.data.HRSRepository import no.nordicsemi.android.service.BleManagerStatus -import no.nordicsemi.android.service.BleServiceStatus import no.nordicsemi.android.service.ForegroundBleService -import no.nordicsemi.android.utils.exhaustive import javax.inject.Inject @AndroidEntryPoint @@ -24,9 +22,7 @@ internal class HRSService : ForegroundBleService() { status.onEach { val status = it.mapToSimpleManagerStatus() repository.setNewStatus(status) - if (status == BleManagerStatus.DISCONNECTED) { - scope.close() - } + stopIfDisconnected(status) }.launchIn(scope) repository.command.onEach { diff --git a/profile_hrs/src/main/java/no/nordicsemi/android/hrs/viewmodel/HRSViewModel.kt b/profile_hrs/src/main/java/no/nordicsemi/android/hrs/viewmodel/HRSViewModel.kt index 228cc955..3d6a568c 100644 --- a/profile_hrs/src/main/java/no/nordicsemi/android/hrs/viewmodel/HRSViewModel.kt +++ b/profile_hrs/src/main/java/no/nordicsemi/android/hrs/viewmodel/HRSViewModel.kt @@ -1,5 +1,6 @@ package no.nordicsemi.android.hrs.viewmodel +import android.util.Log import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel @@ -24,6 +25,7 @@ internal class HRSViewModel @Inject constructor( ) : ViewModel() { val state = repository.data.combine(repository.status) { data, status -> + Log.d("AAATESTAAA", "data: $data, status: $status") when (status) { BleManagerStatus.CONNECTING -> LoadingState BleManagerStatus.OK, diff --git a/profile_hts/src/main/java/no/nordicsemi/android/hts/repository/HTSService.kt b/profile_hts/src/main/java/no/nordicsemi/android/hts/repository/HTSService.kt index 65b91ae1..aa576f35 100644 --- a/profile_hts/src/main/java/no/nordicsemi/android/hts/repository/HTSService.kt +++ b/profile_hts/src/main/java/no/nordicsemi/android/hts/repository/HTSService.kt @@ -24,9 +24,7 @@ internal class HTSService : ForegroundBleService() { status.onEach { val status = it.mapToSimpleManagerStatus() repository.setNewStatus(status) - if (status == BleManagerStatus.DISCONNECTED) { - scope.close() - } + stopIfDisconnected(status) }.launchIn(scope) repository.command.onEach { diff --git a/profile_prx/src/main/java/no/nordicsemi/android/prx/repository/PRXService.kt b/profile_prx/src/main/java/no/nordicsemi/android/prx/repository/PRXService.kt index 79c5c853..4be3b2bb 100644 --- a/profile_prx/src/main/java/no/nordicsemi/android/prx/repository/PRXService.kt +++ b/profile_prx/src/main/java/no/nordicsemi/android/prx/repository/PRXService.kt @@ -1,14 +1,9 @@ package no.nordicsemi.android.prx.repository -import android.util.Log import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import no.nordicsemi.android.prx.data.AlarmLevel -import no.nordicsemi.android.prx.data.DisableAlarm -import no.nordicsemi.android.prx.data.Disconnect -import no.nordicsemi.android.prx.data.EnableAlarm -import no.nordicsemi.android.prx.data.PRXRepository +import no.nordicsemi.android.prx.data.* import no.nordicsemi.android.service.BleManagerStatus import no.nordicsemi.android.service.BleServiceStatus import no.nordicsemi.android.service.ForegroundBleService @@ -43,6 +38,7 @@ internal class PRXService : ForegroundBleService() { BleServiceStatus.OK -> BleManagerStatus.OK BleServiceStatus.DISCONNECTED -> { scope.close() + stopSelf() BleManagerStatus.DISCONNECTED } BleServiceStatus.LINK_LOSS -> null diff --git a/profile_rscs/src/main/java/no/nordicsemi/android/rscs/repository/RSCSService.kt b/profile_rscs/src/main/java/no/nordicsemi/android/rscs/repository/RSCSService.kt index a54763bc..62e16585 100644 --- a/profile_rscs/src/main/java/no/nordicsemi/android/rscs/repository/RSCSService.kt +++ b/profile_rscs/src/main/java/no/nordicsemi/android/rscs/repository/RSCSService.kt @@ -24,9 +24,7 @@ internal class RSCSService : ForegroundBleService() { status.onEach { val status = it.mapToSimpleManagerStatus() repository.setNewStatus(status) - if (status == BleManagerStatus.DISCONNECTED) { - scope.close() - } + stopIfDisconnected(status) }.launchIn(scope) repository.command.onEach { diff --git a/profile_uart/src/main/java/no/nordicsemi/android/uart/repository/UARTService.kt b/profile_uart/src/main/java/no/nordicsemi/android/uart/repository/UARTService.kt index be2f6f26..04c65923 100644 --- a/profile_uart/src/main/java/no/nordicsemi/android/uart/repository/UARTService.kt +++ b/profile_uart/src/main/java/no/nordicsemi/android/uart/repository/UARTService.kt @@ -25,9 +25,7 @@ internal class UARTService : ForegroundBleService() { status.onEach { val status = it.mapToSimpleManagerStatus() repository.setNewStatus(status) - if (status == BleManagerStatus.DISCONNECTED) { - scope.close() - } + stopIfDisconnected(status) }.launchIn(scope) repository.command.onEach {