Remove experimental ChipsRow

This commit is contained in:
Sad Ellie 2024-01-19 17:29:29 +03:00
parent 5ed0caa4ab
commit 4319d18e17
4 changed files with 8 additions and 118 deletions

View File

@ -183,7 +183,6 @@ internal class ConverterViewModel @Inject constructor(
sorting = prefs.unitConverterSorting,
shownUnitGroups = prefs.shownUnitGroups,
favorites = prefs.unitConverterFavoritesOnly,
verticalList = prefs.enableToolsExperiment,
query = query,
units = units,
unitGroup = unitGroup

View File

@ -41,13 +41,12 @@ import com.sadellie.unitto.core.base.R
import com.sadellie.unitto.core.ui.common.SearchPlaceholder
import com.sadellie.unitto.core.ui.common.UnittoEmptyScreen
import com.sadellie.unitto.core.ui.common.UnittoSearchBar
import com.sadellie.unitto.data.converter.MyUnitIDS
import com.sadellie.unitto.data.model.UnitGroup
import com.sadellie.unitto.data.model.UnitsListSorting
import com.sadellie.unitto.data.model.unit.AbstractUnit
import com.sadellie.unitto.data.model.unit.NormalUnit
import com.sadellie.unitto.data.converter.MyUnitIDS
import com.sadellie.unitto.feature.converter.components.BasicUnitListItem
import com.sadellie.unitto.feature.converter.components.ChipsFlexRow
import com.sadellie.unitto.feature.converter.components.ChipsRow
import com.sadellie.unitto.feature.converter.components.FavoritesButton
import com.sadellie.unitto.feature.converter.components.UnitGroupHeader
@ -120,22 +119,13 @@ private fun LeftSideScreen(
scrollBehavior = scrollBehavior
)
if (uiState.verticalList) {
ChipsFlexRow(
chosenUnitGroup = uiState.unitGroup,
items = uiState.shownUnitGroups,
selectAction = updateUnitGroup,
navigateToSettingsAction = navigateToUnitGroups
)
} else {
ChipsRow(
chosenUnitGroup = uiState.unitGroup,
items = uiState.shownUnitGroups,
selectAction = updateUnitGroup,
lazyListState = chipsRowLazyListState,
navigateToSettingsAction = navigateToUnitGroups
)
}
ChipsRow(
chosenUnitGroup = uiState.unitGroup,
items = uiState.shownUnitGroups,
selectAction = updateUnitGroup,
lazyListState = chipsRowLazyListState,
navigateToSettingsAction = navigateToUnitGroups
)
}
}
) { paddingValues ->
@ -203,7 +193,6 @@ private fun LeftSideScreenPreview() {
shownUnitGroups = listOf(UnitGroup.LENGTH, UnitGroup.TEMPERATURE, UnitGroup.CURRENCY),
unitGroup = units.keys.toList().first(),
sorting = UnitsListSorting.USAGE,
verticalList = false
),
onQueryChange = {},
toggleFavoritesOnly = {},

View File

@ -34,6 +34,5 @@ internal sealed class LeftSideUIState {
val shownUnitGroups: List<UnitGroup>,
val unitGroup: UnitGroup?,
val sorting: UnitsListSorting,
val verticalList: Boolean,
) : LeftSideUIState()
}

View File

@ -18,39 +18,23 @@
package com.sadellie.unitto.feature.converter.components
import androidx.compose.animation.core.animateDp
import androidx.compose.animation.core.animateFloat
import androidx.compose.animation.core.tween
import androidx.compose.animation.core.updateTransition
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.FlowRow
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.heightIn
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.foundation.lazy.LazyRow
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Check
import androidx.compose.material.icons.filled.ExpandMore
import androidx.compose.material.icons.filled.Settings
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clipToBounds
import androidx.compose.ui.draw.rotate
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
@ -111,70 +95,6 @@ internal fun ChipsRow(
}
}
@Composable
fun ChipsFlexRow(
items: List<UnitGroup> = ALL_UNIT_GROUPS,
chosenUnitGroup: UnitGroup?,
selectAction: (UnitGroup?) -> Unit,
navigateToSettingsAction: () -> Unit,
) {
var expanded by remember { mutableStateOf(false) }
val transition = updateTransition(expanded, label = "Expanded transition")
val rowHeight by transition.animateDp({ tween() }, "Row height") {
if (it) 392.dp else 32.dp
}
val expandRotation by transition.animateFloat({ tween() }, "Expand rotation") {
if (it) 180f else 0f
}
Row(
modifier = Modifier
.padding(16.dp, 8.dp)
.heightIn(max = rowHeight)
.clipToBounds()
) {
FlowRow(
modifier = Modifier
.verticalScroll(rememberScrollState(), expanded)
.fillMaxHeight()
.weight(1f),
horizontalArrangement = Arrangement.spacedBy(8.dp),
verticalArrangement = Arrangement.spacedBy(8.dp)
) {
items.forEach { item ->
val selected: Boolean = item == chosenUnitGroup
FilterChip(
selected = selected,
onClick = { selectAction(if (selected) null else item) },
label = stringResource(item.res),
imageVector = Icons.Default.Check,
contentDescription = stringResource(R.string.checked_filter_description)
)
}
AssistChip(
onClick = navigateToSettingsAction,
imageVector = Icons.Default.Settings,
contentDescription = stringResource(R.string.open_settings_label)
)
}
IconButton(
onClick = { expanded = !expanded },
modifier = Modifier.size(32.dp)
) {
Icon(
imageVector = Icons.Default.ExpandMore,
contentDescription = null,
modifier = Modifier
.size(32.dp)
.rotate(expandRotation)
)
}
}
}
@Preview
@Composable
fun PreviewUnittoChips() {
@ -192,20 +112,3 @@ fun PreviewUnittoChips() {
lazyListState = rememberLazyListState()
)
}
@Preview(showSystemUi = true, showBackground = true, backgroundColor = 0xFFE0E0E0)
@Composable
fun PreviewChipsFlowRow() {
var selected by remember { mutableStateOf<UnitGroup?>(UnitGroup.LENGTH) }
fun selectAction(unitGroup: UnitGroup?) {
selected = unitGroup
}
ChipsFlexRow(
items = ALL_UNIT_GROUPS,
chosenUnitGroup = selected,
selectAction = { selectAction(it) },
navigateToSettingsAction = {},
)
}