From bcb0a24a4f1d0121be5f1e3661245f59d6b4cab4 Mon Sep 17 00:00:00 2001 From: arkon Date: Sun, 19 Jun 2022 16:50:52 -0400 Subject: [PATCH] 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 --- .../presentation/components/Preferences.kt | 59 ++++++++++++++++++- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/kanade/presentation/components/Preferences.kt b/app/src/main/java/eu/kanade/presentation/components/Preferences.kt index f1a13468e..a8debc247 100644 --- a/app/src/main/java/eu/kanade/presentation/components/Preferences.kt +++ b/app/src/main/java/eu/kanade/presentation/components/Preferences.kt @@ -18,8 +18,10 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.text.AnnotatedString +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import eu.kanade.core.prefs.PreferenceMutableState +import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.util.horizontalPadding const val DIVIDER_ALPHA = 0.2f @@ -115,7 +117,8 @@ fun PreferenceRow( @Composable fun SwitchPreference( modifier: Modifier = Modifier, - preference: PreferenceMutableState, + checked: Boolean, + onClick: () -> Unit, title: String, subtitle: String? = null, painter: Painter? = null, @@ -128,10 +131,62 @@ fun SwitchPreference( title = title, subtitle = subtitle, 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, + 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 }, // SY --> subtitleAnnotated = subtitleAnnotated, // 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 = {}, + ) + } + } +}