diff --git a/navi-uitron/src/main/java/com/navi/uitron/model/action/UpdateStateHandleAction.kt b/navi-uitron/src/main/java/com/navi/uitron/model/action/UpdateStateHandleAction.kt index 1d14256..29b86b8 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/model/action/UpdateStateHandleAction.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/model/action/UpdateStateHandleAction.kt @@ -11,7 +11,7 @@ import com.navi.uitron.model.data.ActionDetails import com.navi.uitron.model.data.UiTronAction data class UpdateStateHandleAction( - val statesMap: Map? = null + val statesMap: Map? = null ) : UiTronAction() { override suspend fun manageAction(actionDetails: ActionDetails) { val action = actionDetails.uiTronAction as UpdateStateHandleAction diff --git a/navi-uitron/src/main/java/com/navi/uitron/model/ui/SliderProperty.kt b/navi-uitron/src/main/java/com/navi/uitron/model/ui/SliderProperty.kt index c8fa910..551c373 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/model/ui/SliderProperty.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/model/ui/SliderProperty.kt @@ -41,6 +41,8 @@ data class SliderProperty( sliderProperty?.tooltip?.let { tooltip = it } sliderProperty?.thumbView?.let { thumbView = it } } + + fun getSliderPositionId() = layoutId + "_slider_position" } data class SliderColors( diff --git a/navi-uitron/src/main/java/com/navi/uitron/render/SliderRendererV2.kt b/navi-uitron/src/main/java/com/navi/uitron/render/SliderRendererV2.kt index 326a501..ea39cc8 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/render/SliderRendererV2.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/render/SliderRendererV2.kt @@ -122,7 +122,8 @@ class SliderRendererV2( } } - val sliderPosition = remember { mutableStateOf(0f) } + val sliderPosition = uiTronViewModel.handle.getStateFlow(property.getSliderPositionId(), 0f) + .collectAsState() LaunchedEffect(mvelUuid.value) { val stepMap = mutableMapOf() @@ -136,7 +137,6 @@ class SliderRendererV2( )?.toFloat() ?: 0f val totalStep = sliderUiTronData.stepValue?.size.orVal(1) - 1 stepToValue.value = stepMap - sliderPosition.value = positionIndex steps.value = totalStep thumbX = sliderStart + (positionIndex / totalStep) * (sliderEnd - sliderStart) saveSelectionToHandle(positionIndex.toNearestInt()) @@ -174,7 +174,7 @@ class SliderRendererV2( Slider( value = sliderPosition.value, onValueChange = { - sliderPosition.value = it + uiTronViewModel.handle[property.getSliderPositionId()] = it thumbX = sliderStart + (it / steps.value) * (sliderEnd - sliderStart) updateValuesInMvelActionOnSliderChange( uiTronViewModel,