mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-23 11:22:12 +00:00
Update: LinkItems' drawable icons with compose
This commit is contained in:
parent
95095d3936
commit
84017bb9db
@ -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")
|
||||
)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
)
|
||||
|
||||
|
@ -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<LinkType> {
|
||||
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<LinkType> {
|
||||
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<LinkType> {
|
||||
}
|
||||
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<LinkType> {
|
||||
?.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<LinkType> {
|
||||
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<LinkType> {
|
||||
?.let {
|
||||
links.add(
|
||||
LinkType(
|
||||
R.drawable.ic_public,
|
||||
Phosphor.GlobeSimple,
|
||||
context.getString(R.string.project_website),
|
||||
Uri.parse(it)
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user