diff --git a/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/AccelerometerScreen.kt b/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/AccelerometerScreen.kt index db13006..f962fc8 100644 --- a/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/AccelerometerScreen.kt +++ b/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/AccelerometerScreen.kt @@ -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 } } diff --git a/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/view/AcceleromterHistory.kt b/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/view/AcceleromterHistory.kt index 9186059..472e21c 100644 --- a/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/view/AcceleromterHistory.kt +++ b/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/view/AcceleromterHistory.kt @@ -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() + } + } \ No newline at end of file diff --git a/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/view/AcceleromterMeasure.kt b/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/view/AcceleromterMeasure.kt index ebddb5b..5eaa648 100644 --- a/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/view/AcceleromterMeasure.kt +++ b/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/view/AcceleromterMeasure.kt @@ -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 diff --git a/app/src/main/java/llc/arma/ble/data/BleRepositoryImpl.kt b/app/src/main/java/llc/arma/ble/data/BleRepositoryImpl.kt index e4974dc..9260682 100644 --- a/app/src/main/java/llc/arma/ble/data/BleRepositoryImpl.kt +++ b/app/src/main/java/llc/arma/ble/data/BleRepositoryImpl.kt @@ -600,6 +600,7 @@ class BleRepositoryImpl @Inject constructor( } awaitClose { + Log.d("measure", "close") gatt?.close() }