Restore minRating advanced search

This commit is contained in:
tarsin committed 2023-06-27 19:55:15 +08:00
1 parent 6c1ffeacb2
commit f67c80a3a3
3 files changed
+45 -2

No files matched your search

@@ -12,6 +12,8 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.ElevatedCard
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Tab
@@ -67,7 +69,7 @@ class SearchLayout @JvmOverloads constructor(
}
Mdc3Theme {
Column(
modifier = Modifier.padding(horizontal = dimensionResource(id = R.dimen.search_layout_margin_h)),
modifier = Modifier.padding(horizontal = dimensionResource(id = R.dimen.search_layout_margin_h)).verticalScroll(rememberScrollState()),
verticalArrangement = Arrangement.spacedBy(dimensionResource(id = R.dimen.search_layout_margin_v)),
) {
AnimatedVisibility(visible = isNormalMode) {
@@ -11,5 +11,5 @@ object AdvanceTable {
data class AdvancedSearchOption(
val advanceSearch: Int = 0,
val minRating: Int = 0,
val page: IntRange = 0..1,
val page: IntRange = -1..-1,
)
@@ -3,12 +3,21 @@ package com.hippo.ehviewer.ui.main
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.material3.Checkbox
import androidx.compose.material3.DropdownMenuItem
import androidx.compose.material3.ExposedDropdownMenuBox
import androidx.compose.material3.ExposedDropdownMenuDefaults
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.ProvideTextStyle
import androidx.compose.material3.Text
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.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringArrayResource
import androidx.compose.ui.res.stringResource
import com.hippo.ehviewer.R
@@ -32,6 +41,38 @@ fun SearchAdvanced(
Text(text = stringResource(id = R.string.search_sto), modifier = Modifier.align(Alignment.CenterVertically))
}
}
val minRatingItems = stringArrayResource(id = R.array.search_min_rating)
var selected by remember { mutableStateOf(minRatingItems[0]) }
var expanded by remember { mutableStateOf(false) }
ExposedDropdownMenuBox(
expanded = expanded,
onExpandedChange = { expanded = !expanded },
) {
OutlinedTextField(
modifier = Modifier.menuAnchor(),
readOnly = true,
value = selected,
onValueChange = { onStateChanged(state.copy(minRating = minRatingItems.indexOf(it))) },
label = { Text(stringResource(id = R.string.search_sr)) },
trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded = expanded) },
colors = ExposedDropdownMenuDefaults.textFieldColors(),
)
ExposedDropdownMenu(
expanded = expanded,
onDismissRequest = { expanded = false },
) {
minRatingItems.forEach { selectionOption ->
DropdownMenuItem(
text = { Text(selectionOption) },
onClick = {
selected = selectionOption
expanded = false
},
contentPadding = ExposedDropdownMenuDefaults.ItemContentPadding,
)
}
}
}
}
}
}