mirror of
https://github.com/Myzel394/NumberHub.git
synced 2025-06-19 08:45:27 +02:00
Remove experimental ChipsRow
This commit is contained in:
parent
5ed0caa4ab
commit
4319d18e17
@ -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
|
||||||
|
@ -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,22 +119,13 @@ private fun LeftSideScreen(
|
|||||||
scrollBehavior = scrollBehavior
|
scrollBehavior = scrollBehavior
|
||||||
)
|
)
|
||||||
|
|
||||||
if (uiState.verticalList) {
|
ChipsRow(
|
||||||
ChipsFlexRow(
|
chosenUnitGroup = uiState.unitGroup,
|
||||||
chosenUnitGroup = uiState.unitGroup,
|
items = uiState.shownUnitGroups,
|
||||||
items = uiState.shownUnitGroups,
|
selectAction = updateUnitGroup,
|
||||||
selectAction = updateUnitGroup,
|
lazyListState = chipsRowLazyListState,
|
||||||
navigateToSettingsAction = navigateToUnitGroups
|
navigateToSettingsAction = navigateToUnitGroups
|
||||||
)
|
)
|
||||||
} else {
|
|
||||||
ChipsRow(
|
|
||||||
chosenUnitGroup = uiState.unitGroup,
|
|
||||||
items = uiState.shownUnitGroups,
|
|
||||||
selectAction = updateUnitGroup,
|
|
||||||
lazyListState = chipsRowLazyListState,
|
|
||||||
navigateToSettingsAction = navigateToUnitGroups
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
) { paddingValues ->
|
) { paddingValues ->
|
||||||
@ -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 = {},
|
||||||
|
@ -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()
|
||||||
}
|
}
|
||||||
|
@ -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 = {},
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user