Cleanup Themes

This commit is contained in:
andrew 2023-07-10 01:05:09 +09:30
parent b26c98af68
commit 821327569e
2 changed files with 33 additions and 22 deletions

View File

@ -43,6 +43,7 @@ import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.viewinterop.AndroidView import androidx.compose.ui.viewinterop.AndroidView
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
@ -73,7 +74,8 @@ import org.thoughtcrime.securesms.ui.CellWithPaddingAndMargin
import org.thoughtcrime.securesms.ui.Divider import org.thoughtcrime.securesms.ui.Divider
import org.thoughtcrime.securesms.ui.HorizontalPagerIndicator import org.thoughtcrime.securesms.ui.HorizontalPagerIndicator
import org.thoughtcrime.securesms.ui.ItemButton import org.thoughtcrime.securesms.ui.ItemButton
import org.thoughtcrime.securesms.ui.Theme import org.thoughtcrime.securesms.ui.PreviewTheme
import org.thoughtcrime.securesms.ui.ThemeResPreviewParameterProvider
import org.thoughtcrime.securesms.ui.blackAlpha40 import org.thoughtcrime.securesms.ui.blackAlpha40
import org.thoughtcrime.securesms.ui.colorDestructive import org.thoughtcrime.securesms.ui.colorDestructive
import org.thoughtcrime.securesms.ui.destructiveButtonColors import org.thoughtcrime.securesms.ui.destructiveButtonColors
@ -352,8 +354,10 @@ fun ExpandButton(modifier: Modifier = Modifier, onClick: () -> Unit) {
@Preview @Preview
@Composable @Composable
fun PreviewFileDetails() { fun PreviewFileDetails(
Theme(R.style.Ocean_Dark) { @PreviewParameter(ThemeResPreviewParameterProvider::class) themeResId: Int
) {
PreviewTheme(themeResId) {
FileDetails( FileDetails(
fileDetails = listOf( fileDetails = listOf(
TitledText("File Id:", "Screen Shot 2023-07-06 at 11.35.50 am.png"), TitledText("File Id:", "Screen Shot 2023-07-06 at 11.35.50 am.png"),
@ -365,6 +369,16 @@ fun PreviewFileDetails() {
} }
} }
@Preview
@Composable
fun PreviewMessageDetails(
@PreviewParameter(ThemeResPreviewParameterProvider::class) themeResId: Int
) {
PreviewTheme(themeResId) {
PreviewMessageDetails()
}
}
@OptIn(ExperimentalFoundationApi::class) @OptIn(ExperimentalFoundationApi::class)
@Composable @Composable
fun FileDetails(attachments: List<Attachment>, pagerState: PagerState) { fun FileDetails(attachments: List<Attachment>, pagerState: PagerState) {

View File

@ -23,16 +23,14 @@ import org.thoughtcrime.securesms.conversation.v2.PreviewMessageDetails
val LocalExtraColors = staticCompositionLocalOf<ExtraColors> { error("No Custom Attribute value provided") } val LocalExtraColors = staticCompositionLocalOf<ExtraColors> { error("No Custom Attribute value provided") }
data class ExtraColors( data class ExtraColors(
val settingsBackground: Color, val settingsBackground: Color,
) )
fun Context.getColorFromTheme(@AttrRes attr: Int, defaultValue: Int = 0x0): Color = try { /**
MaterialColors.getColor(this, attr, defaultValue).let(::Color) * Converts current Theme to Compose Theme.
} catch (e: Exception) { */
colorDestructive
}
@Composable @Composable
fun AppTheme( fun AppTheme(
content: @Composable () -> Unit content: @Composable () -> Unit
@ -50,25 +48,24 @@ fun AppTheme(
} }
} }
@Preview fun Context.getColorFromTheme(@AttrRes attr: Int, defaultValue: Int = 0x0): Color =
@Composable MaterialColors.getColor(this, attr, defaultValue).let(::Color)
fun PreviewMessageDetails(
@PreviewParameter(ThemeResPreviewParameterProvider::class) themeResId: Int
) {
Theme(themeResId) {
Box(modifier = Modifier.background(color = MaterialTheme.colors.background)) {
PreviewMessageDetails()
}
}
}
/**
* Set the theme and a background for Compose Previews.
*/
@Composable @Composable
fun Theme(@StyleRes themeResId: Int, content: @Composable () -> Unit) { fun PreviewTheme(
themeResId: Int,
content: @Composable () -> Unit
) {
CompositionLocalProvider( CompositionLocalProvider(
LocalContext provides ContextThemeWrapper(LocalContext.current, themeResId) LocalContext provides ContextThemeWrapper(LocalContext.current, themeResId)
) { ) {
AppTheme { AppTheme {
content() Box(modifier = Modifier.background(color = MaterialTheme.colors.background)) {
content()
}
} }
} }
} }