Закрытие соединения спектра

This commit is contained in:
Vineyro 2023-08-25 11:16:08 +07:00
parent bd10b5b6b6
commit df30906056
4 changed files with 28 additions and 5 deletions

View File

@ -1,5 +1,6 @@
package llc.arma.ble.app.ui.screen.inspection.accelerometer
import android.util.Log
import androidx.compose.foundation.layout.Column
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.ModalBottomSheetValue
@ -45,7 +46,6 @@ fun AccelerometerScreen(
val bottomDialog = rememberBottomDialogState()
LaunchedEffect(ble){
viewModel.setEvent(AccelerometerContract.Event.OnBleChanged(ble))
}
@ -57,7 +57,10 @@ fun AccelerometerScreen(
LaunchedEffect(
key1 = bottomDialog.sheetState?.currentValue,
block = {
Log.d("sheet", bottomDialog.sheetState?.currentValue.toString())
if(bottomDialog.sheetState?.currentValue == ModalBottomSheetValue.Hidden) {
Log.d("sheet", "dispose")
bottomDialog.setContent({})
sheetPage = null
}
}

View File

@ -74,6 +74,15 @@ fun AccelerometerHistory(
viewModel.setEvent(AccelerometerHistoryContract.Event.OnStart(ble.serial, accelMode, fftAxis, fftMode, frequency, accelScale))
}
DisposableEffect(key1 = "ble", effect = {
onDispose {
Log.d("history", "dispose")
viewModel.setEvent(AccelerometerHistoryContract.Event.StopMeasure)
}
})
Column(
modifier = Modifier.fillMaxHeight(0.9f)
) {
@ -306,6 +315,8 @@ class AccelerometerHistoryContract {
sealed class Event : ViewEvent {
object StopMeasure : Event()
data class OnStart(
val serial: String,
val accelMode: AccelViewMode,
@ -362,6 +373,7 @@ class AccelerometerHistoryViewModel @Inject constructor(
when(event){
is AccelerometerHistoryContract.Event.OnStart -> reduce(viewState.value, event)
is AccelerometerHistoryContract.Event.OnRefreshHistory -> reduce(viewState.value, event)
is AccelerometerHistoryContract.Event.StopMeasure -> reduce(viewState.value, event)
}
}
@ -411,9 +423,6 @@ class AccelerometerHistoryViewModel @Inject constructor(
val currentState = viewState.value
Log.d("currentState", currentState.toString())
if(currentState is AccelerometerHistoryContract.State.Display) {
it.fold(
@ -483,4 +492,11 @@ class AccelerometerHistoryViewModel @Inject constructor(
}*/
}
private fun reduce(
state: AccelerometerHistoryContract.State,
event: AccelerometerHistoryContract.Event.StopMeasure
) {
job?.cancel()
}
}

View File

@ -1,5 +1,6 @@
package llc.arma.ble.app.ui.screen.inspection.accelerometer.view
import android.util.Log
import androidx.compose.animation.core.tween
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
@ -62,9 +63,10 @@ fun AccelerometerMeasure(
viewModel.setEvent(AccelerometerMeasureContract.Event.OnStart(ble.serial, accelScale, accelMode, fftAxis, fftMode, frequency))
DisposableEffect(key1 = ble, effect = {
DisposableEffect(key1 = "ble", effect = {
onDispose {
Log.d("measure", "dispose")
viewModel.setEvent(AccelerometerMeasureContract.Event.StopMeasure)
}
@ -323,6 +325,7 @@ class AccelerometerMeasureViewModel @Inject constructor(
event: AccelerometerMeasureContract.Event.StopMeasure
) {
measureJob?.cancel()
measureJob = null

View File

@ -600,6 +600,7 @@ class BleRepositoryImpl @Inject constructor(
}
awaitClose {
Log.d("measure", "close")
gatt?.close()
}