Add Composable preview for preferences

...except Android Studio refuses to actually render them.

(cherry picked from commit 11f1482818d70e6b00bcfd267ab70418e3350e83)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/components/Preferences.kt
This commit is contained in:
arkon 2022-06-19 16:50:52 -04:00 committed by Jobobby04
parent 0e90c7fa16
commit bcb0a24a4f

View File

@ -18,8 +18,10 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import eu.kanade.core.prefs.PreferenceMutableState import eu.kanade.core.prefs.PreferenceMutableState
import eu.kanade.presentation.theme.TachiyomiTheme
import eu.kanade.presentation.util.horizontalPadding import eu.kanade.presentation.util.horizontalPadding
const val DIVIDER_ALPHA = 0.2f const val DIVIDER_ALPHA = 0.2f
@ -115,7 +117,8 @@ fun PreferenceRow(
@Composable @Composable
fun SwitchPreference( fun SwitchPreference(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
preference: PreferenceMutableState<Boolean>, checked: Boolean,
onClick: () -> Unit,
title: String, title: String,
subtitle: String? = null, subtitle: String? = null,
painter: Painter? = null, painter: Painter? = null,
@ -128,10 +131,62 @@ fun SwitchPreference(
title = title, title = title,
subtitle = subtitle, subtitle = subtitle,
painter = painter, painter = painter,
action = { Switch(checked = preference.value, onCheckedChange = null) }, action = { Switch(checked = checked, onCheckedChange = null) },
onClick = onClick,
// SY -->
subtitleAnnotated = subtitleAnnotated,
// SY <--
)
}
@Composable
fun SwitchPreference(
modifier: Modifier = Modifier,
preference: PreferenceMutableState<Boolean>,
title: String,
subtitle: String? = null,
painter: Painter? = null,
// SY -->
subtitleAnnotated: AnnotatedString? = null,
// SY <--
) {
SwitchPreference(
modifier = modifier,
title = title,
subtitle = subtitle,
painter = painter,
checked = preference.value,
onClick = { preference.value = !preference.value }, onClick = { preference.value = !preference.value },
// SY --> // SY -->
subtitleAnnotated = subtitleAnnotated, subtitleAnnotated = subtitleAnnotated,
// SY <-- // SY <--
) )
} }
@Preview
@Composable
private fun PreferencesPreview() {
TachiyomiTheme {
Column {
PreferenceRow(
title = "Plain",
subtitle = "Subtitle",
)
Divider()
SwitchPreference(
title = "Switch (on)",
subtitle = "Subtitle",
checked = true,
onClick = {},
)
SwitchPreference(
title = "Switch (off)",
subtitle = "Subtitle",
checked = false,
onClick = {},
)
}
}
}