From 3893880faea1f8f2f71b38bcd8d25d99ed25a683 Mon Sep 17 00:00:00 2001 From: rahul bhat Date: Fri, 13 Oct 2023 12:51:01 +0530 Subject: [PATCH] SliderV2 Position in Handle now. (#214) --- .../com/navi/uitron/model/action/UpdateStateHandleAction.kt | 2 +- .../main/java/com/navi/uitron/model/ui/SliderProperty.kt | 2 ++ .../main/java/com/navi/uitron/render/SliderRendererV2.kt | 6 +++--- 3 files changed, 6 insertions(+), 4 deletions(-) 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,