From 7bdaba5ac0772160575029fdc700a95052ddd302 Mon Sep 17 00:00:00 2001 From: machiav3lli Date: Wed, 5 Oct 2022 02:47:57 +0200 Subject: [PATCH] Update: PermissionItems' drawable placeholder icon with compose --- .../components/appsheet/PermissionsItem.kt | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/main/kotlin/com/machiav3lli/fdroid/ui/compose/components/appsheet/PermissionsItem.kt b/src/main/kotlin/com/machiav3lli/fdroid/ui/compose/components/appsheet/PermissionsItem.kt index 7b8b1b62..f4582dbf 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/ui/compose/components/appsheet/PermissionsItem.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/ui/compose/components/appsheet/PermissionsItem.kt @@ -6,6 +6,7 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme @@ -20,6 +21,8 @@ import androidx.compose.ui.unit.dp import coil.compose.rememberAsyncImagePainter import com.machiav3lli.fdroid.R import com.machiav3lli.fdroid.entity.PermissionsType +import com.machiav3lli.fdroid.ui.compose.icons.Phosphor +import com.machiav3lli.fdroid.ui.compose.icons.phosphor.ShieldStar import com.machiav3lli.fdroid.utility.getLabels @Composable @@ -30,6 +33,11 @@ fun PermissionsItem( ) { val context = LocalContext.current val pm = context.packageManager + val painter = if (permissionsType.group != null && permissionsType.group.icon != 0) { + rememberAsyncImagePainter(permissionsType.group.loadUnbadgedIcon(pm)) + } else { + null + } Row( modifier = modifier @@ -44,14 +52,16 @@ fun PermissionsItem( horizontalArrangement = Arrangement.spacedBy(8.dp), verticalAlignment = Alignment.Top ) { - Icon( - painter = rememberAsyncImagePainter( - model = if (permissionsType.group != null && permissionsType.group.icon != 0) { - permissionsType.group.loadUnbadgedIcon(pm) - } else { - null - } ?: (R.drawable.ic_perm_device_information) - ), + if (painter != null) + Icon( + painter = painter, + contentDescription = stringResource( + id = permissionsType.group?.descriptionRes ?: R.string.unknown + ) + ) + else Icon( + modifier = Modifier.size(24.dp), + imageVector = Phosphor.ShieldStar, contentDescription = stringResource( id = permissionsType.group?.descriptionRes ?: R.string.unknown )