From 67fdf44d5d4f92e1fd531e60c9a6d9411a33767d Mon Sep 17 00:00:00 2001 From: Dmitrii Rubtsov Date: Sun, 24 Dec 2023 10:03:21 +0200 Subject: [PATCH] Minor changes in sample app --- .../sample/compose/ComposeActivity.kt | 14 ++++++++------ .../sample/compose/screen/SettingsScreen.kt | 19 ++++++++++--------- .../compose/viewmodel/SettingsViewModel.kt | 11 ++++++----- 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/app/src/main/kotlin/com/fragula2/sample/compose/ComposeActivity.kt b/app/src/main/kotlin/com/fragula2/sample/compose/ComposeActivity.kt index a5c04de..5cb9c72 100644 --- a/app/src/main/kotlin/com/fragula2/sample/compose/ComposeActivity.kt +++ b/app/src/main/kotlin/com/fragula2/sample/compose/ComposeActivity.kt @@ -22,6 +22,7 @@ import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.appcompat.graphics.drawable.DrawerArrowDrawable import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding import androidx.compose.material.Icon import androidx.compose.material.IconButton import androidx.compose.material.MaterialTheme @@ -33,7 +34,7 @@ import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Settings import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.mutableFloatStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier @@ -68,7 +69,7 @@ class ComposeActivity : ComponentActivity() { color = MaterialTheme.colors.background, ) { val navController = rememberFragulaNavController() - var arrowProgress by remember { mutableStateOf(0f) } + var arrowProgress by remember { mutableFloatStateOf(0f) } Scaffold( topBar = { FragulaAppBar( @@ -96,10 +97,11 @@ class ComposeActivity : ComponentActivity() { else -> 0f } }, - swipeDirection = SwipeDirection.of(settingsViewModel.swipeDirection.value), - scrimColor = settingsViewModel.scrimColor.value.argbToColor(), - scrimAmount = settingsViewModel.scrimAmount.value, - elevationAmount = settingsViewModel.elevationAmount.value.dp, + swipeDirection = SwipeDirection.of(settingsViewModel.swipeDirection.intValue), + scrimColor = settingsViewModel.scrimColor.intValue.argbToColor(), + scrimAmount = settingsViewModel.scrimAmount.floatValue, + elevationAmount = settingsViewModel.elevationAmount.floatValue.dp, + modifier = Modifier.padding(paddingValues), ) { swipeable("list") { ListScreen(navController) diff --git a/app/src/main/kotlin/com/fragula2/sample/compose/screen/SettingsScreen.kt b/app/src/main/kotlin/com/fragula2/sample/compose/screen/SettingsScreen.kt index b432fc6..b176873 100644 --- a/app/src/main/kotlin/com/fragula2/sample/compose/screen/SettingsScreen.kt +++ b/app/src/main/kotlin/com/fragula2/sample/compose/screen/SettingsScreen.kt @@ -18,6 +18,7 @@ import androidx.compose.material.MaterialTheme import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableFloatStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue @@ -52,9 +53,9 @@ fun SettingsScreen(settingsViewModel: SettingsViewModel) { FloatButtonsRow( modifier = Modifier.padding(top = 10.dp), values = directionsList, - selectedFloat = settingsViewModel.swipeDirection.value.toFloat(), + selectedFloat = settingsViewModel.swipeDirection.intValue.toFloat(), ) { value -> - settingsViewModel.swipeDirection.value = value.toInt() + settingsViewModel.swipeDirection.intValue = value.toInt() } Text( @@ -65,9 +66,9 @@ fun SettingsScreen(settingsViewModel: SettingsViewModel) { ) ColorButtonsRow( modifier = Modifier.padding(top = 10.dp), - selectedColor = settingsViewModel.scrimColor.value.argbToColor(), + selectedColor = settingsViewModel.scrimColor.intValue.argbToColor(), ) { color -> - settingsViewModel.scrimColor.value = color.toArgb() + settingsViewModel.scrimColor.intValue = color.toArgb() } Text( @@ -79,9 +80,9 @@ fun SettingsScreen(settingsViewModel: SettingsViewModel) { FloatButtonsRow( modifier = Modifier.padding(top = 10.dp), values = scrimAmountList, - selectedFloat = settingsViewModel.scrimAmount.value, + selectedFloat = settingsViewModel.scrimAmount.floatValue, ) { amount -> - settingsViewModel.scrimAmount.value = amount + settingsViewModel.scrimAmount.floatValue = amount } Text( @@ -93,9 +94,9 @@ fun SettingsScreen(settingsViewModel: SettingsViewModel) { FloatButtonsRow( modifier = Modifier.padding(top = 10.dp), values = elevationAmountList, - selectedFloat = settingsViewModel.elevationAmount.value, + selectedFloat = settingsViewModel.elevationAmount.floatValue, ) { amount -> - settingsViewModel.elevationAmount.value = amount + settingsViewModel.elevationAmount.floatValue = amount } } } @@ -147,7 +148,7 @@ private fun FloatButtonsRow( selectedFloat: Float, onButtonClick: (value: Float) -> Unit = {}, ) { - var selectedValue: Float by remember { mutableStateOf(selectedFloat) } + var selectedValue: Float by remember { mutableFloatStateOf(selectedFloat) } Row( modifier = modifier .fillMaxWidth() diff --git a/app/src/main/kotlin/com/fragula2/sample/compose/viewmodel/SettingsViewModel.kt b/app/src/main/kotlin/com/fragula2/sample/compose/viewmodel/SettingsViewModel.kt index 2839e84..c7b82de 100644 --- a/app/src/main/kotlin/com/fragula2/sample/compose/viewmodel/SettingsViewModel.kt +++ b/app/src/main/kotlin/com/fragula2/sample/compose/viewmodel/SettingsViewModel.kt @@ -1,6 +1,7 @@ package com.fragula2.sample.compose.viewmodel -import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.mutableFloatStateOf +import androidx.compose.runtime.mutableIntStateOf import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.unit.dp @@ -8,8 +9,8 @@ import androidx.lifecycle.ViewModel import com.fragula2.common.SwipeDirection class SettingsViewModel : ViewModel() { - val swipeDirection = mutableStateOf(SwipeDirection.LEFT_TO_RIGHT.value) - val elevationAmount = mutableStateOf(3.dp.value) - val scrimColor = mutableStateOf(Color(0xFF000000).toArgb()) - val scrimAmount = mutableStateOf(0.15f) + val swipeDirection = mutableIntStateOf(SwipeDirection.LEFT_TO_RIGHT.value) + val elevationAmount = mutableFloatStateOf(3.dp.value) + val scrimColor = mutableIntStateOf(Color(0xFF000000).toArgb()) + val scrimAmount = mutableFloatStateOf(0.15f) } \ No newline at end of file