Loading packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/row/BundleHeader.kt +5 −2 Original line number Original line Diff line number Diff line Loading @@ -24,8 +24,10 @@ import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.material3.Text Loading Loading @@ -175,14 +177,15 @@ private fun ContentScope.BundleHeaderContent( ) { ) { Row( Row( verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically, modifier = modifier.padding(vertical = 12.dp), modifier = modifier.height(48.dp).padding(vertical = 12.dp), ) { ) { BundleIcon( BundleIcon( viewModel.bundleIcon, viewModel.bundleIcon, large = false, // BundleHeader is always small large = false, // BundleHeader is always small modifier = modifier = Modifier.padding(start = 16.dp, end = 8.dp) Modifier.padding(start = 16.dp, end = 16.dp) .align(Alignment.CenterVertically) .align(Alignment.CenterVertically) .width(40.dp) // Has to be a shared element because we may have a semi-transparent background // Has to be a shared element because we may have a semi-transparent background .element(NotificationRowPrimitives.Elements.NotificationIconBackground), .element(NotificationRowPrimitives.Elements.NotificationIconBackground), ) ) Loading packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/row/NotificationRowColors.kt +7 −0 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,7 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable import androidx.compose.runtime.ReadOnlyComposable import androidx.compose.runtime.ReadOnlyComposable import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color import com.android.compose.theme.LocalAndroidColorScheme @Composable @Composable @ReadOnlyComposable @ReadOnlyComposable Loading Loading @@ -56,3 +57,9 @@ private fun blendARGB( alpha = color1.alpha * inverseRatio + color2.alpha * ratio, alpha = color1.alpha * inverseRatio + color2.alpha * ratio, ) ) } } @Composable @ReadOnlyComposable internal fun bundleHeaderIconBGColor(): Color { return LocalAndroidColorScheme.current.surfaceEffect2 } packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/row/NotificationRowPrimitives.kt +9 −3 Original line number Original line Diff line number Diff line Loading @@ -25,6 +25,7 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ExpandMore import androidx.compose.material.icons.filled.ExpandMore import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi Loading Loading @@ -67,13 +68,18 @@ object NotificationRowPrimitives { /** The Icon displayed at the start of any notification row. */ /** The Icon displayed at the start of any notification row. */ @Composable @Composable fun BundleIcon(@DrawableRes drawable: Int?, large: Boolean, modifier: Modifier = Modifier) { fun BundleIcon(@DrawableRes drawable: Int?, large: Boolean, modifier: Modifier = Modifier) { val iconBackground = notificationProtectionColor() val iconBackground = bundleHeaderIconBGColor() Box( Box( modifier = modifier = if (large) { if (large) { modifier.size(40.dp).background(color = iconBackground, shape = CircleShape) modifier.size(40.dp).background(color = iconBackground, shape = CircleShape) } else { } else { modifier.size(20.dp) modifier .size(24.dp) .background( color = iconBackground, shape = RoundedCornerShape(24.dp, 24.dp, 24.dp, 24.dp), ) } } ) { ) { if (drawable == null) return@Box if (drawable == null) return@Box Loading @@ -84,7 +90,7 @@ fun BundleIcon(@DrawableRes drawable: Int?, large: Boolean, modifier: Modifier = if (large) { if (large) { Modifier.fillMaxSize(.5f).align(Alignment.Center) Modifier.fillMaxSize(.5f).align(Alignment.Center) } else { } else { Modifier.padding(2.dp) Modifier.padding(2.dp).align(Alignment.Center) }, }, contentScale = ContentScale.Fit, contentScale = ContentScale.Fit, colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.primary), colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.primary), Loading Loading
packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/row/BundleHeader.kt +5 −2 Original line number Original line Diff line number Diff line Loading @@ -24,8 +24,10 @@ import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.material3.Text Loading Loading @@ -175,14 +177,15 @@ private fun ContentScope.BundleHeaderContent( ) { ) { Row( Row( verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically, modifier = modifier.padding(vertical = 12.dp), modifier = modifier.height(48.dp).padding(vertical = 12.dp), ) { ) { BundleIcon( BundleIcon( viewModel.bundleIcon, viewModel.bundleIcon, large = false, // BundleHeader is always small large = false, // BundleHeader is always small modifier = modifier = Modifier.padding(start = 16.dp, end = 8.dp) Modifier.padding(start = 16.dp, end = 16.dp) .align(Alignment.CenterVertically) .align(Alignment.CenterVertically) .width(40.dp) // Has to be a shared element because we may have a semi-transparent background // Has to be a shared element because we may have a semi-transparent background .element(NotificationRowPrimitives.Elements.NotificationIconBackground), .element(NotificationRowPrimitives.Elements.NotificationIconBackground), ) ) Loading
packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/row/NotificationRowColors.kt +7 −0 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,7 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable import androidx.compose.runtime.ReadOnlyComposable import androidx.compose.runtime.ReadOnlyComposable import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color import com.android.compose.theme.LocalAndroidColorScheme @Composable @Composable @ReadOnlyComposable @ReadOnlyComposable Loading Loading @@ -56,3 +57,9 @@ private fun blendARGB( alpha = color1.alpha * inverseRatio + color2.alpha * ratio, alpha = color1.alpha * inverseRatio + color2.alpha * ratio, ) ) } } @Composable @ReadOnlyComposable internal fun bundleHeaderIconBGColor(): Color { return LocalAndroidColorScheme.current.surfaceEffect2 }
packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/row/NotificationRowPrimitives.kt +9 −3 Original line number Original line Diff line number Diff line Loading @@ -25,6 +25,7 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ExpandMore import androidx.compose.material.icons.filled.ExpandMore import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi Loading Loading @@ -67,13 +68,18 @@ object NotificationRowPrimitives { /** The Icon displayed at the start of any notification row. */ /** The Icon displayed at the start of any notification row. */ @Composable @Composable fun BundleIcon(@DrawableRes drawable: Int?, large: Boolean, modifier: Modifier = Modifier) { fun BundleIcon(@DrawableRes drawable: Int?, large: Boolean, modifier: Modifier = Modifier) { val iconBackground = notificationProtectionColor() val iconBackground = bundleHeaderIconBGColor() Box( Box( modifier = modifier = if (large) { if (large) { modifier.size(40.dp).background(color = iconBackground, shape = CircleShape) modifier.size(40.dp).background(color = iconBackground, shape = CircleShape) } else { } else { modifier.size(20.dp) modifier .size(24.dp) .background( color = iconBackground, shape = RoundedCornerShape(24.dp, 24.dp, 24.dp, 24.dp), ) } } ) { ) { if (drawable == null) return@Box if (drawable == null) return@Box Loading @@ -84,7 +90,7 @@ fun BundleIcon(@DrawableRes drawable: Int?, large: Boolean, modifier: Modifier = if (large) { if (large) { Modifier.fillMaxSize(.5f).align(Alignment.Center) Modifier.fillMaxSize(.5f).align(Alignment.Center) } else { } else { Modifier.padding(2.dp) Modifier.padding(2.dp).align(Alignment.Center) }, }, contentScale = ContentScale.Fit, contentScale = ContentScale.Fit, colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.primary), colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.primary), Loading