diff --git a/src/debug/java/Previews.kt b/src/debug/java/Previews.kt index 727b500f..9d3c67a3 100644 --- a/src/debug/java/Previews.kt +++ b/src/debug/java/Previews.kt @@ -9,6 +9,8 @@ import com.machiav3lli.fdroid.ui.compose.components.appsheet.AntiFeaturesGrid import com.machiav3lli.fdroid.ui.compose.components.appsheet.LinkItem import com.machiav3lli.fdroid.ui.compose.components.appsheet.PermissionGrid import com.machiav3lli.fdroid.ui.compose.components.appsheet.ReleaseItem +import com.machiav3lli.fdroid.ui.compose.icons.Phosphor +import com.machiav3lli.fdroid.ui.compose.icons.phosphor.CurrencyDollarSimple import com.machiav3lli.fdroid.ui.compose.theme.AppTheme import com.machiav3lli.fdroid.ui.compose.utils.CustomChip import com.machiav3lli.fdroid.utility.SampleData @@ -38,7 +40,7 @@ fun LinkItemPreview() { AppTheme(blackTheme = false) { LinkItem( linkType = LinkType( - R.drawable.ic_email, + Phosphor.CurrencyDollarSimple, stringResource(id = R.string.author_email), Uri.parse("neostore@neoapps.com") ) diff --git a/src/main/kotlin/com/machiav3lli/fdroid/entity/SubEntities.kt b/src/main/kotlin/com/machiav3lli/fdroid/entity/SubEntities.kt index e415192e..e08d9c30 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/entity/SubEntities.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/entity/SubEntities.kt @@ -4,13 +4,19 @@ import android.content.Context import android.content.pm.PermissionGroupInfo import android.content.pm.PermissionInfo import android.net.Uri -import androidx.annotation.DrawableRes import androidx.annotation.StringRes import androidx.compose.ui.graphics.vector.ImageVector import com.machiav3lli.fdroid.R import com.machiav3lli.fdroid.content.Preferences +import com.machiav3lli.fdroid.ui.compose.icons.Icon import com.machiav3lli.fdroid.ui.compose.icons.Phosphor +import com.machiav3lli.fdroid.ui.compose.icons.icon.IcDonateFlattr +import com.machiav3lli.fdroid.ui.compose.icons.icon.IcDonateLiberapay +import com.machiav3lli.fdroid.ui.compose.icons.icon.IcDonateLitecoin +import com.machiav3lli.fdroid.ui.compose.icons.icon.IcDonateOpencollective import com.machiav3lli.fdroid.ui.compose.icons.phosphor.ArrowSquareOut +import com.machiav3lli.fdroid.ui.compose.icons.phosphor.CurrencyBTC +import com.machiav3lli.fdroid.ui.compose.icons.phosphor.CurrencyDollarSimple import com.machiav3lli.fdroid.ui.compose.icons.phosphor.Download import com.machiav3lli.fdroid.ui.compose.icons.phosphor.HeartStraight import com.machiav3lli.fdroid.ui.compose.icons.phosphor.HeartStraightFill @@ -128,19 +134,19 @@ sealed class ActionState( } open class LinkType( - @DrawableRes val iconResId: Int, + val icon: ImageVector, val title: String, val link: Uri? = null ) class DonateType(donate: Donate, context: Context) : LinkType( - iconResId = when (donate) { - is Donate.Regular -> R.drawable.ic_donate_regular - is Donate.Bitcoin -> R.drawable.ic_donate_bitcoin - is Donate.Litecoin -> R.drawable.ic_donate_litecoin - is Donate.Flattr -> R.drawable.ic_donate_flattr - is Donate.Liberapay -> R.drawable.ic_donate_liberapay - is Donate.OpenCollective -> R.drawable.ic_donate_opencollective + icon = when (donate) { + is Donate.Regular -> Phosphor.CurrencyDollarSimple + is Donate.Bitcoin -> Phosphor.CurrencyBTC + is Donate.Litecoin -> Icon.IcDonateLitecoin + is Donate.Flattr -> Icon.IcDonateFlattr + is Donate.Liberapay -> Icon.IcDonateLiberapay + is Donate.OpenCollective -> Icon.IcDonateOpencollective }, title = when (donate) { is Donate.Regular -> context.getString(R.string.website) diff --git a/src/main/kotlin/com/machiav3lli/fdroid/ui/compose/components/appsheet/LinkItem.kt b/src/main/kotlin/com/machiav3lli/fdroid/ui/compose/components/appsheet/LinkItem.kt index 67e00d78..567c8386 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/ui/compose/components/appsheet/LinkItem.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/ui/compose/components/appsheet/LinkItem.kt @@ -8,6 +8,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 @@ -16,7 +17,6 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip -import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import com.machiav3lli.fdroid.entity.LinkType @@ -41,7 +41,8 @@ fun LinkItem( verticalAlignment = Alignment.CenterVertically ) { Icon( - painter = painterResource(id = linkType.iconResId), + modifier = Modifier.size(24.dp), + imageVector = linkType.icon, contentDescription = linkType.title ) diff --git a/src/main/kotlin/com/machiav3lli/fdroid/utility/Utils.kt b/src/main/kotlin/com/machiav3lli/fdroid/utility/Utils.kt index 8dccbcb7..6620f4ec 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/utility/Utils.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/utility/Utils.kt @@ -54,6 +54,13 @@ import com.machiav3lli.fdroid.entity.LinkType import com.machiav3lli.fdroid.entity.PermissionsType import com.machiav3lli.fdroid.service.Connection import com.machiav3lli.fdroid.service.DownloadService +import com.machiav3lli.fdroid.ui.compose.icons.Phosphor +import com.machiav3lli.fdroid.ui.compose.icons.phosphor.ArrowsClockwise +import com.machiav3lli.fdroid.ui.compose.icons.phosphor.At +import com.machiav3lli.fdroid.ui.compose.icons.phosphor.Bug +import com.machiav3lli.fdroid.ui.compose.icons.phosphor.Copyleft +import com.machiav3lli.fdroid.ui.compose.icons.phosphor.GlobeSimple +import com.machiav3lli.fdroid.ui.compose.icons.phosphor.User import com.machiav3lli.fdroid.ui.compose.utils.Callbacks import com.machiav3lli.fdroid.ui.dialog.LaunchDialog import com.machiav3lli.fdroid.ui.navigation.NavItem @@ -314,7 +321,7 @@ fun Product.generateLinks(context: Context): List { if (author.name.isNotEmpty() || author.web.isNotEmpty()) { links.add( LinkType( - iconResId = R.drawable.ic_person, + icon = Phosphor.User, title = author.name, link = author.web.nullIfEmpty()?.let(Uri::parse) ) @@ -323,7 +330,7 @@ fun Product.generateLinks(context: Context): List { author.email.nullIfEmpty()?.let { links.add( LinkType( - R.drawable.ic_email, + Phosphor.At, context.getString(R.string.author_email), Uri.parse("mailto:$it") ) @@ -331,7 +338,7 @@ fun Product.generateLinks(context: Context): List { } links.addAll(licenses.map { LinkType( - R.drawable.ic_copyright, + Phosphor.Copyleft, it, Uri.parse("https://spdx.org/licenses/$it.html") ) @@ -340,7 +347,7 @@ fun Product.generateLinks(context: Context): List { ?.let { links.add( LinkType( - R.drawable.ic_bug_report, + Phosphor.Bug, context.getString(R.string.bug_tracker), Uri.parse(it) ) @@ -349,7 +356,7 @@ fun Product.generateLinks(context: Context): List { changelog.nullIfEmpty()?.let { links.add( LinkType( - R.drawable.ic_history, + Phosphor.ArrowsClockwise, context.getString(R.string.changelog), Uri.parse(it) ) @@ -359,7 +366,7 @@ fun Product.generateLinks(context: Context): List { ?.let { links.add( LinkType( - R.drawable.ic_public, + Phosphor.GlobeSimple, context.getString(R.string.project_website), Uri.parse(it) )