favourites: add a check icon to indicate app is installed
resolves: #1153
This commit is contained in:
@@ -6,12 +6,16 @@
|
|||||||
package com.aurora.store.compose.composable
|
package com.aurora.store.compose.composable
|
||||||
|
|
||||||
import android.text.format.DateUtils
|
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.layout.requiredSize
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.remember
|
||||||
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
import androidx.compose.ui.layout.ContentScale
|
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.R
|
||||||
import com.aurora.store.compose.preview.AppPreviewProvider
|
import com.aurora.store.compose.preview.AppPreviewProvider
|
||||||
import com.aurora.store.compose.preview.ThemePreviewProvider
|
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.data.room.favourite.Favourite
|
||||||
|
import com.aurora.store.util.PackageUtil
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun FavouriteListItem(
|
fun FavouriteListItem(
|
||||||
@@ -39,6 +46,9 @@ fun FavouriteListItem(
|
|||||||
onClear: () -> Unit = {}
|
onClear: () -> Unit = {}
|
||||||
) {
|
) {
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
|
val isInstalled = remember(favourite.packageName) {
|
||||||
|
PackageUtil.isInstalled(context, favourite.packageName)
|
||||||
|
}
|
||||||
RemovableListItem(onRemove = onClear) { triggerRemove ->
|
RemovableListItem(onRemove = onClear) { triggerRemove ->
|
||||||
AuroraListItem(
|
AuroraListItem(
|
||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
@@ -65,13 +75,28 @@ fun FavouriteListItem(
|
|||||||
)
|
)
|
||||||
},
|
},
|
||||||
trailing = {
|
trailing = {
|
||||||
|
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) {
|
IconButton(onClick = triggerRemove) {
|
||||||
Icon(
|
Icon(
|
||||||
painter = painterResource(R.drawable.ic_favorite_checked),
|
painter = painterResource(R.drawable.ic_favorite_checked),
|
||||||
contentDescription = stringResource(R.string.action_favourite)
|
contentDescription = stringResource(R.string.action_favourite),
|
||||||
|
tint = colorRed
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user