Use Mdc Compose Theme adapter

This commit is contained in:
MM20
2021-12-12 13:59:28 +01:00
parent c4a2efaef3
commit 0abb198fdd
12 changed files with 22 additions and 90 deletions
+5 -1
View File
@@ -66,7 +66,11 @@ dependencies {
// Legacy dependencies
implementation(libs.androidx.transition)
implementation(libs.materialcomponents)
implementation(libs.materialcomponents.core)
implementation(libs.materialcomponents.composethemeadapter)
implementation(libs.materialcomponents.composethemeadapter3)
implementation(libs.viewpropertyobjectanimator)
implementation(libs.glide)
implementation(libs.draglinearlayout)
@@ -14,6 +14,8 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.sp
import com.google.android.material.composethemeadapter.MdcTheme
import com.google.android.material.composethemeadapter3.Mdc3Theme
import androidx.compose.material.MaterialTheme as Material2Theme
val legacyTypography = Typography(
@@ -82,84 +84,8 @@ val legacyTypography = Typography(
@Composable
fun LegacyLauncherTheme(content: @Composable () -> Unit) {
val theme = LocalContext.current.theme
val colorSurface = TypedValue()
theme.resolveAttribute(R.attr.colorSurface, colorSurface, true)
val colorSurfaceVariant = TypedValue()
theme.resolveAttribute(R.attr.colorSurfaceVariant, colorSurfaceVariant, true)
val colorPrimary = TypedValue()
theme.resolveAttribute(R.attr.colorPrimary, colorPrimary, true)
val colorOnPrimary = TypedValue()
theme.resolveAttribute(R.attr.colorOnPrimary, colorOnPrimary, true)
val colorPrimaryContainer = TypedValue()
theme.resolveAttribute(R.attr.colorPrimaryContainer, colorPrimaryContainer, true)
val colorOnPrimaryContainer = TypedValue()
theme.resolveAttribute(R.attr.colorOnPrimaryContainer, colorOnPrimaryContainer, true)
val colorSecondary = TypedValue()
theme.resolveAttribute(R.attr.colorSecondary, colorSecondary, true)
val colorOnSecondary = TypedValue()
theme.resolveAttribute(R.attr.colorOnSecondary, colorOnSecondary, true)
val colorSecondaryContainer = TypedValue()
theme.resolveAttribute(R.attr.colorSecondaryContainer, colorSecondaryContainer, true)
val colorOnSecondaryContainer = TypedValue()
theme.resolveAttribute(R.attr.colorOnSecondaryContainer, colorOnSecondaryContainer, true)
val colorTertiary = TypedValue()
theme.resolveAttribute(R.attr.colorTertiary, colorTertiary, true)
val colorOnTertiary = TypedValue()
theme.resolveAttribute(R.attr.colorOnTertiary, colorOnTertiary, true)
val colorTertiaryContainer = TypedValue()
theme.resolveAttribute(R.attr.colorTertiaryContainer, colorTertiaryContainer, true)
val colorOnTertiaryContainer = TypedValue()
theme.resolveAttribute(R.attr.colorOnTertiaryContainer, colorOnTertiaryContainer, true)
MaterialTheme(
typography = legacyTypography,
colorScheme = if (isSystemInDarkTheme()) darkColorScheme(
surface = Color(colorSurface.data),
surfaceVariant = Color(colorSurfaceVariant.data),
primary = Color(colorPrimary.data),
onPrimary = Color(colorOnPrimary.data),
primaryContainer = Color(colorPrimaryContainer.data),
onPrimaryContainer = Color(colorOnPrimaryContainer.data),
secondary = Color(colorSecondary.data),
onSecondary = Color(colorOnSecondary.data),
secondaryContainer = Color(colorSecondaryContainer.data),
onSecondaryContainer = Color(colorOnSecondaryContainer.data),
tertiary = Color(colorTertiary.data),
onTertiary = Color(colorOnTertiary.data),
tertiaryContainer = Color(colorTertiaryContainer.data),
onTertiaryContainer = Color(colorOnTertiaryContainer.data),
) else lightColorScheme(
surface = Color(colorSurface.data),
surfaceVariant = Color(colorSurfaceVariant.data),
primary = Color(colorPrimary.data),
onPrimary = Color(colorOnPrimary.data),
primaryContainer = Color(colorPrimaryContainer.data),
onPrimaryContainer = Color(colorOnPrimaryContainer.data),
secondary = Color(colorSecondary.data),
onSecondary = Color(colorOnSecondary.data),
secondaryContainer = Color(colorSecondaryContainer.data),
onSecondaryContainer = Color(colorOnSecondaryContainer.data),
tertiary = Color(colorTertiary.data),
onTertiary = Color(colorOnTertiary.data),
tertiaryContainer = Color(colorTertiaryContainer.data),
onTertiaryContainer = Color(colorOnTertiaryContainer.data),
)
) {
Material2Theme(
colors = if (isSystemInDarkTheme()) darkColors(
surface = Color(colorSurface.data),
primary = Color(colorPrimary.data),
) else lightColors(
surface = Color(colorSurface.data),
primary = Color(colorPrimary.data),
),
content = content
)
Mdc3Theme {
MdcTheme(content = content)
}
}