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.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<Boolean>,
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<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 },
// 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 = {},
)
}
}
}