mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Use segmented buttons for reader background setting in sheet
This commit is contained in:
		@@ -1,34 +1,43 @@
 | 
			
		||||
package eu.kanade.presentation.reader.settings
 | 
			
		||||
 | 
			
		||||
import androidx.compose.foundation.layout.ColumnScope
 | 
			
		||||
import androidx.compose.foundation.layout.padding
 | 
			
		||||
import androidx.compose.runtime.Composable
 | 
			
		||||
import androidx.compose.runtime.getValue
 | 
			
		||||
import androidx.compose.ui.Modifier
 | 
			
		||||
import androidx.compose.ui.res.stringResource
 | 
			
		||||
import androidx.compose.ui.unit.dp
 | 
			
		||||
import eu.kanade.presentation.util.collectAsState
 | 
			
		||||
import eu.kanade.tachiyomi.R
 | 
			
		||||
import eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences
 | 
			
		||||
import eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel
 | 
			
		||||
import tachiyomi.presentation.core.components.CheckboxItem
 | 
			
		||||
import tachiyomi.presentation.core.components.HeadingItem
 | 
			
		||||
import tachiyomi.presentation.core.components.RadioItem
 | 
			
		||||
import tachiyomi.presentation.core.components.SettingsItemsPaddings
 | 
			
		||||
import tachiyomi.presentation.core.components.material.SegmentedButtons
 | 
			
		||||
 | 
			
		||||
private val themes = listOf(
 | 
			
		||||
    R.string.black_background to 1,
 | 
			
		||||
    R.string.gray_background to 2,
 | 
			
		||||
    R.string.white_background to 0,
 | 
			
		||||
    R.string.automatic_background to 3,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@Composable
 | 
			
		||||
internal fun ColumnScope.GeneralPage(screenModel: ReaderSettingsScreenModel) {
 | 
			
		||||
    // TODO: show this in a nicer way
 | 
			
		||||
    HeadingItem(R.string.pref_reader_theme)
 | 
			
		||||
    val readerTheme by screenModel.preferences.readerTheme().collectAsState()
 | 
			
		||||
    listOf(
 | 
			
		||||
        R.string.black_background to 1,
 | 
			
		||||
        R.string.gray_background to 2,
 | 
			
		||||
        R.string.white_background to 0,
 | 
			
		||||
        R.string.automatic_background to 3,
 | 
			
		||||
    ).map { (titleRes, theme) ->
 | 
			
		||||
        RadioItem(
 | 
			
		||||
            label = stringResource(titleRes),
 | 
			
		||||
            selected = readerTheme == theme,
 | 
			
		||||
            onClick = { screenModel.preferences.readerTheme().set(theme) },
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
    SegmentedButtons(
 | 
			
		||||
        modifier = Modifier.padding(
 | 
			
		||||
            start = SettingsItemsPaddings.Horizontal,
 | 
			
		||||
            top = 0.dp,
 | 
			
		||||
            end = SettingsItemsPaddings.Horizontal,
 | 
			
		||||
            bottom = SettingsItemsPaddings.Vertical,
 | 
			
		||||
        ),
 | 
			
		||||
        entries = themes.map { stringResource(it.first) },
 | 
			
		||||
        selectedIndex = themes.indexOfFirst { readerTheme == it.second },
 | 
			
		||||
        onClick = { screenModel.preferences.readerTheme().set(themes[it].second) },
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    val showPageNumber by screenModel.preferences.showPageNumber().collectAsState()
 | 
			
		||||
    CheckboxItem(
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user