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, sorting = prefs.unitConverterSorting,
shownUnitGroups = prefs.shownUnitGroups, shownUnitGroups = prefs.shownUnitGroups,
favorites = prefs.unitConverterFavoritesOnly, favorites = prefs.unitConverterFavoritesOnly,
verticalList = prefs.enableToolsExperiment,
query = query, query = query,
units = units, units = units,
unitGroup = unitGroup 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.SearchPlaceholder
import com.sadellie.unitto.core.ui.common.UnittoEmptyScreen import com.sadellie.unitto.core.ui.common.UnittoEmptyScreen
import com.sadellie.unitto.core.ui.common.UnittoSearchBar 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.UnitGroup
import com.sadellie.unitto.data.model.UnitsListSorting import com.sadellie.unitto.data.model.UnitsListSorting
import com.sadellie.unitto.data.model.unit.AbstractUnit import com.sadellie.unitto.data.model.unit.AbstractUnit
import com.sadellie.unitto.data.model.unit.NormalUnit 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.BasicUnitListItem
import com.sadellie.unitto.feature.converter.components.ChipsFlexRow
import com.sadellie.unitto.feature.converter.components.ChipsRow import com.sadellie.unitto.feature.converter.components.ChipsRow
import com.sadellie.unitto.feature.converter.components.FavoritesButton import com.sadellie.unitto.feature.converter.components.FavoritesButton
import com.sadellie.unitto.feature.converter.components.UnitGroupHeader import com.sadellie.unitto.feature.converter.components.UnitGroupHeader
@ -120,14 +119,6 @@ private fun LeftSideScreen(
scrollBehavior = scrollBehavior scrollBehavior = scrollBehavior
) )
if (uiState.verticalList) {
ChipsFlexRow(
chosenUnitGroup = uiState.unitGroup,
items = uiState.shownUnitGroups,
selectAction = updateUnitGroup,
navigateToSettingsAction = navigateToUnitGroups
)
} else {
ChipsRow( ChipsRow(
chosenUnitGroup = uiState.unitGroup, chosenUnitGroup = uiState.unitGroup,
items = uiState.shownUnitGroups, items = uiState.shownUnitGroups,
@ -137,7 +128,6 @@ private fun LeftSideScreen(
) )
} }
} }
}
) { paddingValues -> ) { paddingValues ->
Crossfade( Crossfade(
targetState = uiState.units.isNotEmpty(), targetState = uiState.units.isNotEmpty(),
@ -203,7 +193,6 @@ private fun LeftSideScreenPreview() {
shownUnitGroups = listOf(UnitGroup.LENGTH, UnitGroup.TEMPERATURE, UnitGroup.CURRENCY), shownUnitGroups = listOf(UnitGroup.LENGTH, UnitGroup.TEMPERATURE, UnitGroup.CURRENCY),
unitGroup = units.keys.toList().first(), unitGroup = units.keys.toList().first(),
sorting = UnitsListSorting.USAGE, sorting = UnitsListSorting.USAGE,
verticalList = false
), ),
onQueryChange = {}, onQueryChange = {},
toggleFavoritesOnly = {}, toggleFavoritesOnly = {},

View File

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

View File

@ -18,39 +18,23 @@
package com.sadellie.unitto.feature.converter.components 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.Arrangement
import androidx.compose.foundation.layout.FlowRow
import androidx.compose.foundation.layout.PaddingValues 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.fillMaxWidth
import androidx.compose.foundation.layout.heightIn
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.foundation.lazy.LazyRow import androidx.compose.foundation.lazy.LazyRow
import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.rememberLazyListState 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.Icons
import androidx.compose.material.icons.filled.Check import androidx.compose.material.icons.filled.Check
import androidx.compose.material.icons.filled.ExpandMore
import androidx.compose.material.icons.filled.Settings 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.Composable
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier 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.res.stringResource
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp 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 @Preview
@Composable @Composable
fun PreviewUnittoChips() { fun PreviewUnittoChips() {
@ -192,20 +112,3 @@ fun PreviewUnittoChips() {
lazyListState = rememberLazyListState() 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 = {},
)
}