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

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

View File

@ -74,6 +74,15 @@ fun AccelerometerHistory(
viewModel.setEvent(AccelerometerHistoryContract.Event.OnStart(ble.serial, accelMode, fftAxis, fftMode, frequency, accelScale)) 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( Column(
modifier = Modifier.fillMaxHeight(0.9f) modifier = Modifier.fillMaxHeight(0.9f)
) { ) {
@ -306,6 +315,8 @@ class AccelerometerHistoryContract {
sealed class Event : ViewEvent { sealed class Event : ViewEvent {
object StopMeasure : Event()
data class OnStart( data class OnStart(
val serial: String, val serial: String,
val accelMode: AccelViewMode, val accelMode: AccelViewMode,
@ -362,6 +373,7 @@ class AccelerometerHistoryViewModel @Inject constructor(
when(event){ when(event){
is AccelerometerHistoryContract.Event.OnStart -> reduce(viewState.value, event) is AccelerometerHistoryContract.Event.OnStart -> reduce(viewState.value, event)
is AccelerometerHistoryContract.Event.OnRefreshHistory -> 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 val currentState = viewState.value
Log.d("currentState", currentState.toString())
if(currentState is AccelerometerHistoryContract.State.Display) { if(currentState is AccelerometerHistoryContract.State.Display) {
it.fold( 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 package llc.arma.ble.app.ui.screen.inspection.accelerometer.view
import android.util.Log
import androidx.compose.animation.core.tween import androidx.compose.animation.core.tween
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
import androidx.compose.material3.* import androidx.compose.material3.*
@ -62,9 +63,10 @@ fun AccelerometerMeasure(
viewModel.setEvent(AccelerometerMeasureContract.Event.OnStart(ble.serial, accelScale, accelMode, fftAxis, fftMode, frequency)) viewModel.setEvent(AccelerometerMeasureContract.Event.OnStart(ble.serial, accelScale, accelMode, fftAxis, fftMode, frequency))
DisposableEffect(key1 = ble, effect = { DisposableEffect(key1 = "ble", effect = {
onDispose { onDispose {
Log.d("measure", "dispose")
viewModel.setEvent(AccelerometerMeasureContract.Event.StopMeasure) viewModel.setEvent(AccelerometerMeasureContract.Event.StopMeasure)
} }
@ -323,6 +325,7 @@ class AccelerometerMeasureViewModel @Inject constructor(
event: AccelerometerMeasureContract.Event.StopMeasure event: AccelerometerMeasureContract.Event.StopMeasure
) { ) {
measureJob?.cancel() measureJob?.cancel()
measureJob = null measureJob = null

View File

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