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

Commit 158797c6 authored by Jiaming Cheng's avatar Jiaming Cheng Committed by Android (Google) Code Review
Browse files

Merge "[QSDetailedView] Polish the TileDetails UI" into main

parents 70d5d0cd f6c38078
Loading
Loading
Loading
Loading
+35 −6
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.systemui.qs.panels.ui.compose

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
@@ -23,11 +24,13 @@ import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material.icons.filled.Settings
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.IconButtonDefaults
import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
@@ -63,6 +66,7 @@ fun TileDetails(modifier: Modifier = Modifier, detailsViewModel: DetailsViewMode

    val title = tileDetailedViewModel.title
    val subTitle = tileDetailedViewModel.subTitle
    val colors = MaterialTheme.colorScheme

    Column(
        modifier =
@@ -70,20 +74,33 @@ fun TileDetails(modifier: Modifier = Modifier, detailsViewModel: DetailsViewMode
                .fillMaxWidth()
                // The height of the details view is TBD.
                .fillMaxHeight()
                .background(color = colors.onPrimary)
    ) {
        CompositionLocalProvider(
            value = LocalContentColor provides MaterialTheme.colorScheme.onSurfaceVariant
        ) {
            Row(
                modifier = Modifier.fillMaxWidth(),
                modifier = Modifier
                    .fillMaxWidth()
                    .padding(
                        start = TileDetailsDefaults.TitleRowStart,
                        top = TileDetailsDefaults.TitleRowTop,
                        end = TileDetailsDefaults.TitleRowEnd,
                        bottom = TileDetailsDefaults.TitleRowBottom
                    ),
                horizontalArrangement = Arrangement.SpaceBetween,
                verticalAlignment = Alignment.CenterVertically,
            ) {
                IconButton(
                    onClick = { detailsViewModel.closeDetailedView() },
                    colors = IconButtonDefaults.iconButtonColors(
                        contentColor = colors.onSurface
                    ),
                    modifier =
                        Modifier.align(Alignment.CenterVertically)
                        Modifier
                            .align(Alignment.CenterVertically)
                            .height(TileDetailsDefaults.IconHeight)
                            .width(TileDetailsDefaults.IconWidth)
                            .padding(start = TileDetailsDefaults.IconPadding),
                ) {
                    Icon(
@@ -96,13 +113,19 @@ fun TileDetails(modifier: Modifier = Modifier, detailsViewModel: DetailsViewMode
                    text = title,
                    modifier = Modifier.align(Alignment.CenterVertically),
                    textAlign = TextAlign.Center,
                    style = MaterialTheme.typography.titleLarge,
                    style = MaterialTheme.typography.titleMedium,
                    color = colors.onSurface,
                )
                IconButton(
                    onClick = { tileDetailedViewModel.clickOnSettingsButton() },
                    colors = IconButtonDefaults.iconButtonColors(
                        contentColor = colors.onSurface
                    ),
                    modifier =
                        Modifier.align(Alignment.CenterVertically)
                        Modifier
                            .align(Alignment.CenterVertically)
                            .height(TileDetailsDefaults.IconHeight)
                            .width(TileDetailsDefaults.IconWidth)
                            .padding(end = TileDetailsDefaults.IconPadding),
                ) {
                    Icon(
@@ -116,7 +139,8 @@ fun TileDetails(modifier: Modifier = Modifier, detailsViewModel: DetailsViewMode
                text = subTitle,
                modifier = Modifier.fillMaxWidth(),
                textAlign = TextAlign.Center,
                style = MaterialTheme.typography.titleSmall,
                style = MaterialTheme.typography.bodySmall,
                color = colors.onSurfaceVariant,
            )
        }
        MapTileDetailsContent(tileDetailedViewModel)
@@ -135,6 +159,11 @@ private fun MapTileDetailsContent(tileDetailsViewModel: TileDetailsViewModel) {
}

private object TileDetailsDefaults {
    val IconHeight = 48.dp
    val IconHeight = 24.dp
    val IconWidth = 24.dp
    val IconPadding = 4.dp
    val TitleRowStart = 14.dp
    val TitleRowTop = 22.dp
    val TitleRowEnd = 20.dp
    val TitleRowBottom = 8.dp
}