Replace library sheet display modes with FlowRow of Chips

(cherry picked from commit 30bea8b753fbc40b1c889bdc180cb99f643f89e8)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/library/LibrarySettingsDialog.kt
This commit is contained in:
arkon 2023-07-15 14:31:13 -04:00 committed by Jobobby04
parent 8b090bca49
commit c93edec2fa

View File

@ -6,6 +6,7 @@ import androidx.compose.foundation.layout.ColumnScope
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
@ -32,9 +33,11 @@ import tachiyomi.presentation.core.components.CheckboxItem
import tachiyomi.presentation.core.components.HeadingItem import tachiyomi.presentation.core.components.HeadingItem
import tachiyomi.presentation.core.components.IconItem import tachiyomi.presentation.core.components.IconItem
import tachiyomi.presentation.core.components.RadioItem import tachiyomi.presentation.core.components.RadioItem
import tachiyomi.presentation.core.components.SettingsFlowRow
import tachiyomi.presentation.core.components.SliderItem import tachiyomi.presentation.core.components.SliderItem
import tachiyomi.presentation.core.components.SortItem import tachiyomi.presentation.core.components.SortItem
import tachiyomi.presentation.core.components.TriStateItem import tachiyomi.presentation.core.components.TriStateItem
import tachiyomi.presentation.core.components.material.ChoiceChip
@Composable @Composable
fun LibrarySettingsDialog( fun LibrarySettingsDialog(
@ -213,23 +216,26 @@ private fun ColumnScope.SortPage(
} }
} }
private val displayModes = listOf(
R.string.action_display_grid to LibraryDisplayMode.CompactGrid,
R.string.action_display_comfortable_grid to LibraryDisplayMode.ComfortableGrid,
R.string.action_display_cover_only_grid to LibraryDisplayMode.CoverOnlyGrid,
R.string.action_display_list to LibraryDisplayMode.List,
)
@Composable @Composable
private fun ColumnScope.DisplayPage( private fun ColumnScope.DisplayPage(
screenModel: LibrarySettingsScreenModel, screenModel: LibrarySettingsScreenModel,
) { ) {
HeadingItem(R.string.action_display_mode)
val displayMode by screenModel.libraryPreferences.libraryDisplayMode().collectAsState() val displayMode by screenModel.libraryPreferences.libraryDisplayMode().collectAsState()
listOf( SettingsFlowRow(R.string.action_display_mode) {
R.string.action_display_grid to LibraryDisplayMode.CompactGrid, displayModes.map { (titleRes, mode) ->
R.string.action_display_comfortable_grid to LibraryDisplayMode.ComfortableGrid, ChoiceChip(
R.string.action_display_cover_only_grid to LibraryDisplayMode.CoverOnlyGrid, isSelected = displayMode == mode,
R.string.action_display_list to LibraryDisplayMode.List, onClick = { screenModel.setDisplayMode(mode) },
).map { (titleRes, mode) -> content = { Text(stringResource(titleRes)) },
RadioItem( )
label = stringResource(titleRes), }
selected = displayMode == mode,
onClick = { screenModel.setDisplayMode(mode) },
)
} }
if (displayMode != LibraryDisplayMode.List) { if (displayMode != LibraryDisplayMode.List) {