compose: Tint info icon on trackers or compatibility issues

Use amber color to attract user's attention towards the issue

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2025-10-26 14:22:21 +08:00
parent 91a3aa08f9
commit 0650df41d6
4 changed files with 23 additions and 1 deletions

View File

@@ -12,11 +12,13 @@ import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Icon
import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.res.painterResource
@@ -36,6 +38,7 @@ import com.aurora.store.compose.preview.AppPreviewProvider
* @param title Title of the information
* @param description Information to show
* @param painter Optional painter to draw the icon
* @param tint Optional tint color for the icon
* @param onClick Callback when this composable is clicked
*/
@Composable
@@ -44,6 +47,7 @@ fun Info(
title: AnnotatedString,
description: AnnotatedString? = null,
painter: Painter? = null,
tint: Color = LocalContentColor.current,
onClick: (() -> Unit)? = null
) {
Row(
@@ -57,7 +61,7 @@ fun Info(
horizontalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_normal)),
verticalAlignment = Alignment.CenterVertically
) {
if (painter != null) Icon(painter = painter, contentDescription = null)
if (painter != null) Icon(painter = painter, contentDescription = null, tint = tint)
Column(modifier = Modifier.weight(1F)) {
Text(
text = title,

View File

@@ -0,0 +1,10 @@
/*
* SPDX-FileCopyrightText: 2025 The Calyx Institute
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.aurora.store.compose.theme
import androidx.compose.ui.graphics.Color
val warningColor = Color(0xFFFFA000) // Amber

View File

@@ -16,6 +16,7 @@ import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.composable.Header
import com.aurora.store.compose.composable.Info
import com.aurora.store.compose.theme.warningColor
import com.aurora.store.data.model.Scores
/**
@@ -48,6 +49,7 @@ fun Compatibility(needsGms: Boolean, plexusScores: Scores? = null) {
Info(
painter = painterResource(R.drawable.ic_menu_about),
tint = warningColor,
title = AnnotatedString(
text = stringResource(R.string.details_compatibility_gms_required_title)
),

View File

@@ -7,6 +7,7 @@ package com.aurora.store.compose.ui.details.components
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.material3.LocalContentColor
import androidx.compose.runtime.Composable
import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.res.painterResource
@@ -16,6 +17,7 @@ import androidx.compose.ui.tooling.preview.Preview
import com.aurora.store.R
import com.aurora.store.compose.composable.Header
import com.aurora.store.compose.composable.Info
import com.aurora.store.compose.theme.warningColor
import com.aurora.store.data.model.Report
/**
@@ -44,6 +46,10 @@ fun Privacy(report: Report?, onNavigateToDetailsExodus: (() -> Unit)? = null) {
Info(
painter = painterResource(R.drawable.ic_visibility),
tint = when {
report != null && report.trackers.isEmpty() -> LocalContentColor.current
else -> warningColor
},
title = AnnotatedString(text = reportStatus),
description = AnnotatedString(text = stringResource(R.string.exodus_tracker_desc))
)