From 7bb2728b57a1f8f595500da6889a6463c985b3e3 Mon Sep 17 00:00:00 2001 From: Rahul Patel Date: Wed, 20 May 2026 13:20:51 +0530 Subject: [PATCH] favourites: add a check icon to indicate app is installed resolves: #1153 --- .../compose/composable/FavouriteListItem.kt | 33 ++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/aurora/store/compose/composable/FavouriteListItem.kt b/app/src/main/java/com/aurora/store/compose/composable/FavouriteListItem.kt index 7e357fa12..d7475849a 100644 --- a/app/src/main/java/com/aurora/store/compose/composable/FavouriteListItem.kt +++ b/app/src/main/java/com/aurora/store/compose/composable/FavouriteListItem.kt @@ -6,12 +6,16 @@ package com.aurora.store.compose.composable import android.text.format.DateUtils +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.requiredSize import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.layout.ContentScale @@ -29,7 +33,10 @@ import com.aurora.gplayapi.data.models.App import com.aurora.store.R import com.aurora.store.compose.preview.AppPreviewProvider import com.aurora.store.compose.preview.ThemePreviewProvider +import com.aurora.store.compose.theme.colorGreen +import com.aurora.store.compose.theme.colorRed import com.aurora.store.data.room.favourite.Favourite +import com.aurora.store.util.PackageUtil @Composable fun FavouriteListItem( @@ -39,6 +46,9 @@ fun FavouriteListItem( onClear: () -> Unit = {} ) { val context = LocalContext.current + val isInstalled = remember(favourite.packageName) { + PackageUtil.isInstalled(context, favourite.packageName) + } RemovableListItem(onRemove = onClear) { triggerRemove -> AuroraListItem( modifier = modifier, @@ -65,11 +75,26 @@ fun FavouriteListItem( ) }, trailing = { - IconButton(onClick = triggerRemove) { - Icon( - painter = painterResource(R.drawable.ic_favorite_checked), - contentDescription = stringResource(R.string.action_favourite) + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy( + dimensionResource(R.dimen.spacing_xsmall) ) + ) { + if (isInstalled) { + Icon( + painter = painterResource(R.drawable.ic_check), + contentDescription = stringResource(R.string.title_installed), + tint = colorGreen + ) + } + IconButton(onClick = triggerRemove) { + Icon( + painter = painterResource(R.drawable.ic_favorite_checked), + contentDescription = stringResource(R.string.action_favourite), + tint = colorRed + ) + } } } )