Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 814e1632 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Notification bundle header UI tweaks" into main

parents 33ad7f00 5902c5b9
Loading
Loading
Loading
Loading
+5 −2
Original line number Original line Diff line number Diff line
@@ -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
@@ -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),
        )
        )
+7 −0
Original line number Original line Diff line number Diff line
@@ -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
@@ -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
}
+9 −3
Original line number Original line Diff line number Diff line
@@ -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
@@ -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
@@ -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),