Skip to content

Commit fab475a

Browse files
Google AI Edge Gallerycopybara-github
authored andcommitted
Update home page with the new design and colors to GM3 baseline.
PiperOrigin-RevId: 784712094
1 parent 7013c03 commit fab475a

27 files changed

+551
-485
lines changed

Android/src/app/src/main/java/com/google/ai/edge/gallery/GalleryAppTopBar.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ import androidx.compose.ui.Modifier
4444
import androidx.compose.ui.graphics.Color
4545
import androidx.compose.ui.res.painterResource
4646
import androidx.compose.ui.res.stringResource
47-
import androidx.compose.ui.text.font.FontWeight
4847
import androidx.compose.ui.unit.dp
4948
import androidx.compose.ui.unit.sp
5049
import com.google.ai.edge.gallery.data.AppBarAction
@@ -61,7 +60,7 @@ fun GalleryTopAppBar(
6160
scrollBehavior: TopAppBarScrollBehavior? = null,
6261
subtitle: String = "",
6362
) {
64-
val titleColor = MaterialTheme.colorScheme.primary
63+
val titleColor = MaterialTheme.colorScheme.onSurface
6564
CenterAlignedTopAppBar(
6665
title = {
6766
Column(horizontalAlignment = Alignment.CenterHorizontally) {
@@ -81,9 +80,9 @@ fun GalleryTopAppBar(
8180
text = title,
8281
maxLines = 1,
8382
color = { titleColor },
84-
style = MaterialTheme.typography.titleLarge.copy(fontWeight = FontWeight.SemiBold),
83+
style = MaterialTheme.typography.titleMedium,
8584
autoSize =
86-
TextAutoSize.StepBased(minFontSize = 14.sp, maxFontSize = 22.sp, stepSize = 1.sp),
85+
TextAutoSize.StepBased(minFontSize = 14.sp, maxFontSize = 16.sp, stepSize = 1.sp),
8786
)
8887
}
8988
if (subtitle.isNotEmpty()) {
@@ -136,7 +135,7 @@ fun GalleryTopAppBar(
136135
Icon(
137136
imageVector = Icons.Rounded.Settings,
138137
contentDescription = "",
139-
tint = MaterialTheme.colorScheme.primary,
138+
tint = MaterialTheme.colorScheme.onSurface,
140139
)
141140
}
142141
}

Android/src/app/src/main/java/com/google/ai/edge/gallery/ui/common/ClickableLink.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ fun ClickableLink(url: String, linkText: String, icon: ImageVector) {
6363
Text(
6464
text = annotatedText,
6565
textAlign = TextAlign.Center,
66-
style = MaterialTheme.typography.bodyLarge,
66+
style = MaterialTheme.typography.bodyMedium,
6767
modifier =
6868
Modifier.padding(start = 6.dp).clickable {
6969
uriHandler.openUri(url)

Android/src/app/src/main/java/com/google/ai/edge/gallery/ui/common/ColorUtils.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ fun getTaskBgColor(task: Task): Color {
2828
return MaterialTheme.customColors.taskBgColors[colorIndex]
2929
}
3030

31+
@Composable
32+
fun getTaskBgGradientColors(task: Task): List<Color> {
33+
val colorIndex: Int = task.index % MaterialTheme.customColors.taskBgColors.size
34+
return MaterialTheme.customColors.taskBgGradientColors[colorIndex]
35+
}
36+
3137
@Composable
3238
fun getTaskIconColor(task: Task): Color {
3339
val colorIndex: Int = task.index % MaterialTheme.customColors.taskIconColors.size

Android/src/app/src/main/java/com/google/ai/edge/gallery/ui/common/MarkdownText.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import androidx.compose.material3.ProvideTextStyle
2121
import androidx.compose.runtime.Composable
2222
import androidx.compose.runtime.CompositionLocalProvider
2323
import androidx.compose.ui.Modifier
24+
import androidx.compose.ui.graphics.Color
2425
import androidx.compose.ui.text.SpanStyle
2526
import androidx.compose.ui.text.TextLinkStyles
2627
import androidx.compose.ui.text.TextStyle
@@ -34,12 +35,19 @@ import com.halilibo.richtext.ui.string.RichTextStringStyle
3435

3536
/** Composable function to display Markdown-formatted text. */
3637
@Composable
37-
fun MarkdownText(text: String, modifier: Modifier = Modifier, smallFontSize: Boolean = false) {
38+
fun MarkdownText(
39+
text: String,
40+
modifier: Modifier = Modifier,
41+
smallFontSize: Boolean = false,
42+
textColor: Color = MaterialTheme.colorScheme.onSurface,
43+
) {
3844
val fontSize =
3945
if (smallFontSize) MaterialTheme.typography.bodyMedium.fontSize
4046
else MaterialTheme.typography.bodyLarge.fontSize
4147
CompositionLocalProvider {
42-
ProvideTextStyle(value = TextStyle(fontSize = fontSize, lineHeight = fontSize * 1.3)) {
48+
ProvideTextStyle(
49+
value = TextStyle(fontSize = fontSize, lineHeight = fontSize * 1.3, color = textColor)
50+
) {
4351
RichText(
4452
modifier = modifier,
4553
style =

Android/src/app/src/main/java/com/google/ai/edge/gallery/ui/common/ModelPageAppBar.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ import androidx.compose.ui.draw.clip
4848
import androidx.compose.ui.graphics.vector.ImageVector
4949
import androidx.compose.ui.platform.LocalContext
5050
import androidx.compose.ui.res.vectorResource
51-
import androidx.compose.ui.text.font.FontWeight
5251
import androidx.compose.ui.unit.dp
5352
import com.google.ai.edge.gallery.data.Model
5453
import com.google.ai.edge.gallery.data.ModelDownloadStatusType
@@ -100,7 +99,7 @@ fun ModelPageAppBar(
10099
)
101100
Text(
102101
task.type.label,
103-
style = MaterialTheme.typography.titleMedium.copy(fontWeight = FontWeight.SemiBold),
102+
style = MaterialTheme.typography.titleMedium,
104103
color = getTaskIconColor(task = task),
105104
)
106105
}
@@ -144,7 +143,7 @@ fun ModelPageAppBar(
144143
Icon(
145144
imageVector = Icons.Rounded.Tune,
146145
contentDescription = "",
147-
tint = MaterialTheme.colorScheme.primary,
146+
tint = MaterialTheme.colorScheme.onSurface,
148147
modifier = Modifier.size(20.dp),
149148
)
150149
}
@@ -173,7 +172,7 @@ fun ModelPageAppBar(
173172
Icon(
174173
imageVector = Icons.Rounded.MapsUgc,
175174
contentDescription = "",
176-
tint = MaterialTheme.colorScheme.primary,
175+
tint = MaterialTheme.colorScheme.onSurface,
177176
modifier = Modifier.size(20.dp),
178177
)
179178
}

Android/src/app/src/main/java/com/google/ai/edge/gallery/ui/common/TaskIcon.kt

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,15 @@ import androidx.compose.foundation.layout.fillMaxSize
2525
import androidx.compose.foundation.layout.size
2626
import androidx.compose.foundation.layout.width
2727
import androidx.compose.material3.Icon
28-
import androidx.compose.material3.MaterialTheme
2928
import androidx.compose.runtime.Composable
3029
import androidx.compose.ui.Alignment
3130
import androidx.compose.ui.Modifier
32-
import androidx.compose.ui.draw.alpha
31+
import androidx.compose.ui.draw.drawWithContent
3332
import androidx.compose.ui.graphics.BlendMode
33+
import androidx.compose.ui.graphics.Brush
3434
import androidx.compose.ui.graphics.Color
35-
import androidx.compose.ui.graphics.ColorFilter
35+
import androidx.compose.ui.graphics.CompositingStrategy
36+
import androidx.compose.ui.graphics.graphicsLayer
3637
import androidx.compose.ui.graphics.painter.Painter
3738
import androidx.compose.ui.graphics.vector.ImageVector
3839
import androidx.compose.ui.layout.ContentScale
@@ -46,10 +47,18 @@ import com.google.ai.edge.gallery.data.TASKS
4647
import com.google.ai.edge.gallery.data.TASK_LLM_CHAT
4748
import com.google.ai.edge.gallery.data.Task
4849
import com.google.ai.edge.gallery.ui.theme.GalleryTheme
49-
import com.google.ai.edge.gallery.ui.theme.customColors
5050

5151
private val SHAPES: List<Int> =
52-
listOf(R.drawable.pantegon, R.drawable.double_circle, R.drawable.circle, R.drawable.four_circle)
52+
listOf(
53+
// Ask image.
54+
R.drawable.circle,
55+
// Audio scribe
56+
R.drawable.double_circle,
57+
// Prompt lab
58+
R.drawable.pantegon,
59+
// AI chat,
60+
R.drawable.four_circle,
61+
)
5362

5463
/**
5564
* Composable that displays an icon representing a task. It consists of a background image and a
@@ -58,21 +67,27 @@ private val SHAPES: List<Int> =
5867
@Composable
5968
fun TaskIcon(task: Task, modifier: Modifier = Modifier, width: Dp = 56.dp) {
6069
Box(modifier = modifier.width(width).aspectRatio(1f), contentAlignment = Alignment.Center) {
70+
val brush = Brush.linearGradient(colors = getTaskBgGradientColors(task = task))
6171
Image(
6272
painter = getTaskIconBgShape(task = task),
6373
contentDescription = "",
64-
modifier = Modifier.fillMaxSize().alpha(0.6f),
65-
contentScale = ContentScale.Fit,
66-
colorFilter =
67-
ColorFilter.tint(
68-
MaterialTheme.customColors.taskIconShapeBgColor,
69-
blendMode = BlendMode.SrcIn,
70-
),
74+
modifier =
75+
Modifier.fillMaxSize()
76+
.graphicsLayer(
77+
// This is important to make blending mode work.
78+
alpha = 0.99f,
79+
compositingStrategy = CompositingStrategy.Offscreen,
80+
)
81+
.drawWithContent {
82+
drawContent()
83+
drawRect(brush = brush, blendMode = BlendMode.SrcIn)
84+
},
85+
contentScale = ContentScale.FillHeight,
7186
)
7287
Icon(
7388
task.icon ?: ImageVector.vectorResource(task.iconVectorResourceId!!),
74-
tint = getTaskIconColor(task = task),
75-
modifier = Modifier.size(width * 0.6f),
89+
tint = Color.White,
90+
modifier = Modifier.size(width * 0.55f),
7691
contentDescription = "",
7792
)
7893
}

Android/src/app/src/main/java/com/google/ai/edge/gallery/ui/common/TosSheet.kt

Lines changed: 0 additions & 144 deletions
This file was deleted.

Android/src/app/src/main/java/com/google/ai/edge/gallery/ui/common/chat/MessageBodyText.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import androidx.compose.material3.Text
2525
import androidx.compose.runtime.Composable
2626
import androidx.compose.ui.Modifier
2727
import androidx.compose.ui.graphics.Color
28-
import androidx.compose.ui.text.font.FontWeight
2928
import androidx.compose.ui.unit.dp
3029
import com.google.ai.edge.gallery.ui.common.MarkdownText
3130

@@ -35,7 +34,7 @@ fun MessageBodyText(message: ChatMessageText) {
3534
if (message.side == ChatSide.USER) {
3635
Text(
3736
message.content,
38-
style = MaterialTheme.typography.bodyLarge.copy(fontWeight = FontWeight.Medium),
37+
style = MaterialTheme.typography.bodyLarge,
3938
color = Color.White,
4039
modifier = Modifier.padding(12.dp),
4140
)
@@ -45,7 +44,7 @@ fun MessageBodyText(message: ChatMessageText) {
4544
} else {
4645
Text(
4746
message.content,
48-
style = MaterialTheme.typography.bodyMedium.copy(fontWeight = FontWeight.Medium),
47+
style = MaterialTheme.typography.bodyMedium,
4948
color = MaterialTheme.colorScheme.onSurface,
5049
modifier = Modifier.padding(12.dp),
5150
)

Android/src/app/src/main/java/com/google/ai/edge/gallery/ui/common/chat/MessageInputText.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,7 @@ fun MessageInputText(
528528
Icons.AutoMirrored.Rounded.Send,
529529
contentDescription = "",
530530
modifier = Modifier.offset(x = 2.dp),
531-
tint = MaterialTheme.colorScheme.primary,
531+
tint = MaterialTheme.colorScheme.onSurface,
532532
)
533533
}
534534
}

Android/src/app/src/main/java/com/google/ai/edge/gallery/ui/common/chat/ModelDownloadingAnimation.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ fun ModelDownloadingAnimation(
219219
}
220220
Text(
221221
sizeLabel,
222-
color = MaterialTheme.colorScheme.secondary,
222+
color = MaterialTheme.colorScheme.onSurfaceVariant,
223223
style = MaterialTheme.typography.labelMedium,
224224
textAlign = TextAlign.Center,
225225
overflow = TextOverflow.Visible,

0 commit comments

Comments
 (0)