Loading packages/SystemUI/compose/features/src/com/android/systemui/common/ui/compose/Icon.kt +4 −9 Original line number Diff line number Diff line Loading @@ -19,30 +19,25 @@ package com.android.systemui.common.ui.compose import androidx.compose.material3.Icon import androidx.compose.material3.LocalContentColor import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.res.painterResource import androidx.core.graphics.drawable.toBitmap import com.android.compose.ui.graphics.painter.rememberDrawablePainter import com.android.systemui.common.shared.model.Icon /** * Icon composable that draws [icon] using [tint]. * * Note: You can use [Color.Unspecified] to disable the tint and keep the original icon colors. * Note: Some drawables aren't compatible with [rememberDrawablePainter], used here for * [Icon.Loaded] icons, and won't be resized from their intrinsic size (b/394738023). */ @Composable fun Icon(icon: Icon, modifier: Modifier = Modifier, tint: Color = LocalContentColor.current) { val contentDescription = icon.contentDescription?.load() when (icon) { is Icon.Loaded -> { Icon( remember(icon.drawable) { icon.drawable.toBitmap().asImageBitmap() }, contentDescription, modifier, tint, ) Icon(rememberDrawablePainter(icon.drawable), contentDescription, modifier, tint) } is Icon.Resource -> Icon(painterResource(icon.res), contentDescription, modifier, tint) } Loading packages/SystemUI/compose/features/src/com/android/systemui/qs/footer/ui/compose/FooterActions.kt +16 −1 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.layout.layout import androidx.compose.ui.platform.LocalContext Loading @@ -68,6 +69,7 @@ import androidx.compose.ui.unit.constrainWidth import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.em import androidx.compose.ui.unit.sp import androidx.core.graphics.drawable.toBitmap import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.compose.collectAsStateWithLifecycle Loading @@ -81,6 +83,7 @@ import com.android.systemui.Flags.notificationShadeBlur import com.android.systemui.animation.Expandable import com.android.systemui.common.shared.model.Icon import com.android.systemui.common.ui.compose.Icon import com.android.systemui.common.ui.compose.load import com.android.systemui.compose.modifiers.sysuiResTag import com.android.systemui.qs.flags.QSComposeFragment import com.android.systemui.qs.flags.QsInCompose Loading Loading @@ -350,7 +353,19 @@ fun IconButton( ), useModifierBasedImplementation = useModifierBasedExpandable, ) { Icon(model.icon, tint = colors.icon, modifier = Modifier.size(20.dp)) FooterIcon(model.icon, Modifier.size(20.dp), colors.icon) } } // TODO(b/394738023): Use com.android.systemui.common.ui.compose.Icon instead @Composable private fun FooterIcon(icon: Icon, modifier: Modifier = Modifier, tint: Color) { val contentDescription = icon.contentDescription?.load() when (icon) { is Icon.Loaded -> { Icon(icon.drawable.toBitmap().asImageBitmap(), contentDescription, modifier, tint) } is Icon.Resource -> Icon(painterResource(icon.res), contentDescription, modifier, tint) } } Loading Loading
packages/SystemUI/compose/features/src/com/android/systemui/common/ui/compose/Icon.kt +4 −9 Original line number Diff line number Diff line Loading @@ -19,30 +19,25 @@ package com.android.systemui.common.ui.compose import androidx.compose.material3.Icon import androidx.compose.material3.LocalContentColor import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.res.painterResource import androidx.core.graphics.drawable.toBitmap import com.android.compose.ui.graphics.painter.rememberDrawablePainter import com.android.systemui.common.shared.model.Icon /** * Icon composable that draws [icon] using [tint]. * * Note: You can use [Color.Unspecified] to disable the tint and keep the original icon colors. * Note: Some drawables aren't compatible with [rememberDrawablePainter], used here for * [Icon.Loaded] icons, and won't be resized from their intrinsic size (b/394738023). */ @Composable fun Icon(icon: Icon, modifier: Modifier = Modifier, tint: Color = LocalContentColor.current) { val contentDescription = icon.contentDescription?.load() when (icon) { is Icon.Loaded -> { Icon( remember(icon.drawable) { icon.drawable.toBitmap().asImageBitmap() }, contentDescription, modifier, tint, ) Icon(rememberDrawablePainter(icon.drawable), contentDescription, modifier, tint) } is Icon.Resource -> Icon(painterResource(icon.res), contentDescription, modifier, tint) } Loading
packages/SystemUI/compose/features/src/com/android/systemui/qs/footer/ui/compose/FooterActions.kt +16 −1 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.layout.layout import androidx.compose.ui.platform.LocalContext Loading @@ -68,6 +69,7 @@ import androidx.compose.ui.unit.constrainWidth import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.em import androidx.compose.ui.unit.sp import androidx.core.graphics.drawable.toBitmap import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.compose.collectAsStateWithLifecycle Loading @@ -81,6 +83,7 @@ import com.android.systemui.Flags.notificationShadeBlur import com.android.systemui.animation.Expandable import com.android.systemui.common.shared.model.Icon import com.android.systemui.common.ui.compose.Icon import com.android.systemui.common.ui.compose.load import com.android.systemui.compose.modifiers.sysuiResTag import com.android.systemui.qs.flags.QSComposeFragment import com.android.systemui.qs.flags.QsInCompose Loading Loading @@ -350,7 +353,19 @@ fun IconButton( ), useModifierBasedImplementation = useModifierBasedExpandable, ) { Icon(model.icon, tint = colors.icon, modifier = Modifier.size(20.dp)) FooterIcon(model.icon, Modifier.size(20.dp), colors.icon) } } // TODO(b/394738023): Use com.android.systemui.common.ui.compose.Icon instead @Composable private fun FooterIcon(icon: Icon, modifier: Modifier = Modifier, tint: Color) { val contentDescription = icon.contentDescription?.load() when (icon) { is Icon.Loaded -> { Icon(icon.drawable.toBitmap().asImageBitmap(), contentDescription, modifier, tint) } is Icon.Resource -> Icon(painterResource(icon.res), contentDescription, modifier, tint) } } Loading