mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-23 19:32:16 +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.LinkItem
|
||||||
import com.machiav3lli.fdroid.ui.compose.components.appsheet.PermissionGrid
|
import com.machiav3lli.fdroid.ui.compose.components.appsheet.PermissionGrid
|
||||||
import com.machiav3lli.fdroid.ui.compose.components.appsheet.ReleaseItem
|
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.theme.AppTheme
|
||||||
import com.machiav3lli.fdroid.ui.compose.utils.CustomChip
|
import com.machiav3lli.fdroid.ui.compose.utils.CustomChip
|
||||||
import com.machiav3lli.fdroid.utility.SampleData
|
import com.machiav3lli.fdroid.utility.SampleData
|
||||||
@ -38,7 +40,7 @@ fun LinkItemPreview() {
|
|||||||
AppTheme(blackTheme = false) {
|
AppTheme(blackTheme = false) {
|
||||||
LinkItem(
|
LinkItem(
|
||||||
linkType = LinkType(
|
linkType = LinkType(
|
||||||
R.drawable.ic_email,
|
Phosphor.CurrencyDollarSimple,
|
||||||
stringResource(id = R.string.author_email),
|
stringResource(id = R.string.author_email),
|
||||||
Uri.parse("neostore@neoapps.com")
|
Uri.parse("neostore@neoapps.com")
|
||||||
)
|
)
|
||||||
|
@ -4,13 +4,19 @@ import android.content.Context
|
|||||||
import android.content.pm.PermissionGroupInfo
|
import android.content.pm.PermissionGroupInfo
|
||||||
import android.content.pm.PermissionInfo
|
import android.content.pm.PermissionInfo
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import androidx.annotation.DrawableRes
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import androidx.compose.ui.graphics.vector.ImageVector
|
import androidx.compose.ui.graphics.vector.ImageVector
|
||||||
import com.machiav3lli.fdroid.R
|
import com.machiav3lli.fdroid.R
|
||||||
import com.machiav3lli.fdroid.content.Preferences
|
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.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.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.Download
|
||||||
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.HeartStraight
|
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.HeartStraight
|
||||||
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.HeartStraightFill
|
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.HeartStraightFill
|
||||||
@ -128,19 +134,19 @@ sealed class ActionState(
|
|||||||
}
|
}
|
||||||
|
|
||||||
open class LinkType(
|
open class LinkType(
|
||||||
@DrawableRes val iconResId: Int,
|
val icon: ImageVector,
|
||||||
val title: String,
|
val title: String,
|
||||||
val link: Uri? = null
|
val link: Uri? = null
|
||||||
)
|
)
|
||||||
|
|
||||||
class DonateType(donate: Donate, context: Context) : LinkType(
|
class DonateType(donate: Donate, context: Context) : LinkType(
|
||||||
iconResId = when (donate) {
|
icon = when (donate) {
|
||||||
is Donate.Regular -> R.drawable.ic_donate_regular
|
is Donate.Regular -> Phosphor.CurrencyDollarSimple
|
||||||
is Donate.Bitcoin -> R.drawable.ic_donate_bitcoin
|
is Donate.Bitcoin -> Phosphor.CurrencyBTC
|
||||||
is Donate.Litecoin -> R.drawable.ic_donate_litecoin
|
is Donate.Litecoin -> Icon.IcDonateLitecoin
|
||||||
is Donate.Flattr -> R.drawable.ic_donate_flattr
|
is Donate.Flattr -> Icon.IcDonateFlattr
|
||||||
is Donate.Liberapay -> R.drawable.ic_donate_liberapay
|
is Donate.Liberapay -> Icon.IcDonateLiberapay
|
||||||
is Donate.OpenCollective -> R.drawable.ic_donate_opencollective
|
is Donate.OpenCollective -> Icon.IcDonateOpencollective
|
||||||
},
|
},
|
||||||
title = when (donate) {
|
title = when (donate) {
|
||||||
is Donate.Regular -> context.getString(R.string.website)
|
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.Row
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.layout.wrapContentSize
|
import androidx.compose.foundation.layout.wrapContentSize
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@ -16,7 +17,6 @@ import androidx.compose.runtime.Composable
|
|||||||
import androidx.compose.ui.Alignment
|
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.res.painterResource
|
|
||||||
import androidx.compose.ui.text.style.TextOverflow
|
import androidx.compose.ui.text.style.TextOverflow
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.machiav3lli.fdroid.entity.LinkType
|
import com.machiav3lli.fdroid.entity.LinkType
|
||||||
@ -41,7 +41,8 @@ fun LinkItem(
|
|||||||
verticalAlignment = Alignment.CenterVertically
|
verticalAlignment = Alignment.CenterVertically
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
painter = painterResource(id = linkType.iconResId),
|
modifier = Modifier.size(24.dp),
|
||||||
|
imageVector = linkType.icon,
|
||||||
contentDescription = linkType.title
|
contentDescription = linkType.title
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -54,6 +54,13 @@ import com.machiav3lli.fdroid.entity.LinkType
|
|||||||
import com.machiav3lli.fdroid.entity.PermissionsType
|
import com.machiav3lli.fdroid.entity.PermissionsType
|
||||||
import com.machiav3lli.fdroid.service.Connection
|
import com.machiav3lli.fdroid.service.Connection
|
||||||
import com.machiav3lli.fdroid.service.DownloadService
|
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.compose.utils.Callbacks
|
||||||
import com.machiav3lli.fdroid.ui.dialog.LaunchDialog
|
import com.machiav3lli.fdroid.ui.dialog.LaunchDialog
|
||||||
import com.machiav3lli.fdroid.ui.navigation.NavItem
|
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()) {
|
if (author.name.isNotEmpty() || author.web.isNotEmpty()) {
|
||||||
links.add(
|
links.add(
|
||||||
LinkType(
|
LinkType(
|
||||||
iconResId = R.drawable.ic_person,
|
icon = Phosphor.User,
|
||||||
title = author.name,
|
title = author.name,
|
||||||
link = author.web.nullIfEmpty()?.let(Uri::parse)
|
link = author.web.nullIfEmpty()?.let(Uri::parse)
|
||||||
)
|
)
|
||||||
@ -323,7 +330,7 @@ fun Product.generateLinks(context: Context): List<LinkType> {
|
|||||||
author.email.nullIfEmpty()?.let {
|
author.email.nullIfEmpty()?.let {
|
||||||
links.add(
|
links.add(
|
||||||
LinkType(
|
LinkType(
|
||||||
R.drawable.ic_email,
|
Phosphor.At,
|
||||||
context.getString(R.string.author_email),
|
context.getString(R.string.author_email),
|
||||||
Uri.parse("mailto:$it")
|
Uri.parse("mailto:$it")
|
||||||
)
|
)
|
||||||
@ -331,7 +338,7 @@ fun Product.generateLinks(context: Context): List<LinkType> {
|
|||||||
}
|
}
|
||||||
links.addAll(licenses.map {
|
links.addAll(licenses.map {
|
||||||
LinkType(
|
LinkType(
|
||||||
R.drawable.ic_copyright,
|
Phosphor.Copyleft,
|
||||||
it,
|
it,
|
||||||
Uri.parse("https://spdx.org/licenses/$it.html")
|
Uri.parse("https://spdx.org/licenses/$it.html")
|
||||||
)
|
)
|
||||||
@ -340,7 +347,7 @@ fun Product.generateLinks(context: Context): List<LinkType> {
|
|||||||
?.let {
|
?.let {
|
||||||
links.add(
|
links.add(
|
||||||
LinkType(
|
LinkType(
|
||||||
R.drawable.ic_bug_report,
|
Phosphor.Bug,
|
||||||
context.getString(R.string.bug_tracker),
|
context.getString(R.string.bug_tracker),
|
||||||
Uri.parse(it)
|
Uri.parse(it)
|
||||||
)
|
)
|
||||||
@ -349,7 +356,7 @@ fun Product.generateLinks(context: Context): List<LinkType> {
|
|||||||
changelog.nullIfEmpty()?.let {
|
changelog.nullIfEmpty()?.let {
|
||||||
links.add(
|
links.add(
|
||||||
LinkType(
|
LinkType(
|
||||||
R.drawable.ic_history,
|
Phosphor.ArrowsClockwise,
|
||||||
context.getString(R.string.changelog),
|
context.getString(R.string.changelog),
|
||||||
Uri.parse(it)
|
Uri.parse(it)
|
||||||
)
|
)
|
||||||
@ -359,7 +366,7 @@ fun Product.generateLinks(context: Context): List<LinkType> {
|
|||||||
?.let {
|
?.let {
|
||||||
links.add(
|
links.add(
|
||||||
LinkType(
|
LinkType(
|
||||||
R.drawable.ic_public,
|
Phosphor.GlobeSimple,
|
||||||
context.getString(R.string.project_website),
|
context.getString(R.string.project_website),
|
||||||
Uri.parse(it)
|
Uri.parse(it)
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user