From 1f60d39cbf3493940301d5c7a3bd05a04583a77a Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Mon, 25 Mar 2024 16:02:36 -0400 Subject: [PATCH] turning hashtag icons into programmable vectors --- .../amethyst/model/HashtagIcon.kt | 49 +- .../amethyst/ui/components/CashuRedeem.kt | 7 +- .../amethyst/ui/components/InvoicePreview.kt | 5 +- .../amethyst/ui/components/InvoiceRequest.kt | 5 +- .../amethyst/ui/components/RichTextViewer.kt | 3 +- .../ui/components/ZapRaiserRequest.kt | 5 +- .../vitorpamplona/amethyst/ui/note/Icons.kt | 4 +- .../ui/note/NIP05VerificationDisplay.kt | 6 +- app/src/main/res/drawable-hdpi/ht_btc.png | Bin 13112 -> 0 bytes app/src/main/res/drawable-hdpi/ht_nostr.png | Bin 13853 -> 0 bytes app/src/main/res/drawable-mdpi/ht_btc.png | Bin 11159 -> 0 bytes app/src/main/res/drawable-mdpi/ht_nostr.png | Bin 12655 -> 0 bytes app/src/main/res/drawable-xhdpi/ht_btc.png | Bin 5665 -> 0 bytes app/src/main/res/drawable-xhdpi/ht_nostr.png | Bin 15194 -> 0 bytes app/src/main/res/drawable-xxhdpi/ht_btc.png | Bin 7347 -> 0 bytes app/src/main/res/drawable-xxhdpi/ht_nostr.png | Bin 15983 -> 0 bytes app/src/main/res/drawable-xxxhdpi/ht_btc.png | Bin 10835 -> 0 bytes .../main/res/drawable-xxxhdpi/ht_nostr.png | Bin 17079 -> 0 bytes app/src/main/res/drawable/black_heart.xml | 21 - app/src/main/res/drawable/cashu.xml | 11 - app/src/main/res/drawable/coffee.xml | 29 - app/src/main/res/drawable/footstr.xml | 5 - app/src/main/res/drawable/grownostr.xml | 31 - app/src/main/res/drawable/lightning.xml | 15 - app/src/main/res/drawable/plebs.xml | 11 - app/src/main/res/drawable/skull.xml | 63 -- app/src/main/res/drawable/tunestr.xml | 31 - app/src/main/res/drawable/weed.xml | 7 - app/src/main/res/drawable/zap.xml | 9 - .../amethyst/commons/hashtags/Amethyst.kt | 137 +++++ .../amethyst/commons/hashtags/Btc.kt | 126 ++++ .../amethyst/commons/hashtags/Cashu.kt | 282 +++++++++ .../amethyst/commons/hashtags/Coffee.kt | 352 +++++++++++ .../commons/hashtags/CustomHashTagIcons.kt | 52 ++ .../amethyst/commons/hashtags/Footstr.kt | 162 +++++ .../amethyst/commons/hashtags/Grownostr.kt | 297 ++++++++++ .../amethyst/commons/hashtags/Lightning.kt | 201 +++++++ .../amethyst/commons/hashtags/Mate.kt | 240 ++++++++ .../amethyst/commons/hashtags/Nostr.kt | 151 +++++ .../amethyst/commons/hashtags/Plebs.kt | 174 ++++++ .../amethyst/commons/hashtags/Skull.kt | 556 ++++++++++++++++++ .../amethyst/commons/hashtags/Tunestr.kt | 144 +++++ .../amethyst/commons/hashtags/Weed.kt | 550 +++++++++++++++++ .../amethyst/commons/hashtags/Zap.kt | 135 +++++ docs/hashtags/amethyst.svg | 1 + docs/hashtags/btc.svg | 45 ++ docs/hashtags/cashu.svg | 53 ++ docs/hashtags/coffee.svg | 108 ++++ docs/hashtags/footstr.svg | 39 ++ docs/hashtags/grownostr.svg | 109 ++++ docs/hashtags/lightning.svg | 67 +++ docs/hashtags/mate.svg | 96 +++ docs/hashtags/nostr.svg | 31 + docs/hashtags/plebs.svg | 57 ++ docs/hashtags/skull.svg | 191 ++++++ docs/hashtags/tunestr.svg | 30 + docs/hashtags/weed.svg | 45 ++ docs/hashtags/zap.svg | 51 ++ 58 files changed, 4535 insertions(+), 264 deletions(-) delete mode 100644 app/src/main/res/drawable-hdpi/ht_btc.png delete mode 100644 app/src/main/res/drawable-hdpi/ht_nostr.png delete mode 100644 app/src/main/res/drawable-mdpi/ht_btc.png delete mode 100644 app/src/main/res/drawable-mdpi/ht_nostr.png delete mode 100644 app/src/main/res/drawable-xhdpi/ht_btc.png delete mode 100644 app/src/main/res/drawable-xhdpi/ht_nostr.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ht_btc.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ht_nostr.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ht_btc.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ht_nostr.png delete mode 100644 app/src/main/res/drawable/black_heart.xml delete mode 100644 app/src/main/res/drawable/cashu.xml delete mode 100644 app/src/main/res/drawable/coffee.xml delete mode 100644 app/src/main/res/drawable/footstr.xml delete mode 100644 app/src/main/res/drawable/grownostr.xml delete mode 100644 app/src/main/res/drawable/lightning.xml delete mode 100644 app/src/main/res/drawable/plebs.xml delete mode 100644 app/src/main/res/drawable/skull.xml delete mode 100644 app/src/main/res/drawable/tunestr.xml delete mode 100644 app/src/main/res/drawable/weed.xml delete mode 100644 app/src/main/res/drawable/zap.xml create mode 100644 commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Amethyst.kt create mode 100644 commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Btc.kt create mode 100644 commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Cashu.kt create mode 100644 commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Coffee.kt create mode 100644 commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/CustomHashTagIcons.kt create mode 100644 commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Footstr.kt create mode 100644 commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Grownostr.kt create mode 100644 commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Lightning.kt create mode 100644 commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Mate.kt create mode 100644 commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Nostr.kt create mode 100644 commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Plebs.kt create mode 100644 commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Skull.kt create mode 100644 commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Tunestr.kt create mode 100644 commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Weed.kt create mode 100644 commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Zap.kt create mode 100644 docs/hashtags/amethyst.svg create mode 100644 docs/hashtags/btc.svg create mode 100644 docs/hashtags/cashu.svg create mode 100644 docs/hashtags/coffee.svg create mode 100644 docs/hashtags/footstr.svg create mode 100644 docs/hashtags/grownostr.svg create mode 100644 docs/hashtags/lightning.svg create mode 100644 docs/hashtags/mate.svg create mode 100644 docs/hashtags/nostr.svg create mode 100644 docs/hashtags/plebs.svg create mode 100644 docs/hashtags/skull.svg create mode 100644 docs/hashtags/tunestr.svg create mode 100644 docs/hashtags/weed.svg create mode 100644 docs/hashtags/zap.svg diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/HashtagIcon.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/HashtagIcon.kt index e0b89643e..536b96946 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/HashtagIcon.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/HashtagIcon.kt @@ -25,9 +25,24 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.Immutable import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.hashtags.Amethyst +import com.vitorpamplona.amethyst.commons.hashtags.Btc +import com.vitorpamplona.amethyst.commons.hashtags.Cashu +import com.vitorpamplona.amethyst.commons.hashtags.Coffee +import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons +import com.vitorpamplona.amethyst.commons.hashtags.Footstr +import com.vitorpamplona.amethyst.commons.hashtags.Grownostr +import com.vitorpamplona.amethyst.commons.hashtags.Lightning +import com.vitorpamplona.amethyst.commons.hashtags.Mate +import com.vitorpamplona.amethyst.commons.hashtags.Nostr +import com.vitorpamplona.amethyst.commons.hashtags.Plebs +import com.vitorpamplona.amethyst.commons.hashtags.Skull +import com.vitorpamplona.amethyst.commons.hashtags.Tunestr +import com.vitorpamplona.amethyst.commons.hashtags.Weed +import com.vitorpamplona.amethyst.commons.hashtags.Zap import com.vitorpamplona.amethyst.commons.richtext.HashTagSegment import com.vitorpamplona.amethyst.commons.richtext.RegularTextSegment import com.vitorpamplona.amethyst.ui.components.HashTag @@ -42,7 +57,7 @@ fun RenderHashTagIcons() { ThemeComparisonColumn { RenderRegular( - "Testing rendering of hashtags: #Bitcoin, #nostr, #lightning, #zap, #amethyst, #cashu, #plebs, #coffee, #skullofsatoshi, #grownostr, #footstr, #tunestr, #weed", + "Testing rendering of hashtags: #Bitcoin, #nostr, #lightning, #zap, #amethyst, #cashu, #plebs, #coffee, #skullofsatoshi, #grownostr, #footstr, #tunestr, #weed, #mate", EmptyTagList, ) { word, state -> when (word) { @@ -67,28 +82,30 @@ fun checkForHashtagWithIcon(tag: String): HashtagIcon? { "grownostr", "gardening", "garden" -> growstr "footstr" -> footstr "tunestr", "music", "nowplaying" -> tunestr + "mate", "matechain", "matestr" -> matestr "weed", "weedstr", "420", "cannabis", "marijuana" -> weed else -> null } } -val bitcoin = HashtagIcon(R.drawable.ht_btc, "Bitcoin", Modifier.padding(start = 1.dp, bottom = 1.dp, top = 1.dp)) -val nostr = HashtagIcon(R.drawable.ht_nostr, "Nostr", Modifier.padding(start = 1.dp, bottom = 1.dp, top = 1.dp)) -val lightning = HashtagIcon(R.drawable.lightning, "Lightning", Modifier.padding(start = 1.dp, bottom = 1.dp, top = 1.dp)) -val zap = HashtagIcon(R.drawable.zap, "Zap", Modifier.padding(start = 1.dp, bottom = 1.dp, top = 1.dp)) -val amethyst = HashtagIcon(R.drawable.amethyst, "Amethyst", Modifier.padding(start = 2.dp, bottom = 1.dp, top = 1.dp)) -val cashu = HashtagIcon(R.drawable.cashu, "Cashu", Modifier.padding(start = 1.dp, bottom = 1.dp, top = 1.dp)) -val plebs = HashtagIcon(R.drawable.plebs, "Pleb", Modifier.padding(start = 2.dp, bottom = 1.dp, top = 1.dp)) -val coffee = HashtagIcon(R.drawable.coffee, "Coffee", Modifier.padding(start = 3.dp, bottom = 1.dp, top = 1.dp)) -val skull = HashtagIcon(R.drawable.skull, "SkullofSatoshi", Modifier.padding(start = 1.dp, bottom = 1.dp, top = 1.dp)) -val growstr = HashtagIcon(R.drawable.grownostr, "GrowNostr", Modifier.padding(start = 1.dp, bottom = 1.dp, top = 1.dp)) -val footstr = HashtagIcon(R.drawable.footstr, "Footstr", Modifier.padding(start = 2.dp, bottom = 1.dp, top = 1.dp)) -val tunestr = HashtagIcon(R.drawable.tunestr, "Tunestr", Modifier.padding(start = 1.dp, bottom = 1.dp, top = 1.dp)) -val weed = HashtagIcon(R.drawable.weed, "Weed", Modifier.padding(start = 1.dp, bottom = 0.dp, top = 0.dp)) +val bitcoin = HashtagIcon(CustomHashTagIcons.Btc, "Bitcoin", Modifier.padding(start = 1.dp, bottom = 1.dp, top = 1.dp)) +val nostr = HashtagIcon(CustomHashTagIcons.Nostr, "Nostr", Modifier.padding(start = 1.dp, bottom = 1.dp, top = 1.dp)) +val lightning = HashtagIcon(CustomHashTagIcons.Lightning, "Lightning", Modifier.padding(start = 1.dp, bottom = 1.dp, top = 1.dp)) +val zap = HashtagIcon(CustomHashTagIcons.Zap, "Zap", Modifier.padding(start = 1.dp, bottom = 1.dp, top = 1.dp)) +val amethyst = HashtagIcon(CustomHashTagIcons.Amethyst, "Amethyst", Modifier.padding(start = 2.dp, bottom = 1.dp, top = 1.dp)) +val cashu = HashtagIcon(CustomHashTagIcons.Cashu, "Cashu", Modifier.padding(start = 1.dp, bottom = 1.dp, top = 1.dp)) +val plebs = HashtagIcon(CustomHashTagIcons.Plebs, "Pleb", Modifier.padding(start = 2.dp, bottom = 1.dp, top = 1.dp)) +val coffee = HashtagIcon(CustomHashTagIcons.Coffee, "Coffee", Modifier.padding(start = 3.dp, bottom = 1.dp, top = 1.dp)) +val skull = HashtagIcon(CustomHashTagIcons.Skull, "SkullofSatoshi", Modifier.padding(start = 1.dp, bottom = 1.dp, top = 1.dp)) +val growstr = HashtagIcon(CustomHashTagIcons.Grownostr, "GrowNostr", Modifier.padding(start = 1.dp, bottom = 1.dp, top = 1.dp)) +val footstr = HashtagIcon(CustomHashTagIcons.Footstr, "Footstr", Modifier.padding(start = 2.dp, bottom = 1.dp, top = 1.dp)) +val tunestr = HashtagIcon(CustomHashTagIcons.Tunestr, "Tunestr", Modifier.padding(start = 1.dp, bottom = 1.dp, top = 1.dp)) +val weed = HashtagIcon(CustomHashTagIcons.Weed, "Weed", Modifier.padding(start = 1.dp, bottom = 0.dp, top = 0.dp)) +val matestr = HashtagIcon(CustomHashTagIcons.Mate, "Mate", Modifier.padding(start = 1.dp, bottom = 0.dp, top = 0.dp)) @Immutable class HashtagIcon( - val icon: Int, + val icon: ImageVector, val description: String, val modifier: Modifier = Modifier, ) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/CashuRedeem.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/CashuRedeem.kt index 739a470fd..8a8daec0d 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/CashuRedeem.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/CashuRedeem.kt @@ -53,7 +53,6 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalClipboardManager import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.font.FontWeight @@ -65,6 +64,8 @@ import androidx.core.content.ContextCompat.startActivity import androidx.lifecycle.viewmodel.compose.viewModel import com.fasterxml.jackson.databind.node.TextNode import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.hashtags.Cashu +import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons import com.vitorpamplona.amethyst.model.ThemeType import com.vitorpamplona.amethyst.service.CachedCashuProcessor import com.vitorpamplona.amethyst.service.CashuToken @@ -182,7 +183,7 @@ fun CashuPreview( .padding(bottom = 10.dp), ) { Icon( - painter = painterResource(R.drawable.cashu), + imageVector = CustomHashTagIcons.Cashu, null, modifier = Size20Modifier, tint = Color.Unspecified, @@ -320,7 +321,7 @@ fun CashuPreviewNew( verticalAlignment = Alignment.CenterVertically, ) { Icon( - painter = painterResource(R.drawable.cashu), + imageVector = CustomHashTagIcons.Cashu, null, modifier = Modifier.size(13.dp), tint = Color.Unspecified, diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/InvoicePreview.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/InvoicePreview.kt index 1b2a8efd1..e761e196e 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/InvoicePreview.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/InvoicePreview.kt @@ -44,13 +44,14 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons +import com.vitorpamplona.amethyst.commons.hashtags.Lightning import com.vitorpamplona.amethyst.service.lnurl.CachedLnInvoiceParser import com.vitorpamplona.amethyst.service.lnurl.InvoiceAmount import com.vitorpamplona.amethyst.ui.note.ErrorMessageDialog @@ -135,7 +136,7 @@ fun InvoicePreview( .padding(bottom = 10.dp), ) { Icon( - painter = painterResource(R.drawable.lightning), + imageVector = CustomHashTagIcons.Lightning, null, modifier = Size20Modifier, tint = Color.Unspecified, diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/InvoiceRequest.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/InvoiceRequest.kt index 22b913d43..89a976e46 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/InvoiceRequest.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/InvoiceRequest.kt @@ -44,7 +44,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.KeyboardCapitalization @@ -52,6 +51,8 @@ import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons +import com.vitorpamplona.amethyst.commons.hashtags.Lightning import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.model.LocalCache import com.vitorpamplona.amethyst.service.lnurl.LightningAddressResolver @@ -118,7 +119,7 @@ fun InvoiceRequest( modifier = Modifier.fillMaxWidth().padding(bottom = 10.dp), ) { Icon( - painter = painterResource(R.drawable.lightning), + imageVector = CustomHashTagIcons.Lightning, null, modifier = Size20Modifier, tint = Color.Unspecified, diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt index 8801fb228..7c9499901 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt @@ -52,7 +52,6 @@ import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalFontFamilyResolver import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.platform.LocalUriHandler -import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.Placeholder import androidx.compose.ui.text.PlaceholderVerticalAlign import androidx.compose.ui.text.SpanStyle @@ -761,7 +760,7 @@ private fun InlineIcon(hashtagIcon: HashtagIcon) = ), ) { Icon( - painter = painterResource(hashtagIcon.icon), + imageVector = hashtagIcon.icon, contentDescription = hashtagIcon.description, tint = Color.Unspecified, modifier = hashtagIcon.modifier, diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZapRaiserRequest.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZapRaiserRequest.kt index 8d59c824c..67ae8d44c 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZapRaiserRequest.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZapRaiserRequest.kt @@ -34,13 +34,14 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons +import com.vitorpamplona.amethyst.commons.hashtags.Lightning import com.vitorpamplona.amethyst.ui.actions.NewPostViewModel import com.vitorpamplona.amethyst.ui.theme.DividerThickness import com.vitorpamplona.amethyst.ui.theme.Size20Modifier @@ -59,7 +60,7 @@ fun ZapRaiserRequest( modifier = Modifier.fillMaxWidth().padding(bottom = 10.dp), ) { Icon( - painter = painterResource(R.drawable.lightning), + imageVector = CustomHashTagIcons.Lightning, null, modifier = Size20Modifier, tint = Color.Unspecified, diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/Icons.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/Icons.kt index ac15c4bfa..471235002 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/Icons.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/Icons.kt @@ -63,6 +63,8 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.hashtags.Cashu +import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange import com.vitorpamplona.amethyst.ui.theme.Size18Modifier import com.vitorpamplona.amethyst.ui.theme.Size20Modifier @@ -231,7 +233,7 @@ fun ZapIcon( @Composable fun CashuIcon(modifier: Modifier) { Icon( - painter = painterResource(R.drawable.cashu), + imageVector = CustomHashTagIcons.Cashu, "Cashu", tint = Color.Unspecified, modifier = modifier, diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NIP05VerificationDisplay.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NIP05VerificationDisplay.kt index 421f9156c..3f34d409b 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NIP05VerificationDisplay.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NIP05VerificationDisplay.kt @@ -45,12 +45,12 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalUriHandler -import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons +import com.vitorpamplona.amethyst.commons.hashtags.Tunestr import com.vitorpamplona.amethyst.model.AddressableNote import com.vitorpamplona.amethyst.model.Note import com.vitorpamplona.amethyst.model.User @@ -231,7 +231,7 @@ fun DisplayStatus( when (type) { "music" -> Icon( - painter = painterResource(id = R.drawable.tunestr), + imageVector = CustomHashTagIcons.Tunestr, null, modifier = Size15Modifier.padding(end = Size5dp), tint = MaterialTheme.colorScheme.placeholderText, diff --git a/app/src/main/res/drawable-hdpi/ht_btc.png b/app/src/main/res/drawable-hdpi/ht_btc.png deleted file mode 100644 index 285bec6afbf82ec9f99e1d6af2c64f1941a9e7cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13112 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 diff --git a/app/src/main/res/drawable-mdpi/ht_btc.png b/app/src/main/res/drawable-mdpi/ht_btc.png deleted file mode 100644 index 25b09df689251d72fd425de6d9e4f25b855ebc6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11159 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 TQ(q+X5P+tdu4=imb?|=y@;mSt diff --git a/app/src/main/res/drawable-mdpi/ht_nostr.png b/app/src/main/res/drawable-mdpi/ht_nostr.png deleted file mode 100644 index 00a9b4741264c55a4cbfecb7500254169bc52c1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12655 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 diff --git a/app/src/main/res/drawable-xhdpi/ht_btc.png b/app/src/main/res/drawable-xhdpi/ht_btc.png deleted file mode 100644 index 94994fc8ebb99d398404e2d412a26c45ff12216b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5665 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 diff --git a/app/src/main/res/drawable-xxhdpi/ht_btc.png b/app/src/main/res/drawable-xxhdpi/ht_btc.png deleted file mode 100644 index f4d319f703447ffae1b7abedf3ccea5e08529edf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7347 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 Pf18w(Qj)BcFb?{E(>Pj9 diff --git a/app/src/main/res/drawable-xxxhdpi/ht_nostr.png b/app/src/main/res/drawable-xxxhdpi/ht_nostr.png deleted file mode 100644 index 731160f7955518c93db2087d3b0348322e0dec71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17079 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 diff --git a/app/src/main/res/drawable/black_heart.xml b/app/src/main/res/drawable/black_heart.xml deleted file mode 100644 index 47ed6fa31..000000000 --- a/app/src/main/res/drawable/black_heart.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/drawable/cashu.xml b/app/src/main/res/drawable/cashu.xml deleted file mode 100644 index 17cbf26a2..000000000 --- a/app/src/main/res/drawable/cashu.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/drawable/coffee.xml b/app/src/main/res/drawable/coffee.xml deleted file mode 100644 index 9ca63366e..000000000 --- a/app/src/main/res/drawable/coffee.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/footstr.xml b/app/src/main/res/drawable/footstr.xml deleted file mode 100644 index fdfb5f2c6..000000000 --- a/app/src/main/res/drawable/footstr.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/app/src/main/res/drawable/grownostr.xml b/app/src/main/res/drawable/grownostr.xml deleted file mode 100644 index 65d5dd944..000000000 --- a/app/src/main/res/drawable/grownostr.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/lightning.xml b/app/src/main/res/drawable/lightning.xml deleted file mode 100644 index ec5db36fe..000000000 --- a/app/src/main/res/drawable/lightning.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/plebs.xml b/app/src/main/res/drawable/plebs.xml deleted file mode 100644 index c7e77854a..000000000 --- a/app/src/main/res/drawable/plebs.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/drawable/skull.xml b/app/src/main/res/drawable/skull.xml deleted file mode 100644 index 87decd067..000000000 --- a/app/src/main/res/drawable/skull.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/tunestr.xml b/app/src/main/res/drawable/tunestr.xml deleted file mode 100644 index ccfb57be0..000000000 --- a/app/src/main/res/drawable/tunestr.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/drawable/weed.xml b/app/src/main/res/drawable/weed.xml deleted file mode 100644 index ff4df15c1..000000000 --- a/app/src/main/res/drawable/weed.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/drawable/zap.xml b/app/src/main/res/drawable/zap.xml deleted file mode 100644 index d0eea7a74..000000000 --- a/app/src/main/res/drawable/zap.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Amethyst.kt b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Amethyst.kt new file mode 100644 index 000000000..7d892a11b --- /dev/null +++ b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Amethyst.kt @@ -0,0 +1,137 @@ +/** + * Copyright (c) 2024 Vitor Pamplona + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package com.vitorpamplona.amethyst.commons.hashtags + +import androidx.compose.foundation.Image +import androidx.compose.runtime.Composable +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.Brush.Companion.linearGradient +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.graphics.vector.rememberVectorPainter +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +@Preview +@Composable +fun CustomHashTagIconsAmethystPreview() { + Image( + painter = + rememberVectorPainter( + CustomHashTagIcons.Amethyst, + ), + contentDescription = "", + ) +} + +public val CustomHashTagIcons.Amethyst: ImageVector + get() { + if (customHashTagIconsAmethyst != null) { + return customHashTagIconsAmethyst!! + } + customHashTagIconsAmethyst = + Builder( + name = "Amethyst", + defaultWidth = 170.16.dp, + defaultHeight = 186.2.dp, + viewportWidth = 170.16f, + viewportHeight = 186.2f, + ).apply { + path( + fill = + linearGradient( + 0.0f to Color(0xFF652D80), + 1.0f to Color(0xFF2598CF), + start = Offset(80.19f, 57.17f), + end = Offset(91.66f, 57.17f), + ), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(80.19f, 57.17f) + arcToRelative(5.74f, 5.64f, 0.0f, true, false, 11.48f, 0.0f) + arcToRelative(5.74f, 5.64f, 0.0f, true, false, -11.48f, 0.0f) + close() + } + path( + fill = + linearGradient( + 0.0f to Color(0xFF652D80), + 1.0f to Color(0xFF2598CF), + start = Offset(7.48f, 93.92f), + end = Offset(180f, 93.92f), + ), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(170.13f, 142.54f) + curveToRelative(-0.2f, -0.61f, -46.85f, -111.69f, -59.68f, -142.5f) + curveToRelative(-15.62f, 0.0f, -48.61f, 0.0f, -71.88f, 0.0f) + curveToRelative(-6.83f, 16.89f, -24.46f, 59.94f, -38.6f, 94.62f) + curveToRelative(7.75f, 18.49f, 14.71f, 35.1f, 20.08f, 47.91f) + lineToRelative(29.27f, 0.0f) + arcToRelative(2.0f, 2.0f, 0.0f, false, false, 1.87f, -2.35f) + curveToRelative(-0.25f, -5.91f, -16.34f, -27.39f, -11.54f, -50.63f) + curveToRelative(1.28f, -5.0f, 2.26f, -10.08f, 3.66f, -15.06f) + arcToRelative(175.77f, 175.77f, 0.0f, false, true, 13.44f, -34.8f) + curveToRelative(0.89f, -1.69f, 1.3f, -2.45f, 3.35f, -1.17f) + curveToRelative(4.37f, 2.72f, 9.25f, 2.56f, 14.11f, 2.21f) + curveToRelative(4.19f, -0.91f, 6.23f, -2.92f, 13.91f, -0.88f) + curveToRelative(1.52f, 0.0f, 3.0f, 0.0f, 4.55f, 0.14f) + curveToRelative(3.69f, 0.29f, 7.15f, 1.17f, 9.37f, 4.51f) + curveToRelative(2.42f, 3.65f, 2.81f, 7.78f, 2.42f, 12.0f) + curveToRelative(-0.59f, 6.31f, -0.17f, 12.19f, 5.17f, 16.64f) + arcToRelative(57.52f, 57.52f, 0.0f, false, false, 6.0f, 4.0f) + curveToRelative(2.65f, 1.7f, 5.85f, 2.44f, 8.12f, 4.8f) + curveToRelative(1.34f, 1.39f, 2.13f, 2.87f, 1.55f, 4.85f) + reflectiveCurveToRelative(-2.13f, 2.91f, -4.17f, 3.13f) + curveToRelative(-5.16f, 0.56f, -10.2f, -0.49f, -15.27f, -1.1f) + curveToRelative(-0.66f, -0.08f, -1.31f, -0.13f, -2.0f, -0.17f) + arcToRelative(11.47f, 11.47f, 0.0f, false, true, -3.81f, 0.13f) + lineToRelative(-1.19f, 0.0f) + arcToRelative(26.7f, 26.7f, 0.0f, false, false, -5.9f, 1.41f) + curveToRelative(-4.78f, 1.74f, -9.13f, 3.66f, -14.77f, 3.56f) + arcToRelative(4.32f, 4.32f, 0.0f, false, false, -2.05f, 0.89f) + curveToRelative(-4.42f, 3.93f, -7.08f, 8.89f, -4.87f, 16.14f) + curveToRelative(6.06f, 16.93f, 21.61f, 57.77f, 28.29f, 75.4f) + curveToRelative(-0.19f, -11.94f, -0.24f, -33.32f, -0.28f, -43.7f) + curveTo(125.96f, 142.56f, 166.87f, 142.54f, 170.13f, 142.54f) + close() + } + } + .build() + return customHashTagIconsAmethyst!! + } + +private var customHashTagIconsAmethyst: ImageVector? = null diff --git a/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Btc.kt b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Btc.kt new file mode 100644 index 000000000..0b7282358 --- /dev/null +++ b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Btc.kt @@ -0,0 +1,126 @@ +/** + * Copyright (c) 2024 Vitor Pamplona + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package com.vitorpamplona.amethyst.commons.hashtags + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.size +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.graphics.vector.rememberVectorPainter +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +@Preview +@Composable +fun CustomHashTagIconsBtcPreview() { + Image( + painter = + rememberVectorPainter( + CustomHashTagIcons.Btc, + ), + contentDescription = "", + modifier = Modifier.size(55.dp), + ) +} + +public val CustomHashTagIcons.Btc: ImageVector + get() { + if (customHashTagIconsBtc != null) { + return customHashTagIconsBtc!! + } + customHashTagIconsBtc = + Builder( + name = "Btc", + defaultWidth = 64.0.dp, + defaultHeight = 64.0.dp, + viewportWidth = + 64.0f, + viewportHeight = 64.0f, + ).apply { + path( + fill = SolidColor(Color(0xFFf7931a)), + stroke = null, + strokeLineWidth = 1.57894f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(54.9248f, 25.7592f) + curveTo(55.9306f, 19.0361f, 50.8116f, 15.4219f, 43.8122f, 13.0109f) + lineTo(46.0827f, 3.9036f) + lineTo(40.5391f, 2.522f) + lineTo(38.3286f, 11.3893f) + curveToRelative(-1.4574f, -0.3632f, -2.9542f, -0.7058f, -4.4415f, -1.0453f) + lineToRelative(2.2263f, -8.9257f) + lineToRelative(-5.5405f, -1.3816f) + lineToRelative(-2.2721f, 9.1041f) + curveTo(27.0944f, 8.8662f, 25.9102f, 8.5946f, 24.7608f, 8.3088f) + lineToRelative(0.0063f, -0.0284f) + lineToRelative(-7.6452f, -1.9089f) + lineToRelative(-1.4747f, 5.921f) + curveToRelative(0.0f, 0.0f, 4.1131f, 0.9426f, 4.0263f, 1.001f) + curveToRelative(2.2452f, 0.5605f, 2.651f, 2.0463f, 2.5831f, 3.2242f) + lineToRelative(-2.5863f, 10.3752f) + curveToRelative(0.1547f, 0.0395f, 0.3553f, 0.0963f, 0.5763f, 0.1847f) + curveToRelative(-0.1847f, -0.0458f, -0.3821f, -0.0963f, -0.5858f, -0.1453f) + lineTo(16.0356f, 41.4665f) + curveToRelative(-0.2747f, 0.6821f, -0.971f, 1.7053f, -2.5405f, 1.3168f) + curveToRelative(0.0553f, 0.0805f, -4.0294f, -1.0058f, -4.0294f, -1.0058f) + lineToRelative(-2.7521f, 6.3457f) + lineToRelative(7.2142f, 1.7984f) + curveToRelative(1.3421f, 0.3363f, 2.6574f, 0.6884f, 3.9521f, 1.02f) + lineToRelative(-2.2942f, 9.2115f) + lineToRelative(5.5373f, 1.3816f) + lineToRelative(2.2721f, -9.1136f) + curveToRelative(1.5126f, 0.4105f, 2.981f, 0.7895f, 4.4179f, 1.1463f) + lineToRelative(-2.2642f, 9.071f) + lineToRelative(5.5436f, 1.3816f) + lineToRelative(2.2942f, -9.1941f) + curveToRelative(9.4531f, 1.7889f, 16.5615f, 1.0674f, 19.5535f, -7.4826f) + curveToRelative(2.411f, -6.8842f, -0.12f, -10.8552f, -5.0936f, -13.4446f) + curveToRelative(3.6221f, -0.8353f, 6.3505f, -3.2179f, 7.0784f, -8.1394f) + close() + moveTo(42.2585f, 43.5207f) + curveToRelative(-1.7131f, 6.8842f, -13.3041f, 3.1626f, -17.062f, 2.2295f) + lineToRelative(3.0442f, -12.2036f) + curveToRelative(3.7579f, 0.9379f, 15.8083f, 2.7947f, 14.0178f, 9.9741f) + close() + moveTo(43.9733f, 25.6597f) + curveToRelative(-1.5631f, 6.2621f, -11.2104f, 3.0805f, -14.3399f, 2.3005f) + lineToRelative(2.76f, -11.0683f) + curveToRelative(3.1295f, 0.78f, 13.2078f, 2.2358f, 11.5799f, 8.7678f) + close() + } + } + .build() + return customHashTagIconsBtc!! + } + +private var customHashTagIconsBtc: ImageVector? = null diff --git a/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Cashu.kt b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Cashu.kt new file mode 100644 index 000000000..3fb29a022 --- /dev/null +++ b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Cashu.kt @@ -0,0 +1,282 @@ +/** + * Copyright (c) 2024 Vitor Pamplona + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package com.vitorpamplona.amethyst.commons.hashtags + +import androidx.compose.foundation.Image +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.graphics.vector.rememberVectorPainter +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +@Preview +@Composable +fun CustomHashTagIconsCashuPreview() { + Image( + painter = + rememberVectorPainter( + CustomHashTagIcons.Cashu, + ), + contentDescription = "", + ) +} + +public val CustomHashTagIcons.Cashu: ImageVector + get() { + if (customHashTagIconsCashu != null) { + return customHashTagIconsCashu!! + } + customHashTagIconsCashu = + Builder( + name = "Cashu", + defaultWidth = 400.0.dp, + defaultHeight = 400.0.dp, + viewportWidth = 400.0f, + viewportHeight = 400.0f, + ).apply { + path( + fill = SolidColor(Color(0xFFd6c09a)), + stroke = SolidColor(Color(0xFFd6c09a)), + strokeLineWidth = 1.23101f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(248.917f, 2.153f) + verticalLineTo(25.235f) + horizontalLineToRelative(25.236f) + verticalLineToRelative(71.091f) + horizontalLineToRelative(-25.236f) + lineToRelative(0.227f, 24.772f) + lineToRelative(-22.156f, 0.011f) + lineToRelative(-0.135f, 69.22f) + lineToRelative(22.065f, -0.532f) + verticalLineToRelative(45.326f) + horizontalLineToRelative(74.476f) + verticalLineToRelative(24.313f) + horizontalLineToRelative(24.928f) + verticalLineToRelative(24.005f) + horizontalLineToRelative(23.389f) + verticalLineToRelative(69.245f) + horizontalLineToRelative(-23.082f) + verticalLineToRelative(23.082f) + horizontalLineToRelative(-24.928f) + verticalLineToRelative(23.005f) + horizontalLineTo(126.2f) + verticalLineToRelative(-23.005f) + horizontalLineTo(100.503f) + verticalLineTo(352.454f) + horizontalLineTo(74.959f) + verticalLineTo(329.68f) + horizontalLineTo(51.801f) + verticalLineTo(282.901f) + horizontalLineTo(25.949f) + verticalLineTo(49.239f) + horizontalLineToRelative(26.082f) + verticalLineTo(25.158f) + horizontalLineTo(74.574f) + verticalLineTo(2.153f) + close() + } + path( + fill = SolidColor(Color(0xFFbb9366)), + stroke = SolidColor(Color(0xFFbb9366)), + strokeLineWidth = 1.23101f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(74.39f, 2.268f) + lineTo(74.39f, 25.272f) + lineTo(51.847f, 25.272f) + lineTo(51.847f, 49.354f) + lineTo(25.765f, 49.354f) + lineToRelative(0.407f, 233.662f) + lineTo(51.709f, 283.016f) + curveTo(52.428f, 236.898f, 76.75f, 25.19f, 125.239f, 25.349f) + lineTo(125.384f, 2.268f) + close() + moveTo(51.616f, 283.0f) + verticalLineToRelative(46.795f) + horizontalLineToRelative(23.158f) + verticalLineToRelative(22.774f) + lineTo(99.936f, 352.568f) + lineTo(99.936f, 331.112f) + lineTo(75.162f, 331.112f) + verticalLineToRelative(-47.893f) + close() + moveTo(100.318f, 354.117f) + verticalLineToRelative(21.764f) + horizontalLineToRelative(25.469f) + verticalLineToRelative(-21.764f) + close() + moveTo(323.596f, 354.501f) + verticalLineToRelative(21.379f) + horizontalLineToRelative(24.849f) + verticalLineToRelative(-21.379f) + close() + moveTo(126.016f, 377.506f) + verticalLineToRelative(21.379f) + horizontalLineToRelative(197.501f) + verticalLineToRelative(-21.379f) + close() + } + path( + fill = SolidColor(Color(0xFFc4a47b)), + stroke = SolidColor(Color(0xFFc4a47b)), + strokeLineWidth = 1.23101f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(74.466f, 25.205f) + lineTo(125.28f, 25.706f) + verticalLineTo(49.249f) + horizontalLineTo(100.505f) + verticalLineTo(213.59f) + horizontalLineToRelative(24.928f) + verticalLineToRelative(47.394f) + horizontalLineToRelative(48.625f) + verticalLineToRelative(24.005f) + horizontalLineToRelative(25.697f) + verticalLineToRelative(22.928f) + horizontalLineToRelative(22.928f) + verticalLineToRelative(23.005f) + horizontalLineToRelative(125.948f) + verticalLineToRelative(23.466f) + horizontalLineToRelative(-24.851f) + verticalLineToRelative(23.005f) + horizontalLineTo(125.972f) + verticalLineToRelative(-23.389f) + horizontalLineToRelative(-25.851f) + verticalLineTo(330.998f) + horizontalLineTo(75.346f) + verticalLineTo(283.291f) + lineTo(51.581f, 283.072f) + lineTo(51.487f, 49.319f) + horizontalLineToRelative(22.77f) + close() + } + path( + fill = SolidColor(Color(0xFF000000)), + stroke = SolidColor(Color(0x00000000)), + strokeLineWidth = 1.23101f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(25.598f, 120.678f) + verticalLineToRelative(18.254f) + horizontalLineToRelative(9.75f) + verticalLineToRelative(10.545f) + horizontalLineToRelative(8.151f) + verticalLineToRelative(9.925f) + horizontalLineToRelative(10.192f) + verticalLineToRelative(7.708f) + horizontalLineToRelative(67.434f) + verticalLineToRelative(-7.975f) + horizontalLineToRelative(10.012f) + verticalLineToRelative(-9.836f) + horizontalLineToRelative(10.192f) + verticalLineToRelative(-20.824f) + horizontalLineToRelative(17.722f) + verticalLineToRelative(20.648f) + horizontalLineToRelative(10.278f) + verticalLineToRelative(9.747f) + horizontalLineToRelative(7.886f) + verticalLineToRelative(7.797f) + horizontalLineToRelative(67.523f) + verticalLineToRelative(-7.619f) + horizontalLineToRelative(9.747f) + verticalLineToRelative(-9.836f) + horizontalLineToRelative(10.367f) + verticalLineToRelative(-10.37f) + horizontalLineToRelative(9.572f) + verticalLineToRelative(-17.809f) + close() + moveTo(178.698f, 128.19f) + horizontalLineToRelative(9.394f) + verticalLineToRelative(10.146f) + lineToRelative(10.557f, 0.043f) + verticalLineToRelative(10.012f) + horizontalLineToRelative(9.399f) + verticalLineToRelative(-10.151f) + horizontalLineToRelative(-9.322f) + lineTo(198.726f, 128.19f) + lineToRelative(9.615f, 0.043f) + verticalLineToRelative(10.103f) + horizontalLineToRelative(8.807f) + lineToRelative(0.053f, 10.233f) + lineToRelative(9.216f, 0.046f) + verticalLineToRelative(9.569f) + lineToRelative(-9.259f, -0.043f) + lineToRelative(0.043f, -9.572f) + horizontalLineToRelative(-8.906f) + verticalLineToRelative(9.216f) + horizontalLineToRelative(-9.569f) + verticalLineToRelative(-9.17f) + lineToRelative(-10.634f, -0.089f) + lineToRelative(0.046f, -10.146f) + lineToRelative(-9.439f, -0.043f) + close() + moveTo(43.409f, 129.541f) + horizontalLineToRelative(9.394f) + verticalLineToRelative(10.146f) + lineToRelative(10.557f, 0.043f) + verticalLineToRelative(10.012f) + horizontalLineToRelative(9.399f) + lineTo(72.759f, 139.591f) + horizontalLineToRelative(-9.322f) + verticalLineToRelative(-10.05f) + lineToRelative(9.615f, 0.043f) + verticalLineToRelative(10.103f) + horizontalLineToRelative(8.807f) + lineToRelative(0.053f, 10.233f) + lineToRelative(9.216f, 0.046f) + verticalLineToRelative(9.569f) + lineToRelative(-9.259f, -0.043f) + lineToRelative(0.043f, -9.572f) + horizontalLineToRelative(-8.906f) + verticalLineToRelative(9.216f) + horizontalLineToRelative(-9.569f) + verticalLineToRelative(-9.17f) + lineToRelative(-10.634f, -0.089f) + lineToRelative(0.046f, -10.146f) + lineToRelative(-9.439f, -0.043f) + close() + } + } + .build() + return customHashTagIconsCashu!! + } + +private var customHashTagIconsCashu: ImageVector? = null diff --git a/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Coffee.kt b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Coffee.kt new file mode 100644 index 000000000..c0b4a855a --- /dev/null +++ b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Coffee.kt @@ -0,0 +1,352 @@ +/** + * Copyright (c) 2024 Vitor Pamplona + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package com.vitorpamplona.amethyst.commons.hashtags + +import androidx.compose.foundation.Image +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.graphics.vector.rememberVectorPainter +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +@Preview +@Composable +fun CustomHashTagIconsCoffeePreview() { + Image( + painter = + rememberVectorPainter( + CustomHashTagIcons.Coffee, + ), + contentDescription = "", + ) +} + +public val CustomHashTagIcons.Coffee: ImageVector + get() { + if (customHashTagIconsCoffee != null) { + return customHashTagIconsCoffee!! + } + customHashTagIconsCoffee = + Builder( + name = "Coffee", + defaultWidth = 512.0.dp, + defaultHeight = 512.0.dp, + viewportWidth = 512.0f, + viewportHeight = 512.0f, + ).apply { + path( + fill = SolidColor(Color(0xFF00ffff)), + stroke = null, + strokeLineWidth = 1.04994f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(204.583f, 84.841f) + curveToRelative(1.808f, 1.808f, 0.933f, 0.933f, 0.0f, 0.0f) + close() + moveTo(366.274f, 85.89f) + curveToRelative(1.808f, 1.808f, 0.933f, 0.933f, 0.0f, 0.0f) + close() + } + path( + fill = SolidColor(Color(0xFFe0e0e0)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(195.829f, 118.866f) + curveTo(160.275f, 121.553f, 58.06f, 148.411f, 62.84f, 207.684f) + curveToRelative(0.811f, 23.285f, 2.035f, 46.555f, 5.059f, 69.667f) + curveTo(71.123f, 304.527f, 75.496f, 331.75f, 84.247f, 357.826f) + curveTo(99.454f, 396.095f, 133.387f, 425.805f, 173.084f, 436.368f) + curveToRelative(40.815f, 11.15f, 76.446f, 13.423f, 125.257f, -1.302f) + curveToRelative(37.884f, -10.354f, 71.389f, -38.361f, 83.885f, -76.191f) + curveToRelative(3.446f, -9.197f, 5.449f, -18.704f, 7.147f, -28.348f) + curveToRelative(20.026f, 1.025f, 40.624f, -1.266f, 59.847f, -7.378f) + curveToRelative(27.45f, -9.619f, 55.114f, -30.92f, 57.747f, -61.918f) + curveToRelative(2.014f, -19.218f, -3.317f, -39.883f, -18.899f, -52.411f) + curveTo(470.37f, 192.651f, 445.495f, 189.273f, 422.473f, 190.885f) + curveToRelative(-5.924f, -1.922f, -19.271f, 4.388f, -19.713f, -4.259f) + curveToRelative(-21.541f, -42.19f, -74.519f, -63.244f, -116.574f, -67.395f) + curveToRelative(-15.337f, -1.399f, -54.803f, -3.05f, -90.357f, -0.364f) + close() + moveTo(258.205f, 145.736f) + curveToRelative(35.707f, 4.411f, 74.758f, 9.193f, 102.819f, 33.628f) + curveToRelative(12.647f, 10.578f, 23.305f, 29.728f, 12.251f, 45.119f) + curveToRelative(-18.88f, 25.814f, -51.743f, 35.57f, -81.547f, 42.377f) + curveToRelative(-31.353f, 6.806f, -63.845f, 5.798f, -95.545f, 2.684f) + curveToRelative(-33.373f, -5.067f, -69.433f, -11.315f, -95.459f, -34.591f) + curveTo(90.48f, 225.01f, 85.348f, 208.691f, 94.105f, 196.134f) + curveTo(109.591f, 170.883f, 139.794f, 160.479f, 166.785f, 152.359f) + curveTo(177.505f, 149.627f, 188.334f, 146.966f, 199.333f, 145.737f) + moveToRelative(229.716f, 86.973f) + curveToRelative(8.709f, 0.053f, 17.284f, 0.926f, 25.221f, 4.741f) + curveToRelative(16.862f, 8.494f, 9.465f, 33.24f, -5.051f, 40.171f) + curveToRelative(-16.122f, 8.148f, -34.767f, 10.155f, -52.497f, 11.957f) + curveToRelative(1.831f, -18.914f, 4.279f, -37.818f, 6.3f, -56.697f) + curveToRelative(8.475f, 0.54f, 17.318f, -0.226f, 26.027f, -0.172f) + close() + } + path( + fill = SolidColor(Color(0xFF6d4b41)), + stroke = SolidColor(Color(0xFF6d4b41)), + strokeLineWidth = 8.81928f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(90.72f, 207.67f) + arcToRelative(141.919f, 61.231f, 0.0f, true, false, 283.838f, 0.0f) + arcToRelative(141.919f, 61.231f, 0.0f, true, false, -283.838f, 0.0f) + close() + } + path( + fill = SolidColor(Color(0xFFb59075)), + stroke = null, + strokeLineWidth = 1.04994f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(251.83f, 158.337f) + curveToRelative(-37.403f, 0.757f, -63.367f, 0.095f, -100.795f, 11.346f) + curveToRelative(-16.245f, 6.796f, -36.117f, 14.395f, -42.826f, 32.062f) + curveToRelative(4.78f, 30.851f, 60.554f, 22.125f, 56.067f, 2.789f) + curveToRelative(-4.141f, -14.164f, 14.984f, -19.744f, 25.607f, -15.895f) + curveToRelative(21.728f, 3.907f, 40.061f, 18.156f, 61.947f, 21.115f) + curveToRelative(8.814f, 1.936f, 20.571f, -2.794f, 17.762f, -13.62f) + curveToRelative(-3.874f, -6.982f, 0.155f, -14.741f, 8.487f, -14.612f) + curveToRelative(25.355f, -1.826f, 47.158f, 13.808f, 70.346f, 21.115f) + curveToRelative(7.046f, 3.956f, 15.783f, -3.153f, 8.545f, -9.653f) + curveToRelative(-28.173f, -23.147f, -72.369f, -35.312f, -105.14f, -34.648f) + close() + } + path( + fill = SolidColor(Color(0xFFb59074)), + stroke = null, + strokeLineWidth = 1.04994f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(293.915f, 199.809f) + curveToRelative(-6.744f, 4.634f, 0.262f, 16.203f, -8.579f, 20.246f) + curveToRelative(-16.21f, 10.232f, -35.697f, 0.44f, -52.405f, -3.622f) + curveToRelative(-14.159f, -3.75f, -29.518f, -10.912f, -44.098f, -6.124f) + curveToRelative(-10.455f, 5.464f, -3.973f, 21.891f, 7.35f, 19.424f) + curveToRelative(7.854f, -1.083f, 15.552f, -2.724f, 23.099f, 1.05f) + curveToRelative(22.268f, 6.96f, 45.971f, 11.514f, 69.296f, 8.721f) + curveToRelative(10.746f, -2.04f, 15.897f, -12.263f, 24.149f, -17.821f) + curveToRelative(10.272f, -2.429f, 22.449f, 12.795f, 30.507f, 1.75f) + curveToRelative(3.642f, -11.742f, -12.073f, -16.176f, -20.321f, -19.703f) + curveToRelative(-9.315f, -3.257f, -19.114f, -5.824f, -28.998f, -3.921f) + close() + } + path( + fill = SolidColor(Color(0xFF6aa5ac)), + stroke = null, + strokeLineWidth = 1.04994f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(403.022f, 222.383f) + curveToRelative(-0.027f, 0.814f, 0.014f, 9.727f, 0.052f, 10.476f) + curveToRelative(34.643f, -0.056f, 53.296f, 2.383f, 65.084f, 16.868f) + curveToRelative(4.078f, 5.361f, 7.465f, 10.616f, 10.15f, 8.407f) + curveToRelative(-1.559f, -19.676f, -20.181f, -34.582f, -36.438f, -36.161f) + curveToRelative(-12.802f, -1.147f, -26.08f, -1.131f, -38.848f, 0.408f) + close() + } + path( + fill = SolidColor(Color(0xFFbbced3)), + stroke = null, + strokeLineWidth = 1.04994f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(460.306f, 242.286f) + curveToRelative(10.121f, 17.211f, -6.218f, 36.214f, -22.955f, 40.032f) + curveToRelative(-13.308f, 3.429f, -26.932f, 6.237f, -40.629f, 7.262f) + curveToRelative(-1.512f, 4.605f, -7.203f, 17.175f, 1.161f, 15.749f) + curveToRelative(18.916f, -0.454f, 38.872f, -2.294f, 55.712f, -11.657f) + curveToRelative(13.424f, -7.047f, 22.474f, -20.882f, 24.652f, -35.775f) + curveToRelative(-5.446f, 2.157f, -11.704f, -14.707f, -17.942f, -15.61f) + close() + } + path( + fill = SolidColor(Color(0xFF97827b)), + stroke = null, + strokeLineWidth = 1.04994f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(113.238f, 244.432f) + curveToRelative(1.808f, 1.808f, 0.933f, 0.933f, 0.0f, 0.0f) + close() + moveTo(350.525f, 244.432f) + curveToRelative(1.808f, 1.808f, 0.933f, 0.933f, 0.0f, 0.0f) + close() + } + path( + fill = SolidColor(Color(0xFFa79691)), + stroke = null, + strokeLineWidth = 1.04994f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(345.275f, 247.582f) + curveToRelative(1.808f, 1.808f, 0.933f, 0.933f, 0.0f, 0.0f) + close() + moveTo(120.587f, 248.632f) + curveToRelative(1.808f, 1.808f, 0.933f, 0.933f, 0.0f, 0.0f) + close() + } + path( + fill = SolidColor(Color(0xFFbbced3)), + stroke = null, + strokeLineWidth = 1.04994f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(70.19f, 296.929f) + curveToRelative(0.63f, 13.988f, -1.646f, 28.325f, 2.1f, 41.998f) + curveToRelative(-28.14f, 7.44f, -58.322f, 24.801f, -66.817f, 54.597f) + curveToRelative(-8.199f, 25.343f, 9.633f, 50.004f, 29.111f, 64.51f) + curveToRelative(42.757f, 32.57f, 96.75f, 46.56f, 149.387f, 52.053f) + curveToRelative(25.565f, 3.024f, 51.567f, 2.3f, 77.309f, 1.671f) + curveToRelative(57.383f, -3.76f, 116.697f, -14.922f, 165.891f, -46.489f) + curveToRelative(24.111f, -15.167f, 48.186f, -40.127f, 45.789f, -70.696f) + curveToRelative(-3.387f, -27.595f, -31.449f, -41.659f, -55.239f, -48.998f) + curveToRelative(-6.858f, -2.016f, -13.845f, -4.048f, -20.999f, -4.549f) + curveToRelative(2.547f, -12.394f, 4.107f, -10.878f, -7.592f, -11.302f) + curveToRelative(-3.148f, 19.859f, -11.241f, 41.844f, -22.361f, 58.549f) + curveToRelative(-9.335f, 27.17f, -32.881f, 46.946f, -58.242f, 58.797f) + curveToRelative(41.174f, -5.651f, 76.469f, -60.671f, 83.995f, -91.345f) + curveToRelative(21.082f, 4.352f, 45.071f, 10.026f, 58.388f, 28.348f) + curveToRelative(9.974f, 15.413f, -3.736f, 32.736f, -13.882f, 44.068f) + curveToRelative(-102.215f, 85.133f, -293.119f, 73.315f, -394.849f, 9.366f) + curveToRelative(-11.24f, -12.658f, -26.761f, -34.252f, -13.844f, -51.488f) + curveToRelative(11.011f, -15.95f, 29.052f, -25.575f, 47.104f, -31.345f) + curveToRelative(12.867f, 37.173f, 39.595f, 70.253f, 75.071f, 87.903f) + curveToRelative(2.313f, -1.995f, -10.941f, -7.591f, -14.174f, -11.112f) + curveTo(123.074f, 420.237f, 108.45f, 408.223f, 102.359f, 391.483f) + curveTo(104.483f, 388.761f, 94.882f, 380.021f, 91.976f, 372.525f) + curveTo(78.856f, 349.743f, 75.034f, 323.229f, 70.948f, 297.746f) + close() + } + path( + fill = SolidColor(Color(0xFFe0e0e0)), + stroke = null, + strokeLineWidth = 1.04994f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(392.523f, 355.726f) + curveToRelative(-11.611f, 47.0f, -52.915f, 84.188f, -99.673f, 96.085f) + curveToRelative(-25.958f, 8.69f, -52.515f, 9.949f, -79.602f, 8.14f) + curveToRelative(-28.816f, -2.721f, -56.323f, -11.953f, -80.06f, -28.483f) + curveToRelative(-26.745f, -18.753f, -46.217f, -46.561f, -57.747f, -76.792f) + curveToRelative(-21.268f, 6.033f, -44.593f, 18.658f, -52.059f, 40.948f) + curveToRelative(-4.034f, 54.612f, 91.596f, 82.662f, 133.955f, 89.654f) + curveToRelative(55.068f, 8.766f, 123.339f, 7.499f, 172.191f, -3.471f) + curveToRelative(36.304f, -7.727f, 158.106f, -59.911f, 118.328f, -103.029f) + curveToRelative(-14.746f, -13.873f, -35.783f, -19.848f, -55.332f, -23.051f) + close() + } + path( + fill = SolidColor(Color(0xFF6aa5ac)), + stroke = null, + strokeLineWidth = 1.04994f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(366.723f, 388.627f) + curveToRelative(-25.239f, 35.357f, -71.86f, 51.221f, -113.533f, 54.886f) + curveToRelative(-24.65f, 3.208f, -48.923f, 0.367f, -73.095f, -5.062f) + curveToRelative(-29.288f, -7.565f, -59.668f, -27.713f, -79.046f, -51.061f) + curveToRelative(20.561f, 60.682f, 97.111f, 78.574f, 150.782f, 73.331f) + curveToRelative(45.365f, -4.706f, 103.34f, -25.754f, 114.893f, -72.093f) + close() + } + path( + fill = SolidColor(Color(0xFFb9cdd5)), + stroke = null, + fillAlpha = 0.632035f, + strokeLineWidth = 1.04994f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(335.914f, 14.7f) + curveToRelative(6.079f, 8.502f, 9.15f, 22.2f, -1.522f, 28.597f) + curveToRelative(-15.584f, 5.865f, -32.814f, 4.136f, -49.138f, 6.08f) + curveToRelative(-29.968f, 2.843f, -64.819f, 9.676f, -81.487f, 37.769f) + curveToRelative(-5.635f, 8.926f, -7.22f, 19.092f, -8.767f, 29.392f) + curveToRelative(-0.014f, 0.002f, -0.027f, 0.004f, -0.041f, 0.006f) + curveToRelative(-0.052f, 15.851f, 2.979f, 29.867f, 9.472f, 43.368f) + lineToRelative(-0.15f, 0.004f) + curveToRelative(8.964f, 13.262f, 19.474f, 29.828f, 35.825f, 35.985f) + curveToRelative(11.442f, 2.558f, 10.867f, -12.151f, 10.957f, -20.164f) + curveToRelative(-0.349f, -14.022f, 1.126f, -23.577f, 8.287f, -32.411f) + curveToRelative(-0.001f, -0.0f, -1.713f, 3.224f, -0.004f, 0.0f) + curveToRelative(1.709f, -3.224f, 6.5f, -8.891f, 11.209f, -13.746f) + curveToRelative(4.709f, -4.855f, 13.22f, -8.825f, 20.482f, -11.601f) + curveToRelative(7.262f, -2.776f, 72.306f, -24.482f, 85.154f, -42.383f) + curveTo(390.225f, 49.263f, 375.539f, 12.278f, 348.251f, 1.225f) + curveTo(338.856f, -2.773f, 332.82f, 9.412f, 335.914f, 14.7f) + close() + } + } + .build() + return customHashTagIconsCoffee!! + } + +private var customHashTagIconsCoffee: ImageVector? = null diff --git a/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/CustomHashTagIcons.kt b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/CustomHashTagIcons.kt new file mode 100644 index 000000000..52346e19d --- /dev/null +++ b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/CustomHashTagIcons.kt @@ -0,0 +1,52 @@ +/** + * Copyright (c) 2024 Vitor Pamplona + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package com.vitorpamplona.amethyst.commons.hashtags + +import androidx.compose.ui.graphics.vector.ImageVector +import kotlin.collections.List as ____KtList + +public object CustomHashTagIcons + +private var customHashTagIconsAllIconsCache: ____KtList? = null + +public val CustomHashTagIcons.AllIcons: ____KtList + get() { + if (customHashTagIconsAllIconsCache != null) { + return customHashTagIconsAllIconsCache!! + } + customHashTagIconsAllIconsCache = + listOf( + Lightning, + Mate, + Skull, + Coffee, + Plebs, + Weed, + Cashu, + Grownostr, + Footstr, + Btc, + Zap, + Tunestr, + Nostr, + ) + return customHashTagIconsAllIconsCache!! + } diff --git a/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Footstr.kt b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Footstr.kt new file mode 100644 index 000000000..01163d9f2 --- /dev/null +++ b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Footstr.kt @@ -0,0 +1,162 @@ +/** + * Copyright (c) 2024 Vitor Pamplona + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package com.vitorpamplona.amethyst.commons.hashtags + +import androidx.compose.foundation.Image +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.graphics.vector.rememberVectorPainter +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +@Preview +@Composable +fun CustomHashTagIconsFootstrPreview() { + Image( + painter = + rememberVectorPainter( + CustomHashTagIcons.Footstr, + ), + contentDescription = "", + ) +} + +public val CustomHashTagIcons.Footstr: ImageVector + get() { + if (customHashTagIconsFootStr != null) { + return customHashTagIconsFootStr!! + } + customHashTagIconsFootStr = + Builder( + name = "Footstr", + defaultWidth = 236.0.dp, + defaultHeight = 236.0.dp, + viewportWidth = 236.0f, + viewportHeight = 236.0f, + ).apply { + path( + fill = SolidColor(Color(0xFFe102c2)), + stroke = null, + strokeLineWidth = 1.16731f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(172.024f, 18.47f) + lineTo(184.052f, 17.337f) + curveTo(183.463f, 10.976f, 181.095f, 5.502f, 177.469f, 0.069f) + moveTo(192.472f, 156.68f) + curveToRelative(15.586f, 0.841f, 18.539f, 6.439f, 27.813f, -9.063f) + curveToRelative(8.364f, -13.977f, 2.988f, -28.3f, 6.501f, -43.049f) + curveToRelative(1.282f, -5.383f, 3.715f, -10.25f, 4.063f, -15.86f) + curveToRelative(0.334f, -5.423f, -1.494f, -10.524f, -2.089f, -15.86f) + curveToRelative(-0.564f, -5.045f, -0.376f, -10.678f, -5.273f, -14.038f) + curveToRelative(-5.438f, -3.733f, -9.84f, 1.109f, -10.437f, 6.11f) + curveToRelative(-0.582f, 4.874f, 0.226f, 9.842f, -0.256f, 14.726f) + curveToRelative(-0.422f, 4.273f, -1.943f, 8.124f, -2.05f, 12.462f) + curveToRelative(-0.084f, 3.439f, -1.441f, 8.999f, -6.245f, 8.999f) + curveToRelative(-8.641f, 0.0f, -6.692f, -13.224f, -7.853f, -18.062f) + curveToRelative(-2.124f, -8.857f, -5.552f, -16.829f, -6.371f, -26.056f) + curveToRelative(-0.605f, -6.811f, 1.684f, -13.506f, 0.771f, -20.392f) + curveToRelative(-0.618f, -4.663f, -2.976f, -11.245f, -8.249f, -12.861f) + curveToRelative(-7.27f, -2.228f, -10.639f, 5.207f, -10.751f, 10.596f) + curveToRelative(-0.119f, 5.818f, 2.058f, 11.23f, 2.336f, 16.993f) + curveToRelative(0.445f, 9.246f, 1.175f, 18.807f, 1.322f, 27.999f) + curveToRelative(0.051f, 3.174f, -1.301f, 6.191f, -1.097f, 9.387f) + curveToRelative(0.304f, 4.758f, 7.302f, 11.044f, 3.842f, 15.448f) + curveToRelative(-4.18f, 5.317f, -10.196f, -0.538f, -12.803f, -4.121f) + curveToRelative(-5.162f, -7.099f, -8.576f, -15.319f, -13.304f, -22.635f) + curveToRelative(-2.224f, -3.438f, -5.693f, -6.276f, -10.262f, -5.173f) + curveToRelative(-12.213f, 2.948f, -2.336f, 18.13f, 1.648f, 23.277f) + curveToRelative(10.468f, 13.526f, 19.591f, 27.625f, 30.784f, 40.783f) + curveToRelative(6.229f, 7.322f, 15.101f, 11.077f, 17.959f, 20.392f) + moveToRelative(25.259f, -125.748f) + curveToRelative(1.05f, 7.343f, 2.406f, 14.051f, 2.406f, 21.524f) + lineToRelative(9.622f, 3.399f) + curveToRelative(-0.44f, -9.512f, -3.839f, -18.966f, -12.028f, -24.923f) + moveToRelative(-80.587f, 15.86f) + curveToRelative(-4.545f, 7.606f, -6.269f, 16.447f, -3.608f, 24.923f) + curveToRelative(3.228f, -1.535f, 6.071f, -2.76f, 9.622f, -3.399f) + curveToRelative(-1.064f, -6.786f, -3.047f, -15.302f, -6.014f, -21.524f) + moveToRelative(-78.182f, 1.133f) + curveToRelative(-1.517f, 6.905f, -3.735f, 13.678f, -6.014f, 20.392f) + lineTo(66.178f, 69.449f) + curveTo(63.783f, 62.514f, 62.59f, 54.306f, 58.961f, 47.925f) + moveTo(45.731f, 207.659f) + curveToRelative(2.62f, -8.546f, 8.778f, -9.623f, 13.924f, -15.984f) + curveToRelative(8.239f, -10.187f, 17.116f, -20.089f, 25.003f, -30.464f) + curveToRelative(3.56f, -4.686f, 6.036f, -10.011f, 9.622f, -14.727f) + curveToRelative(3.915f, -5.147f, 14.26f, -20.373f, 1.903f, -23.277f) + curveToRelative(-4.614f, -1.084f, -8.062f, 1.695f, -10.322f, 5.173f) + curveToRelative(-4.74f, 7.292f, -8.192f, 15.572f, -13.305f, 22.635f) + curveToRelative(-2.521f, 3.482f, -7.669f, 8.817f, -11.941f, 4.298f) + curveToRelative(-4.307f, -4.555f, 2.592f, -10.65f, 3.011f, -15.626f) + curveToRelative(0.277f, -3.275f, -1.021f, -6.315f, -1.066f, -9.543f) + curveToRelative(-0.179f, -12.863f, 1.339f, -26.465f, 3.26f, -39.17f) + curveToRelative(0.915f, -6.054f, -0.085f, -19.425f, -10.413f, -16.26f) + curveToRelative(-5.273f, 1.617f, -7.629f, 8.197f, -8.249f, 12.861f) + curveToRelative(-0.811f, 6.116f, 1.066f, 12.084f, 0.589f, 18.126f) + curveToRelative(-0.796f, 10.107f, -4.172f, 18.642f, -6.357f, 28.322f) + curveToRelative(-1.105f, 4.896f, 1.127f, 17.891f, -7.686f, 17.891f) + curveToRelative(-5.485f, 0.0f, -6.35f, -6.214f, -6.357f, -9.961f) + curveToRelative(-0.007f, -4.018f, -1.955f, -7.399f, -2.287f, -11.329f) + curveToRelative(-0.413f, -4.87f, 0.609f, -9.83f, 0.153f, -14.726f) + curveToRelative(-0.437f, -4.689f, -4.81f, -9.935f, -10.285f, -6.762f) + curveToRelative(-5.149f, 2.986f, -4.939f, 9.806f, -5.485f, 14.691f) + curveToRelative(-0.552f, 4.945f, -2.241f, 9.713f, -2.136f, 14.727f) + curveToRelative(0.117f, 5.621f, 2.272f, 10.533f, 3.802f, 15.86f) + curveToRelative(4.381f, 15.243f, -1.813f, 29.587f, 7.01f, 44.182f) + curveToRelative(2.41f, 3.988f, 5.784f, 9.177f, 10.775f, 10.539f) + curveToRelative(4.794f, 1.31f, 11.713f, -1.435f, 16.838f, -1.476f) + moveTo(19.269f, 81.911f) + curveTo(12.507f, 89.006f, 8.661f, 97.251f, 8.444f, 106.834f) + curveToRelative(3.191f, -1.408f, 6.204f, -2.592f, 9.622f, -3.399f) + curveToRelative(0.0f, -6.502f, 3.112f, -15.605f, 1.203f, -21.524f) + moveToRelative(80.587f, 15.86f) + curveToRelative(-0.331f, 7.133f, -3.121f, 13.512f, -4.811f, 20.392f) + curveToRelative(3.415f, 1.23f, 6.452f, 2.819f, 9.622f, 4.531f) + curveToRelative(2.546f, -8.112f, 1.766f, -18.722f, -4.811f, -24.923f) + moveToRelative(92.745f, 69.945f) + curveToRelative(-12.846f, 5.17f, -0.975f, 22.186f, 10.583f, 17.445f) + curveToRelative(14.948f, -6.131f, 2.896f, -22.87f, -10.583f, -17.445f) + moveToRelative(-9.752f, 20.684f) + curveToRelative(0.0f, 7.665f, -0.565f, 15.042f, -1.203f, 22.657f) + curveToRelative(5.293f, -5.307f, 10.001f, -12.128f, 14.434f, -18.126f) + curveToRelative(-4.675f, -1.022f, -8.892f, -2.614f, -13.231f, -4.531f) + moveTo(34.912f, 218.458f) + curveToRelative(-13.565f, 3.164f, -4.322f, 20.77f, 7.211f, 17.989f) + curveToRelative(7.881f, -1.9f, 12.632f, -11.136f, 5.51f, -16.777f) + curveToRelative(-3.211f, -2.542f, -8.913f, -2.1f, -12.721f, -1.212f) + } + } + .build() + return customHashTagIconsFootStr!! + } + +private var customHashTagIconsFootStr: ImageVector? = null diff --git a/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Grownostr.kt b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Grownostr.kt new file mode 100644 index 000000000..f2a838856 --- /dev/null +++ b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Grownostr.kt @@ -0,0 +1,297 @@ +/** + * Copyright (c) 2024 Vitor Pamplona + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package com.vitorpamplona.amethyst.commons.hashtags + +import androidx.compose.foundation.Image +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.graphics.vector.rememberVectorPainter +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +@Preview +@Composable +fun CustomHashTagIconsGrownostrPreview() { + Image( + painter = + rememberVectorPainter( + CustomHashTagIcons.Grownostr, + ), + contentDescription = "", + ) +} + +public val CustomHashTagIcons.Grownostr: ImageVector + get() { + if (customHashTagIconsGrowNostr != null) { + return customHashTagIconsGrowNostr!! + } + customHashTagIconsGrowNostr = + Builder( + name = "Grownostr", + defaultWidth = 128.0.dp, + defaultHeight = 128.0.dp, + viewportWidth = 128.0f, + viewportHeight = 128.0f, + ).apply { + path( + fill = SolidColor(Color(0xFF6200ee)), + stroke = null, + strokeLineWidth = 1.23984f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(9.224f, 0.486f) + curveTo(32.035f, 17.55f, 41.727f, 30.892f, 55.972f, 46.502f) + curveTo(58.127f, 41.355f, 55.87f, 32.947f, 54.169f, 27.762f) + curveTo(47.608f, 7.761f, 28.73f, 0.498f, 9.224f, 0.486f) + close() + } + path( + fill = SolidColor(Color(0xFF6200ee)), + stroke = null, + strokeLineWidth = 1.23984f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(71.434f, 71.774f) + curveTo(80.152f, 58.93f, 119.83f, 33.376f, 120.809f, 24.042f) + curveTo(99.67f, 24.479f, 79.224f, 31.773f, 72.715f, 53.799f) + curveToRelative(-1.57f, 5.311f, -1.279f, 12.494f, -1.28f, 17.975f) + close() + } + path( + fill = SolidColor(Color(0xFF3700b3)), + stroke = null, + strokeLineWidth = 1.23984f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(106.897f, 34.151f) + curveTo(85.728f, 55.379f, 83.294f, 51.88f, 72.931f, 73.418f) + curveTo(99.006f, 72.295f, 124.096f, 52.448f, 120.96f, 24.204f) + curveToRelative(-6.391f, 2.874f, -10.261f, 5.064f, -14.063f, 9.946f) + close() + } + path( + fill = SolidColor(Color(0xFF3700b3)), + stroke = null, + strokeLineWidth = 1.23984f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(8.753f, 0.486f) + curveTo(9.992f, 16.183f, 11.87f, 33.641f, 26.582f, 42.19f) + curveToRelative(8.311f, 4.828f, 18.0f, 6.141f, 27.276f, 7.889f) + curveTo(51.373f, 34.848f, 52.381f, 36.195f, 23.789f, 11.482f) + curveTo(19.47f, 7.834f, 15.869f, 4.353f, 8.753f, 0.486f) + close() + } + path( + fill = SolidColor(Color(0xFF818181)), + stroke = null, + strokeLineWidth = 1.23984f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(32.781f, 4.205f) + lineToRelative(1.24f, 1.24f) + close() + } + path( + fill = SolidColor(Color(0xFF35b458)), + stroke = null, + strokeLineWidth = 1.23984f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(21.622f, 10.404f) + curveToRelative(1.727f, 1.778f, 2.769f, 2.535f, 4.959f, 3.72f) + curveToRelative(-2.998f, 0.895f, -5.545f, 1.175f, -8.679f, 1.24f) + verticalLineToRelative(3.72f) + curveToRelative(12.329f, 0.0f, 18.717f, 3.247f, 26.037f, 13.638f) + horizontalLineToRelative(-8.679f) + verticalLineToRelative(3.72f) + curveToRelative(3.974f, 0.004f, 8.635f, -0.583f, 11.99f, 1.987f) + curveToRelative(5.095f, 3.903f, 6.276f, 10.83f, 7.861f, 16.61f) + curveToRelative(4.072f, 14.857f, 6.186f, 30.48f, 6.186f, 45.874f) + curveToRelative(0.0f, 7.101f, -12.143f, 35.848f, 4.959f, 24.797f) + curveToRelative(2.201f, -11.686f, -0.793f, -24.101f, -0.55f, -34.716f) + curveToRelative(3.591f, -12.146f, 10.482f, -24.099f, 19.148f, -30.583f) + curveToRelative(4.709f, -1.594f, 11.079f, 2.021f, 12.398f, -4.132f) + lineTo(84.854f, 57.518f) + curveTo(92.594f, 48.012f, 98.343f, 42.675f, 110.891f, 42.64f) + verticalLineToRelative(-2.48f) + horizontalLineToRelative(-8.679f) + lineToRelative(4.959f, -6.199f) + curveTo(99.438f, 34.305f, 94.621f, 42.1f, 88.573f, 46.36f) + curveTo(88.312f, 42.964f, 88.199f, 42.117f, 84.854f, 41.4f) + curveTo(84.466f, 54.133f, 72.011f, 71.537f, 63.777f, 79.835f) + curveTo(63.682f, 68.403f, 61.36f, 55.477f, 56.361f, 45.12f) + curveTo(53.377f, 38.937f, 48.971f, 33.724f, 45.694f, 27.762f) + curveToRelative(-1.764f, -3.211f, -2.345f, -6.791f, -4.234f, -9.919f) + curveToRelative(-0.849f, 1.547f, -0.929f, 1.919f, -1.24f, 3.72f) + curveTo(34.743f, 17.118f, 28.995f, 10.143f, 21.622f, 10.404f) + close() + } + path( + fill = SolidColor(Color(0xFF818181)), + stroke = null, + strokeLineWidth = 1.23984f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(42.699f, 10.404f) + lineToRelative(1.24f, 1.24f) + close() + } + path( + fill = SolidColor(Color(0xFF818181)), + stroke = null, + strokeLineWidth = 1.23984f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(103.452f, 25.282f) + lineToRelative(1.24f, 1.24f) + close() + } + path( + fill = SolidColor(Color(0xFF01ff01)), + stroke = null, + strokeLineWidth = 1.23984f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(12.943f, 27.762f) + lineToRelative(1.24f, 1.24f) + lineToRelative(-1.24f, -1.24f) + moveToRelative(76.87f, 2.48f) + lineToRelative(1.24f, 1.24f) + close() + } + path( + fill = SolidColor(Color(0xFF818181)), + stroke = null, + strokeLineWidth = 1.23984f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(73.695f, 48.839f) + lineToRelative(1.24f, 1.24f) + close() + } + path( + fill = SolidColor(Color(0xFFf99721)), + stroke = null, + strokeLineWidth = 1.18196f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(0.081f, 127.881f) + curveToRelative(9.289f, 0.0f, 23.307f, 0.004f, 33.058f, -0.192f) + curveToRelative(18.284f, -0.22f, 37.955f, -11.486f, 49.607f, -18.06f) + curveToRelative(-6.533f, -6.661f, -21.685f, -9.693f, -28.933f, -6.422f) + curveToRelative(-6.339f, 4.411f, -16.531f, 6.015f, -23.401f, 9.187f) + curveToRelative(-10.618f, 8.433f, -25.203f, 8.662f, -30.331f, 15.487f) + close() + } + path( + fill = SolidColor(Color(0xFF857f2d)), + stroke = null, + strokeLineWidth = 1.01399f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(61.97f, 101.518f) + lineToRelative(1.014f, 1.014f) + close() + } + path( + fill = SolidColor(Color(0xFFffff01)), + stroke = null, + strokeLineWidth = 1.01399f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(51.83f, 105.574f) + lineToRelative(1.014f, 1.014f) + lineToRelative(-1.014f, -1.014f) + moveToRelative(23.322f, 0.0f) + lineToRelative(1.014f, 1.014f) + close() + } + path( + fill = SolidColor(Color(0xFFdf7f07)), + stroke = null, + strokeLineWidth = 1.19243f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(31.334f, 127.881f) + horizontalLineToRelative(96.757f) + curveToRelative(-5.648f, -7.803f, -12.978f, -6.398f, -22.037f, -10.163f) + curveToRelative(-9.516f, -3.956f, -14.557f, -9.591f, -27.043f, -7.551f) + curveToRelative(-9.571f, 1.564f, -14.284f, 7.555f, -22.675f, 10.005f) + curveToRelative(-9.678f, 2.827f, -17.397f, 1.076f, -25.003f, 7.709f) + close() + } + } + .build() + return customHashTagIconsGrowNostr!! + } + +private var customHashTagIconsGrowNostr: ImageVector? = null diff --git a/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Lightning.kt b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Lightning.kt new file mode 100644 index 000000000..f60683700 --- /dev/null +++ b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Lightning.kt @@ -0,0 +1,201 @@ +/** + * Copyright (c) 2024 Vitor Pamplona + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package com.vitorpamplona.amethyst.commons.hashtags + +import androidx.compose.foundation.Image +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.graphics.vector.rememberVectorPainter +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +@Preview +@Composable +fun CustomHashTagIconsLightningPreview() { + Image( + painter = + rememberVectorPainter( + CustomHashTagIcons.Lightning, + ), + contentDescription = "", + ) +} + +public val CustomHashTagIcons.Lightning: ImageVector + get() { + if (customHashTagIconsLightning != null) { + return customHashTagIconsLightning!! + } + customHashTagIconsLightning = + Builder( + name = "Lightning", + defaultWidth = 512.0.dp, + defaultHeight = 512.0.dp, + viewportWidth = 512.0f, + viewportHeight = 512.0f, + ).apply { + path( + fill = SolidColor(Color(0xFFfeb804)), + stroke = null, + strokeLineWidth = 1.04238f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(405.814f, 0.318f) + curveTo(398.493f, 10.851f, 392.367f, 18.665f, 387.207f, 28.095f) + curveTo(347.366f, 84.635f, 306.066f, 140.12f, 265.203f, 195.919f) + curveToRelative(-6.717f, 6.205f, -2.232f, 18.181f, 7.303f, 15.634f) + curveToRelative(15.682f, 3.42f, 21.453f, -10.422f, 21.453f, -10.422f) + curveToRelative(0.0f, 0.0f, 77.893f, -124.006f, 115.841f, -186.586f) + curveToRelative(2.589f, -5.525f, 4.24f, -14.798f, -3.986f, -14.226f) + close() + } + path( + fill = SolidColor(Color(0xFFffc927)), + stroke = null, + strokeLineWidth = 1.04238f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(134.106f, 269.928f) + lineToRelative(84.145f, -1.043f) + lineToRelative(23.28f, 8.339f) + lineToRelative(-22.137f, 38.786f) + lineToRelative(-109.766f, 188.455f) + lineToRelative(3.586f, 0.316f) + lineToRelative(279.741f, -251.785f) + lineToRelative(45.052f, -42.484f) + lineToRelative(-136.776f, 0.479f) + lineToRelative(-35.283f, -0.668f) + lineTo(406.128f, 0.168f) + curveToRelative(0.0f, 0.0f, -223.081f, 181.661f, -329.737f, 270.145f) + lineToRelative(-1.05f, 0.837f) + close() + } + path( + fill = SolidColor(Color(0xFFfeb804)), + stroke = null, + strokeLineWidth = 1.04238f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(109.658f, 504.464f) + curveToRelative(0.641f, 10.482f, 14.136f, 7.316f, 18.777f, 1.428f) + curveToRelative(110.113f, -98.518f, 227.418f, -195.827f, 322.374f, -283.083f) + curveToRelative(2.864f, -9.815f, -3.787f, -12.451f, -12.851f, -12.166f) + curveToRelative(-78.496f, 71.808f, -160.716f, 147.927f, -240.441f, 218.409f) + curveToRelative(-26.97f, 23.781f, -53.639f, 47.901f, -80.56f, 71.73f) + curveToRelative(-2.157f, 1.697f, -4.601f, 3.112f, -7.299f, 3.683f) + close() + moveTo(233.742f, 290.738f) + curveToRelative(6.731f, -10.679f, 15.607f, -23.143f, -0.042f, -21.833f) + curveToRelative(-52.452f, -0.003f, -100.964f, 0.787f, -149.966f, 2.256f) + curveToRelative(-7.988f, -0.012f, -8.925f, -2.348f, -12.914f, 9.06f) + curveToRelative(-4.908f, 14.035f, 13.177f, 11.664f, 21.968f, 11.597f) + curveToRelative(42.7f, -0.17f, 85.448f, 0.628f, 128.072f, -1.042f) + curveToRelative(4.996f, -0.006f, 7.714f, -0.11f, 12.882f, -0.037f) + close() + } + path( + fill = SolidColor(Color(0xFFffe567)), + stroke = null, + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(295.999f, 97.743f) + curveToRelative(-8.582f, 4.871f, -15.257f, 12.447f, -22.999f, 18.528f) + curveToRelative(-35.757f, 30.897f, -71.357f, 61.981f, -107.631f, 92.275f) + curveTo(151.571f, 220.667f, 137.064f, 232.031f, 124.044f, 245.0f) + curveToRelative(-4.429f, 3.727f, -6.853f, 10.687f, -2.838f, 15.612f) + curveToRelative(5.438f, 7.373f, 15.928f, 3.727f, 21.794f, -1.137f) + curveToRelative(10.009f, -8.23f, 19.205f, -17.381f, 28.703f, -26.179f) + curveToRelative(10.022f, -9.859f, 19.614f, -20.178f, 30.297f, -29.335f) + curveToRelative(9.805f, -9.67f, 19.298f, -19.671f, 29.707f, -28.698f) + curveToRelative(9.648f, -9.595f, 19.134f, -19.361f, 29.354f, -28.349f) + curveToRelative(10.458f, -10.354f, 20.912f, -20.716f, 30.727f, -31.678f) + curveToRelative(3.954f, -4.612f, 10.405f, -8.489f, 10.761f, -15.087f) + curveToRelative(-0.53f, -3.162f, -4.126f, -3.243f, -6.55f, -2.405f) + close() + } + path( + fill = SolidColor(Color(0xFFffd84b)), + stroke = null, + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(265.0f, 273.668f) + curveToRelative(-10.032f, 4.073f, -14.755f, 14.571f, -20.726f, 22.922f) + curveToRelative(-7.915f, 11.998f, -15.59f, 24.152f, -23.688f, 36.032f) + curveToRelative(-6.853f, 10.398f, -13.505f, 20.926f, -20.449f, 31.265f) + curveToRelative(-7.068f, 11.266f, -14.611f, 22.226f, -21.705f, 33.476f) + curveToRelative(-4.087f, 6.761f, -9.122f, 13.119f, -11.751f, 20.637f) + curveToRelative(-1.054f, 3.042f, 1.146f, 7.25f, 4.719f, 6.307f) + curveToRelative(5.831f, -1.77f, 8.704f, -7.808f, 12.382f, -12.187f) + curveToRelative(29.287f, -39.128f, 58.731f, -78.141f, 87.916f, -117.344f) + curveToRelative(3.727f, -5.003f, 6.11f, -12.684f, 2.56f, -18.382f) + curveToRelative(-2.25f, -2.576f, -5.963f, -3.682f, -9.258f, -2.726f) + close() + } + path( + fill = SolidColor(Color(0xFFffd84b)), + stroke = null, + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(276.0f, 279.0f) + lineTo(276.0f, 285.0f) + lineTo(276.582f, 283.918f) + lineTo(276.628f, 283.502f) + lineTo(276.806f, 282.738f) + lineTo(276.806f, 281.262f) + lineTo(276.628f, 280.498f) + lineTo(276.582f, 280.082f) + lineTo(276.0f, 279.0f) + close() + } + } + .build() + return customHashTagIconsLightning!! + } + +private var customHashTagIconsLightning: ImageVector? = null diff --git a/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Mate.kt b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Mate.kt new file mode 100644 index 000000000..63dda952e --- /dev/null +++ b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Mate.kt @@ -0,0 +1,240 @@ +/** + * Copyright (c) 2024 Vitor Pamplona + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package com.vitorpamplona.amethyst.commons.hashtags + +import androidx.compose.foundation.Image +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.graphics.vector.rememberVectorPainter +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +@Preview +@Composable +fun CustomHashTagIconsMatePreview() { + Image( + painter = + rememberVectorPainter( + CustomHashTagIcons.Mate, + ), + contentDescription = "", + ) +} + +public val CustomHashTagIcons.Mate: ImageVector + get() { + if (customHashTagIconsMate != null) { + return customHashTagIconsMate!! + } + customHashTagIconsMate = + Builder( + name = "Mate", + defaultWidth = 800.0.dp, + defaultHeight = 800.0.dp, + viewportWidth = 128.0f, + viewportHeight = 128.0f, + ).apply { + path( + fill = SolidColor(Color(0xFF865c52)), + stroke = null, + strokeLineWidth = 1.05494f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(31.448f, 53.887f) + curveToRelative(0.0f, 0.0f, -12.564f, 15.55f, -11.963f, 32.693f) + curveToRelative(0.601f, 17.143f, 10.37f, 40.868f, 44.856f, 41.66f) + curveTo(98.827f, 129.041f, 112.024f, 99.44f, 107.203f, 78.805f) + curveTo(102.308f, 57.843f, 91.653f, 51.092f, 91.653f, 51.092f) + close() + } + path( + fill = SolidColor(Color(0xFFb0b0b0)), + stroke = null, + strokeLineWidth = 1.05494f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(30.625f, 55.037f) + curveToRelative(0.0f, 0.0f, 0.084f, -1.783f, 0.77f, -3.945f) + curveToRelative(0.622f, -1.983f, 1.793f, -3.977f, 1.793f, -3.977f) + curveToRelative(24.589f, 17.122f, 31.545f, 15.636f, 56.059f, 5.349f) + curveToRelative(1.192f, -0.433f, 1.502f, -7.396f, 1.502f, -7.396f) + curveToRelative(0.0f, 0.0f, 3.077f, 3.619f, 3.889f, 6.605f) + curveToRelative(0.475f, 1.73f, 0.454f, 3.756f, 0.454f, 3.756f) + curveToRelative(0.0f, 0.0f, 0.696f, 6.161f, -11.362f, 13.704f) + curveTo(71.609f, 76.706f, 50.036f, 75.018f, 39.592f, 67.401f) + curveTo(31.585f, 61.546f, 30.625f, 55.037f, 30.625f, 55.037f) + close() + } + path( + fill = SolidColor(Color(0xFFe0e0e0)), + stroke = null, + strokeLineWidth = 1.05494f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(32.692f, 49.889f) + curveTo(32.503f, 58.867f, 48.77f, 66.547f, 62.094f, 66.631f) + curveTo(79.943f, 66.736f, 92.813f, 58.223f, 92.813f, 50.079f) + curveTo(87.333f, 24.888f, 34.137f, 29.554f, 32.692f, 49.889f) + close() + } + path( + fill = SolidColor(Color(0xFF858585)), + stroke = null, + strokeLineWidth = 1.05494f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(79.447f, 42.188f) + curveToRelative(-4.954f, -6.746f, -36.696f, -8.061f, -36.955f, 5.591f) + curveToRelative(0.19f, 7.3f, 9.642f, 8.302f, 9.642f, 8.302f) + lineToRelative(24.38f, -3.745f) + close() + } + path( + fill = SolidColor(Color(0xFF96a520)), + stroke = null, + strokeLineWidth = 1.05494f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(75.47f, 47.589f) + curveToRelative(0.0f, 0.0f, -3.597f, -3.123f, -13.746f, -3.123f) + curveToRelative(-10.149f, 0.0f, -15.729f, 3.407f, -16.204f, 6.825f) + curveToRelative(-0.274f, 1.973f, 0.285f, 2.469f, 0.285f, 2.469f) + curveToRelative(0.0f, 0.0f, 5.686f, 4.357f, 17.438f, 4.167f) + curveToRelative(11.752f, -0.19f, 13.461f, -2.279f, 13.461f, -2.279f) + close() + } + path( + fill = SolidColor(Color(0xFFe0e0e0)), + stroke = null, + strokeLineWidth = 1.05494f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(69.594f, 58.582f) + curveToRelative(0.0f, 0.0f, 15.824f, -30.519f, 17.248f, -32.028f) + curveTo(88.267f, 25.045f, 111.567f, 0.039f, 111.567f, 0.039f) + lineToRelative(3.597f, 3.218f) + lineToRelative(-6.537f, 7.473f) + curveToRelative(0.0f, 0.0f, -17.628f, 19.527f, -17.913f, 20.371f) + curveToRelative(-0.285f, 0.854f, -9.568f, 19.801f, -9.948f, 20.466f) + curveToRelative(-0.38f, 0.665f, -2.089f, 7.3f, -2.469f, 7.395f) + curveToRelative(-0.369f, 0.095f, -8.703f, -0.38f, -8.703f, -0.38f) + close() + } + path( + fill = SolidColor(Color(0xFFb0b0b0)), + stroke = null, + strokeLineWidth = 1.05494f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(76.135f, 56.018f) + curveToRelative(0.0f, 0.0f, 13.081f, -25.392f, 13.841f, -26.627f) + curveTo(90.735f, 28.157f, 114.51f, 2.645f, 114.51f, 2.645f) + lineToRelative(1.793f, 1.593f) + curveToRelative(0.0f, 0.0f, -22.973f, 25.798f, -23.67f, 26.758f) + curveToRelative(-0.992f, 1.361f, -11.921f, 22.776f, -11.921f, 22.776f) + curveToRelative(0.0f, 0.0f, -1.076f, 0.77f, -1.888f, 1.192f) + curveToRelative(-1.477f, 0.76f, -2.69f, 1.055f, -2.69f, 1.055f) + close() + } + path( + fill = SolidColor(Color(0xFFb0b0b0)), + stroke = null, + strokeLineWidth = 1.05494f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(95.841f, 15.277f) + curveToRelative(-0.475f, -0.105f, -3.882f, 3.407f, -3.692f, 3.977f) + curveToRelative(0.19f, 0.57f, 5.486f, 5.57f, 6.34f, 5.855f) + curveToRelative(0.854f, 0.285f, 3.692f, -3.313f, 3.787f, -3.692f) + curveToRelative(0.095f, -0.38f, -5.581f, -5.95f, -6.435f, -6.14f) + close() + } + path( + fill = SolidColor(Color(0xFFffffff)), + stroke = null, + strokeLineWidth = 1.05494f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(95.651f, 16.88f) + curveToRelative(-1.15f, 0.0f, -1.582f, 0.992f, -1.614f, 1.994f) + curveToRelative(-0.032f, 1.139f, 0.475f, 1.994f, 1.614f, 1.994f) + curveToRelative(1.139f, 0.0f, 1.614f, -1.139f, 1.614f, -2.089f) + curveToRelative(0.0f, -0.949f, -0.57f, -1.899f, -1.614f, -1.899f) + close() + } + path( + fill = SolidColor(Color(0xFFb78859)), + stroke = null, + strokeLineWidth = 1.05494f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(30.762f, 67.285f) + curveToRelative(-1.435f, -0.116f, -5.939f, 7.131f, -6.171f, 15.286f) + curveToRelative(-0.243f, 8.155f, 1.857f, 14.147f, 3.355f, 14.326f) + curveToRelative(1.983f, 0.243f, 3.123f, -6.351f, 5.697f, -11.509f) + curveToRelative(2.553f, -5.116f, 6.773f, -8.513f, 6.709f, -10.075f) + curveToRelative(-0.063f, -1.561f, -3.239f, -2.88f, -5.275f, -4.557f) + curveToRelative(-2.036f, -1.667f, -3.397f, -3.386f, -4.315f, -3.471f) + close() + } + } + .build() + return customHashTagIconsMate!! + } + +private var customHashTagIconsMate: ImageVector? = null diff --git a/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Nostr.kt b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Nostr.kt new file mode 100644 index 000000000..ebf5bfb46 --- /dev/null +++ b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Nostr.kt @@ -0,0 +1,151 @@ +/** + * Copyright (c) 2024 Vitor Pamplona + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package com.vitorpamplona.amethyst.commons.hashtags + +import androidx.compose.foundation.Image +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.graphics.vector.rememberVectorPainter +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +@Preview +@Composable +fun CustomHashTagIconsNostrPreview() { + Image( + painter = + rememberVectorPainter( + CustomHashTagIcons.Nostr, + ), + contentDescription = "", + ) +} + +public val CustomHashTagIcons.Nostr: ImageVector + get() { + if (customHashTagIconsNostr != null) { + return customHashTagIconsNostr!! + } + customHashTagIconsNostr = + Builder( + name = "Nostr", + defaultWidth = 256.0.dp, + defaultHeight = 256.0.dp, + viewportWidth = 256.0f, + viewportHeight = 256.0f, + ).apply { + path( + fill = SolidColor(Color(0xFF9d5aff)), + stroke = SolidColor(Color(0x00000000)), + strokeLineWidth = 0.488346f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(59.661f, 98.547f) + curveToRelative(-3.007f, -0.988f, -5.63f, -2.705f, -8.79f, -3.204f) + curveToRelative(-9.733f, -1.536f, -20.022f, 2.618f, -26.776f, 9.596f) + curveToRelative(-3.489f, 3.604f, -6.176f, 8.376f, -7.721f, 13.141f) + curveToRelative(-0.436f, 1.344f, -1.365f, 4.295f, 0.119f, 5.337f) + curveToRelative(2.359f, 1.655f, 8.252f, -3.372f, 11.426f, -2.895f) + curveToRelative(-1.501f, 3.387f, -3.098f, 7.468f, -2.907f, 11.232f) + curveToRelative(0.108f, 2.137f, 1.374f, 4.428f, 3.883f, 3.603f) + curveToRelative(4.417f, -1.452f, 6.135f, -7.225f, 11.232f, -7.998f) + curveToRelative(-0.81f, 2.489f, -4.209f, 10.816f, -0.821f, 12.632f) + curveToRelative(2.253f, 1.208f, 6.274f, -2.466f, 8.147f, -3.46f) + curveToRelative(5.717f, -3.037f, 13.492f, -5.564f, 20.022f, -5.725f) + curveToRelative(4.769f, -0.118f, 9.389f, 4.766f, 13.674f, 6.6f) + curveToRelative(9.014f, 3.857f, 18.45f, 5.866f, 27.836f, 8.51f) + curveToRelative(-5.549f, 8.157f, -12.991f, 15.022f, -20.999f, 20.758f) + curveToRelative(-3.104f, 2.223f, -6.98f, 2.751f, -9.663f, 5.658f) + curveToRelative(-3.017f, 3.269f, -3.081f, 8.023f, -5.478f, 11.675f) + curveToRelative(-7.682f, 11.702f, -15.816f, 23.585f, -24.366f, 34.671f) + curveToRelative(-4.329f, 5.614f, -12.746f, 3.903f, -16.651f, 10.259f) + curveToRelative(-2.622f, 4.27f, -0.247f, 6.045f, 3.904f, 4.881f) + curveToRelative(-2.736f, 4.934f, -6.406f, 10.19f, -6.222f, 16.115f) + curveToRelative(0.05f, 1.59f, 0.543f, 5.759f, 2.779f, 5.759f) + curveToRelative(2.164f, 0.0f, 4.639f, -7.04f, 5.847f, -8.689f) + curveToRelative(3.137f, -4.28f, 7.228f, -7.629f, 10.552f, -11.72f) + curveToRelative(3.062f, -3.768f, 5.291f, -8.248f, 8.111f, -12.209f) + curveToRelative(8.287f, -11.637f, 16.547f, -24.861f, 26.627f, -35.027f) + curveToRelative(2.386f, -2.407f, 6.005f, -2.902f, 8.361f, -5.527f) + curveToRelative(1.995f, -2.223f, 2.178f, -5.462f, 4.159f, -7.566f) + curveToRelative(2.812f, -2.986f, 6.83f, -5.276f, 10.107f, -7.734f) + curveToRelative(7.554f, -5.666f, 14.832f, -11.354f, 24.417f, -13.003f) + curveToRelative(-1.823f, 3.395f, -3.652f, 6.661f, -5.078f, 10.255f) + curveToRelative(-2.06f, 5.191f, -6.035f, 18.045f, 4.102f, 17.527f) + curveToRelative(3.787f, -0.193f, 6.345f, -3.143f, 9.767f, -4.321f) + curveToRelative(8.992f, -3.096f, 18.219f, -5.857f, 27.347f, -8.53f) + curveToRelative(3.83f, -1.122f, 8.137f, -3.336f, 12.206f, -3.164f) + curveToRelative(5.052f, 0.214f, 2.044f, 7.862f, 6.837f, 9.154f) + curveToRelative(2.993f, 0.806f, 2.123f, -4.518f, 2.444f, -6.272f) + horizontalLineToRelative(0.977f) + curveToRelative(1.795f, 3.46f, 5.276f, 6.668f, 8.79f, 8.382f) + curveToRelative(1.126f, 0.549f, 3.41f, 1.458f, 4.36f, 0.113f) + curveToRelative(1.265f, -1.789f, -1.49f, -5.133f, -2.407f, -6.542f) + curveToRelative(-3.31f, -5.087f, -6.927f, -14.399f, -13.185f, -16.287f) + curveToRelative(-5.581f, -1.684f, -12.344f, 1.201f, -17.58f, 2.939f) + curveToRelative(-10.983f, 3.644f, -22.076f, 7.259f, -33.208f, 10.418f) + curveToRelative(3.008f, -6.434f, 7.233f, -8.024f, 12.105f, -12.467f) + curveToRelative(1.697f, -1.548f, 2.297f, -4.404f, 4.545f, -5.307f) + curveToRelative(3.951f, -1.587f, 10.787f, -0.53f, 15.093f, -0.827f) + curveToRelative(7.661f, -0.528f, 15.199f, -2.598f, 21.976f, -6.198f) + curveToRelative(8.972f, -4.766f, 13.782f, -12.659f, 14.999f, -22.57f) + curveToRelative(0.42f, -3.42f, -1.094f, -8.668f, 0.703f, -11.694f) + curveToRelative(2.713f, -4.568f, 11.302f, -7.601f, 15.552f, -10.833f) + curveToRelative(9.871f, -7.51f, 17.983f, -19.995f, 18.538f, -32.656f) + curveToRelative(0.468f, -10.684f, -3.262f, -19.679f, -11.232f, -26.859f) + curveToRelative(-4.153f, -3.741f, -13.686f, -8.055f, -14.511f, -14.162f) + curveToRelative(-0.469f, -3.475f, 3.193f, -4.011f, 5.74f, -4.742f) + curveToRelative(6.568f, -1.886f, 13.618f, 0.286f, 20.022f, -1.607f) + verticalLineToRelative(-0.977f) + lineToRelative(-6.837f, -2.93f) + lineToRelative(6.837f, -0.488f) + verticalLineTo(12.598f) + curveTo(234.765f, 10.283f, 229.423f, 9.599f, 224.722f, 7.462f) + curveTo(216.79f, 3.856f, 206.396f, -5.601f, 200.733f, 7.226f) + curveToRelative(-8.514f, 19.283f, 8.555f, 30.24f, 20.552f, 41.592f) + curveToRelative(6.761f, 6.397f, 8.068f, 17.66f, 2.564f, 25.31f) + curveToRelative(-6.537f, 9.087f, -14.684f, 6.861f, -24.032f, 6.876f) + curveToRelative(-2.628f, 0.004f, -5.212f, 1.652f, -7.814f, 1.216f) + curveToRelative(-3.827f, -0.641f, -7.492f, -3.968f, -10.744f, -5.919f) + curveToRelative(-5.155f, -3.093f, -10.679f, -5.645f, -16.604f, -6.837f) + curveToRelative(-15.82f, -3.183f, -32.068f, -0.627f, -46.881f, 5.374f) + curveToRelative(-9.526f, 3.859f, -18.321f, 9.347f, -27.836f, 13.232f) + curveToRelative(-7.302f, 2.981f, -15.15f, 3.639f, -22.952f, 3.639f) + curveToRelative(-2.1f, 0.0f, -7.822f, -0.993f, -9.263f, 0.851f) + curveToRelative(-1.387f, 1.776f, 0.99f, 4.574f, 1.938f, 5.986f) + close() + } + } + .build() + return customHashTagIconsNostr!! + } + +private var customHashTagIconsNostr: ImageVector? = null diff --git a/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Plebs.kt b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Plebs.kt new file mode 100644 index 000000000..e8c7ba2cb --- /dev/null +++ b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Plebs.kt @@ -0,0 +1,174 @@ +/** + * Copyright (c) 2024 Vitor Pamplona + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package com.vitorpamplona.amethyst.commons.hashtags + +import androidx.compose.foundation.Image +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.graphics.vector.rememberVectorPainter +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +@Preview +@Composable +fun CustomHashTagIconsPlebsPreview() { + Image( + painter = + rememberVectorPainter( + CustomHashTagIcons.Plebs, + ), + contentDescription = "", + ) +} + +public val CustomHashTagIcons.Plebs: ImageVector + get() { + if (customHashTagIconsPlebs != null) { + return customHashTagIconsPlebs!! + } + customHashTagIconsPlebs = + Builder( + name = "Plebs", + defaultWidth = 512.0.dp, + defaultHeight = 512.0.dp, + viewportWidth = 512.0f, + viewportHeight = 512.0f, + ).apply { + path( + fill = SolidColor(Color(0xFF226699)), + stroke = null, + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(240.077f, 212.39f) + curveToRelative(36.868f, -40.178f, 42.776f, -59.05f, 41.127f, -100.9f) + curveTo(277.003f, 50.197f, 219.658f, -13.101f, 154.473f, 3.27f) + curveTo(98.991f, 29.166f, 78.406f, 76.673f, 87.059f, 130.375f) + curveToRelative(3.326f, 19.783f, 11.266f, 38.916f, 23.309f, 55.0f) + curveToRelative(3.8f, 5.075f, 7.79f, 10.561f, 13.105f, 14.15f) + curveToRelative(29.583f, 11.547f, 63.268f, 28.18f, 92.0f, 32.55f) + curveToRelative(49.403f, 5.055f, 16.317f, 4.066f, 24.603f, -19.685f) + close() + } + path( + fill = SolidColor(Color(0xFF55acee)), + stroke = null, + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(267.474f, 229.375f) + curveToRelative(-25.724f, 6.127f, -53.175f, 4.359f, -76.0f, -3.344f) + curveToRelative(-20.816f, -7.201f, -41.714f, -15.31f, -62.0f, -23.887f) + curveToRelative(-13.664f, -5.778f, -26.841f, -12.787f, -42.0f, -12.769f) + curveToRelative(-10.835f, 0.013f, -25.743f, 2.166f, -33.787f, 10.213f) + curveToRelative(-12.713f, 12.718f, -10.628f, 39.822f, 0.116f, 52.786f) + curveToRelative(7.998f, 9.651f, 20.694f, 14.759f, 31.671f, 20.248f) + curveToRelative(23.899f, 11.95f, 48.7f, 21.898f, 73.0f, 32.984f) + curveToRelative(10.316f, 4.706f, 26.02f, 8.833f, 33.387f, 17.874f) + curveToRelative(8.391f, 10.296f, 7.94f, 31.972f, 8.203f, 44.715f) + curveToRelative(9.824f, 0.0f, 21.748f, -2.388f, 31.41f, -4.334f) + curveToRelative(25.64f, -5.163f, 48.792f, -18.568f, 71.0f, -31.886f) + curveToRelative(19.64f, -11.777f, 43.51f, -31.471f, 68.0f, -22.638f) + curveToRelative(21.493f, 7.752f, 29.192f, 33.234f, 20.099f, 53.038f) + curveToRelative(-4.477f, 9.75f, -12.742f, 16.526f, -21.099f, 22.87f) + curveToRelative(-47.953f, 36.402f, -106.388f, 61.13f, -167.0f, 61.13f) + verticalLineToRelative(44.0f) + curveToRelative(0.572f, 13.763f, -3.286f, 20.249f, 13.0f, 21.83f) + curveToRelative(77.697f, 0.656f, 162.39f, 0.17f, 231.0f, 0.17f) + curveToRelative(8.367f, 0.0f, 21.25f, 2.254f, 22.811f, -9.0f) + curveToRelative(2.183f, -15.737f, 0.189f, -33.106f, 0.189f, -49.0f) + curveToRelative(-0.454f, -63.006f, -2.273f, -108.366f, -12.6f, -160.0f) + curveToRelative(-2.129f, -10.578f, -4.935f, -21.419f, -13.44f, -28.848f) + curveToRelative(-6.41f, -5.599f, -18.729f, 2.108f, -25.96f, 4.103f) + curveToRelative(-19.393f, 5.349f, -53.736f, 8.081f, -62.79f, -15.255f) + curveToRelative(-9.333f, -24.054f, 13.943f, -39.798f, 28.789f, -54.039f) + curveToRelative(33.42f, -27.883f, 43.86f, -89.356f, 34.576f, -125.961f) + curveToRelative(-19.6f, -76.144f, -102.286f, -105.041f, -163.006f, -34.0f) + curveToRelative(-2.71f, 5.553f, 4.587f, 12.392f, 7.119f, 17.0f) + curveToRelative(7.798f, 14.19f, 12.877f, 29.076f, 15.697f, 45.0f) + curveToRelative(4.022f, 22.71f, 0.21f, 46.903f, -8.812f, 68.0f) + curveToRelative(-1.202f, 8.804f, -13.792f, 19.122f, -14.666f, 26.0f) + curveToRelative(-0.543f, 5.907f, 8.62f, 9.855f, 11.49f, 14.09f) + curveToRelative(3.233f, 4.77f, 1.603f, 13.383f, 1.603f, 18.91f) + close() + } + path( + fill = SolidColor(Color(0xFF226699)), + stroke = null, + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(359.659f, 263.19f) + curveToRelative(19.058f, 20.658f, 79.633f, 9.792f, 95.853f, -13.816f) + curveToRelative(8.684f, -13.517f, 9.701f, -39.101f, -3.132f, -50.67f) + curveToRelative(-38.377f, -27.49f, -128.225f, 26.091f, -92.721f, 64.486f) + close() + } + path( + fill = SolidColor(Color(0xFF226699)), + stroke = null, + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(202.93f, 505.36f) + curveToRelative(0.592f, -18.533f, -1.138f, -37.925f, -0.752f, -57.165f) + curveToRelative(14.334f, 0.0f, 28.111f, -2.78f, 42.295f, -5.144f) + curveToRelative(44.725f, -7.454f, 88.978f, -29.993f, 125.0f, -57.051f) + curveToRelative(8.087f, -6.074f, 16.01f, -12.398f, 20.623f, -21.625f) + curveToRelative(9.25f, -18.499f, 3.946f, -45.809f, -16.623f, -54.07f) + curveToRelative(-19.995f, -8.031f, -39.101f, 1.93f, -56.0f, 12.07f) + curveToRelative(-23.173f, 13.905f, -46.408f, 28.636f, -72.0f, 37.691f) + curveToRelative(-10.636f, 2.618f, -32.577f, 8.464f, -41.852f, 4.706f) + curveToRelative(-3.523f, -16.694f, -3.297f, -31.795f, -11.761f, -42.184f) + curveToRelative(-24.67f, -17.172f, -70.541f, -35.836f, -115.387f, -54.994f) + curveToRelative(-2.592f, -1.367f, -5.913f, -4.179f, -9.0f, -3.967f) + curveToRelative(-4.748f, 0.327f, -8.884f, 7.105f, -11.07f, 10.748f) + curveToRelative(-22.391f, 67.401f, -18.925f, 158.864f, -18.93f, 219.0f) + curveToRelative(0.219f, 13.623f, -0.386f, 18.984f, 15.0f, 19.0f) + horizontalLineToRelative(30.0f) + curveToRelative(23.685f, -4.025f, 130.22f, 11.249f, 120.457f, -7.015f) + close() + } + } + .build() + return customHashTagIconsPlebs!! + } + +private var customHashTagIconsPlebs: ImageVector? = null diff --git a/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Skull.kt b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Skull.kt new file mode 100644 index 000000000..0d489a0cd --- /dev/null +++ b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Skull.kt @@ -0,0 +1,556 @@ +/** + * Copyright (c) 2024 Vitor Pamplona + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package com.vitorpamplona.amethyst.commons.hashtags + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +public val CustomHashTagIcons.Skull: ImageVector + get() { + if (customHashTagIconsSkull != null) { + return customHashTagIconsSkull!! + } + customHashTagIconsSkull = + Builder( + name = "Skull", + defaultWidth = 521.0.dp, + defaultHeight = 521.0.dp, + viewportWidth = 521.0f, + viewportHeight = 521.0f, + ).apply { + path( + fill = SolidColor(Color(0xFF100f0f)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(166.043f, 80.017f) + curveToRelative(-17.589f, -6.803f, -44.532f, 4.017f, -36.944f, 26.703f) + curveToRelative(2.102f, 23.626f, 5.968f, 47.166f, 3.466f, 70.986f) + curveToRelative(-2.736f, 24.018f, -32.144f, 35.563f, -36.128f, 61.121f) + curveToRelative(-17.98f, 47.592f, -10.437f, 101.14f, 7.34f, 147.588f) + curveToRelative(-5.494f, 19.929f, -10.791f, 48.409f, 11.267f, 61.19f) + curveToRelative(17.725f, 13.076f, 40.748f, 11.293f, 60.405f, 18.039f) + curveToRelative(20.504f, 12.317f, -10.44f, 42.989f, 15.691f, 51.945f) + curveToRelative(18.095f, 2.854f, 17.827f, 3.664f, 56.455f, 3.83f) + curveToRelative(23.285f, 0.371f, 51.137f, 0.264f, 66.031f, -3.178f) + curveToRelative(17.85f, -3.738f, 39.299f, -7.904f, 29.227f, -32.481f) + curveToRelative(0.752f, -28.566f, 30.293f, -42.617f, 54.417f, -48.439f) + curveToRelative(24.039f, -0.976f, 29.123f, -26.788f, 19.494f, -44.696f) + curveToRelative(-5.32f, -21.481f, 6.117f, -42.357f, 4.253f, -64.147f) + curveToRelative(9.219f, -22.321f, 5.234f, -47.011f, 3.786f, -70.404f) + curveToRelative(-3.119f, -31.072f, -19.988f, -60.885f, -47.911f, -76.091f) + curveToRelative(-19.16f, -14.769f, -41.795f, -26.32f, -51.946f, -49.919f) + curveToRelative(-13.211f, -19.23f, -10.244f, -46.183f, -25.23f, -63.732f) + curveToRelative(-12.877f, -9.258f, -34.33f, 6.801f, -32.652f, -16.298f) + curveToRelative(-4.238f, -18.497f, -22.619f, -63.827f, -43.895f, -35.805f) + curveToRelative(-0.798f, 10.205f, 6.997f, 46.603f, -3.089f, 20.067f) + curveToRelative(-8.914f, -17.607f, -6.239f, -23.9f, -23.011f, -35.866f) + curveToRelative(-33.287f, -3.665f, -17.661f, 22.157f, -29.248f, 36.91f) + curveToRelative(-11.198f, 9.777f, -1.801f, 29.625f, -1.778f, 42.677f) + close() + } + path( + fill = SolidColor(Color(0xFF29b34a)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(197.415f, 67.468f) + curveToRelative(10.404f, -9.938f, 32.503f, -7.129f, 19.032f, -25.224f) + curveToRelative(-10.229f, -16.227f, -7.149f, -34.882f, -28.123f, -37.024f) + curveToRelative(-13.71f, 16.666f, -8.256f, 27.409f, 3.864f, 41.459f) + curveToRelative(2.333f, 6.769f, 3.635f, 13.825f, 5.226f, 20.789f) + close() + } + path( + fill = SolidColor(Color(0xFF136c37)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(253.885f, 115.571f) + curveToRelative(2.506f, -17.598f, -3.283f, -35.978f, 9.784f, -50.514f) + curveToRelative(-6.679f, -17.003f, -8.374f, -38.331f, -21.776f, -51.311f) + curveToRelative(-23.222f, -3.057f, -6.865f, 32.18f, -7.339f, 44.922f) + curveToRelative(15.503f, 13.029f, 12.399f, 35.878f, 18.82f, 53.612f) + close() + } + path( + fill = SolidColor(Color(0xFF136c37)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(169.184f, 49.392f) + curveToRelative(-0.974f, 1.101f, -1.704f, 6.811f, 6.669f, 43.023f) + curveToRelative(6.056f, 18.193f, 12.642f, 46.965f, 24.448f, 57.302f) + curveToRelative(2.53f, -36.482f, -3.511f, -73.178f, -18.599f, -106.116f) + curveToRelative(-2.683f, -5.857f, -9.241f, 2.216f, -12.518f, 5.791f) + close() + } + path( + fill = SolidColor(Color(0xFF29b34a)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(204.735f, 104.068f) + curveToRelative(0.625f, -7.842f, 3.927f, -37.846f, 6.899f, -19.429f) + curveToRelative(-3.324f, 23.587f, -5.05f, 47.144f, -4.767f, 71.229f) + curveToRelative(-0.842f, 28.442f, -19.717f, -11.418f, -22.985f, -22.25f) + curveToRelative(-10.169f, -15.42f, -5.614f, -50.82f, -31.301f, -48.375f) + curveToRelative(-28.193f, -1.433f, -14.516f, 32.27f, -14.95f, 49.151f) + curveToRelative(3.377f, 16.605f, -2.993f, 44.197f, 2.46f, 54.009f) + curveToRelative(15.805f, -3.46f, -17.136f, 24.032f, -21.739f, 34.012f) + curveToRelative(-27.954f, 42.526f, -22.507f, 97.338f, -10.089f, 144.233f) + curveToRelative(1.337f, 14.758f, 3.425f, 18.522f, 17.299f, 14.775f) + curveToRelative(-10.154f, 11.186f, -29.782f, 28.985f, -13.96f, 47.862f) + curveToRelative(14.781f, 25.267f, 46.309f, 12.627f, 66.711f, 26.555f) + curveToRelative(16.958f, 5.175f, 5.17f, 30.138f, 22.723f, 23.089f) + curveToRelative(9.803f, 7.155f, 9.208f, 22.008f, 19.428f, 5.38f) + curveToRelative(19.77f, -21.954f, 28.472f, 35.563f, 35.96f, 6.99f) + curveToRelative(4.723f, -20.5f, 27.271f, -14.175f, 31.971f, 2.826f) + curveToRelative(3.478f, -14.209f, 17.353f, -16.833f, 26.143f, -5.229f) + curveToRelative(9.612f, -16.096f, 27.492f, -17.179f, 35.903f, -35.211f) + curveToRelative(12.955f, -16.257f, 34.621f, -16.627f, 51.515f, -25.791f) + curveToRelative(17.619f, -15.141f, 3.569f, -40.186f, -5.852f, -56.119f) + curveToRelative(17.858f, 12.186f, 9.98f, -26.685f, 16.119f, -38.692f) + curveToRelative(7.231f, -36.187f, 12.769f, -76.041f, -5.908f, -109.896f) + curveToRelative(-14.865f, -32.017f, -48.573f, -51.652f, -82.978f, -54.865f) + curveToRelative(-28.394f, -9.939f, 30.195f, -0.921f, 8.313f, -16.557f) + curveToRelative(-19.659f, -20.983f, -23.944f, -50.275f, -32.649f, -76.299f) + curveToRelative(-11.311f, -10.062f, -41.455f, -4.621f, -30.088f, 9.78f) + curveToRelative(-0.115f, 11.714f, -7.056f, 27.874f, -5.351f, 6.936f) + curveToRelative(1.89f, -16.451f, -3.848f, -11.097f, -1.641f, 1.757f) + curveToRelative(-0.075f, 15.923f, 3.317f, 46.987f, -3.507f, 53.766f) + curveToRelative(-11.535f, -23.034f, -15.183f, -49.22f, -20.725f, -74.156f) + curveToRelative(-11.236f, -22.76f, -44.567f, -8.538f, -33.969f, 21.585f) + curveToRelative(0.542f, 2.957f, 0.77f, 5.943f, 1.016f, 8.934f) + close() + } + path( + fill = SolidColor(Color(0xFF100f0f)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(141.992f, 137.532f) + curveToRelative(5.433f, -6.563f, 6.768f, -44.708f, -3.759f, -38.139f) + curveToRelative(-0.113f, 12.72f, 4.244f, 25.288f, 3.759f, 38.139f) + close() + } + path( + fill = SolidColor(Color(0xFF100f0f)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(190.095f, 178.763f) + curveToRelative(-23.353f, 4.429f, -48.582f, 19.127f, -56.055f, 42.868f) + curveToRelative(-2.024f, 30.081f, 23.868f, 1.519f, 32.26f, -8.593f) + curveToRelative(9.022f, -13.104f, 39.168f, -19.981f, 37.211f, -34.476f) + curveToRelative(-4.434f, -1.085f, -8.984f, -0.392f, -13.416f, 0.201f) + close() + } + path( + fill = SolidColor(Color(0xFFffffff)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(137.809f, 233.739f) + curveToRelative(18.974f, -10.812f, 30.284f, -32.523f, 50.837f, -42.381f) + curveToRelative(10.081f, -4.822f, 18.905f, -12.577f, 1.877f, -9.752f) + curveToRelative(-23.615f, 5.699f, -57.72f, 22.986f, -52.714f, 52.132f) + close() + } + path( + fill = SolidColor(Color(0xFF100f0f)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(176.501f, 382.232f) + curveToRelative(-10.891f, 10.084f, -47.394f, -14.781f, -33.154f, 10.003f) + curveToRelative(22.963f, 15.302f, 54.036f, 2.594f, 73.061f, -13.679f) + curveToRelative(25.349f, -20.634f, 34.476f, -66.262f, 5.31f, -87.733f) + curveToRelative(-28.868f, -23.834f, -81.683f, -12.071f, -90.905f, 26.166f) + curveToRelative(-5.558f, 28.613f, 14.865f, 63.502f, 45.688f, 65.243f) + close() + } + path( + fill = SolidColor(Color(0xFF100f0f)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(380.418f, 379.095f) + curveToRelative(-10.317f, 0.003f, -50.27f, 12.128f, -23.121f, 1.307f) + curveToRelative(34.329f, -13.642f, 44.659f, -68.986f, 10.941f, -89.151f) + curveToRelative(-29.709f, -20.531f, -81.334f, -7.617f, -88.304f, 30.567f) + curveToRelative(-5.964f, 36.873f, 22.869f, 76.762f, 61.704f, 76.249f) + curveToRelative(13.693f, -0.457f, 36.367f, -1.58f, 38.78f, -18.972f) + close() + } + path( + fill = SolidColor(Color(0xFFffffff)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(178.592f, 317.397f) + curveToRelative(-1.612f, 19.729f, 20.895f, -2.92f, 0.0f, 0.0f) + close() + } + path( + fill = SolidColor(Color(0xFFffffff)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(333.36f, 318.443f) + curveToRelative(-9.346f, 14.816f, 15.03f, 7.845f, 3.202f, 1.021f) + close() + } + path( + fill = SolidColor(Color(0xFFffffff)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(182.775f, 346.677f) + curveToRelative(19.051f, 3.541f, 12.908f, -18.621f, -0.321f, -6.868f) + curveToRelative(-0.441f, 2.36f, -1.198f, 4.037f, 0.321f, 6.868f) + close() + } + path( + fill = SolidColor(Color(0xFFffffff)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(328.131f, 347.723f) + curveToRelative(18.676f, 9.029f, 16.713f, -14.754f, 1.534f, -5.831f) + lineToRelative(-0.715f, 1.921f) + close() + } + path( + fill = SolidColor(Color(0xFF100f0f)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(261.205f, 452.296f) + curveToRelative(-0.01f, -31.751f, -0.131f, -63.617f, -4.183f, -95.161f) + curveToRelative(-21.21f, 6.715f, -22.059f, 34.273f, -29.883f, 51.747f) + curveToRelative(-14.996f, 21.746f, 1.779f, 51.062f, 28.507f, 43.698f) + lineToRelative(2.754f, -0.175f) + close() + } + path( + fill = SolidColor(Color(0xFF100f0f)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(268.525f, 362.363f) + curveToRelative(-5.532f, 25.009f, 1.026f, 50.791f, 1.095f, 76.12f) + curveToRelative(2.316f, 33.709f, 45.428f, -4.749f, 27.671f, -24.311f) + curveToRelative(-9.589f, -16.836f, -13.047f, -39.454f, -28.766f, -51.809f) + close() + } + path( + fill = SolidColor(Color(0xFFf9a318)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(185.912f, 282.888f) + curveToRelative(2.812f, 7.364f, -1.009f, 19.985f, 6.798f, 23.39f) + curveToRelative(13.403f, 7.924f, 5.009f, 23.188f, 18.017f, 31.428f) + curveToRelative(3.286f, 15.59f, -20.209f, 16.404f, -9.522f, 32.471f) + curveToRelative(10.79f, 11.433f, 33.598f, -18.826f, 33.283f, -34.778f) + curveToRelative(4.946f, -24.56f, -15.221f, -46.819f, -38.787f, -50.423f) + curveToRelative(-3.238f, -0.808f, -6.508f, -1.478f, -9.789f, -2.088f) + close() + } + path( + fill = SolidColor(Color(0xFFf9a318)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(174.409f, 283.934f) + curveToRelative(-0.802f, 9.414f, 7.357f, 32.461f, 3.761f, 10.435f) + curveToRelative(-1.913f, -2.349f, 0.636f, -11.744f, -3.761f, -10.435f) + close() + } + path( + fill = SolidColor(Color(0xFFf9a318)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(316.628f, 378.049f) + curveToRelative(3.075f, -11.085f, 3.285f, -20.165f, -2.786f, -29.212f) + curveToRelative(-1.487f, -24.509f, 13.443f, -41.074f, 17.426f, -62.812f) + curveToRelative(-28.09f, 0.389f, -54.698f, 27.468f, -46.08f, 56.402f) + curveToRelative(3.617f, 16.059f, 15.22f, 30.985f, 31.439f, 35.622f) + close() + } + path( + fill = SolidColor(Color(0xFFf9a318)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(163.952f, 287.071f) + curveToRelative(-20.933f, 9.04f, -36.187f, 32.897f, -27.189f, 55.421f) + curveToRelative(6.503f, 19.036f, 24.512f, 34.534f, 44.967f, 35.557f) + curveToRelative(-4.624f, -20.378f, -19.128f, -36.549f, -18.624f, -60.584f) + curveToRelative(2.351f, -10.495f, 8.589f, -19.63f, 0.847f, -30.394f) + close() + } + path( + fill = SolidColor(Color(0xFFf9a318)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(340.68f, 287.071f) + curveToRelative(-4.457f, 8.035f, -2.168f, 32.414f, 0.122f, 9.871f) + curveToRelative(-2.314f, -1.879f, 6.217f, -11.529f, -0.122f, -9.871f) + close() + } + path( + fill = SolidColor(Color(0xFFf9a318)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(351.137f, 289.162f) + curveToRelative(-6.293f, 17.563f, 7.981f, 33.691f, 3.62f, 48.783f) + curveToRelative(15.158f, 21.457f, -25.383f, 21.09f, -17.214f, 43.241f) + curveToRelative(35.013f, -1.124f, 60.324f, -47.798f, 37.825f, -75.927f) + curveToRelative(-6.395f, -7.397f, -14.86f, -13.213f, -24.23f, -16.097f) + close() + } + path( + fill = SolidColor(Color(0xFFf9a318)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(188.004f, 358.18f) + curveToRelative(-1.683f, 13.577f, 8.332f, 26.695f, 3.23f, 7.21f) + curveToRelative(-1.151f, -2.128f, 0.632f, -8.445f, -3.23f, -7.21f) + close() + } + path( + fill = SolidColor(Color(0xFFf9a318)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(329.177f, 360.272f) + curveToRelative(-4.168f, 9.067f, -2.34f, 32.64f, 0.249f, 10.422f) + curveToRelative(-0.99f, -2.221f, 4.738f, -12.028f, -0.249f, -10.422f) + close() + } + path( + fill = SolidColor(Color(0xFF203d1b)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(318.72f, 509.811f) + curveToRelative(27.619f, 9.81f, 24.306f, -50.605f, 1.551f, -25.143f) + curveToRelative(-4.515f, 7.619f, -2.502f, 16.89f, -1.551f, 25.143f) + close() + } + path( + fill = SolidColor(Color(0xFF203d1b)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(206.827f, 511.902f) + curveToRelative(8.105f, -14.523f, -14.147f, -44.0f, -18.997f, -18.823f) + curveToRelative(-4.344f, 14.514f, 5.617f, 21.311f, 18.997f, 18.823f) + close() + } + path( + fill = SolidColor(Color(0xFF203d1b)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(248.656f, 517.131f) + curveToRelative(3.679f, -23.672f, -27.249f, -48.536f, -35.512f, -15.612f) + curveToRelative(-7.898f, 22.958f, 23.234f, 17.531f, 35.512f, 15.612f) + close() + moveTo(292.577f, 516.085f) + curveToRelative(26.315f, 9.481f, 28.204f, -26.173f, 7.336f, -31.631f) + curveToRelative(-11.741f, 5.503f, -7.375f, 21.531f, -7.336f, 31.631f) + close() + } + path( + fill = SolidColor(Color(0xFF203d1b)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(289.062f, 514.957f) + curveToRelative(-0.003f, -5.436f, -0.324f, -10.515f, -2.186f, -15.686f) + curveToRelative(-2.274f, -5.577f, -5.053f, -10.71f, -9.359f, -14.348f) + curveToRelative(-12.703f, -10.594f, -18.586f, 9.534f, -21.57f, 18.531f) + curveToRelative(-1.24f, 3.742f, -4.543f, 11.236f, -0.763f, 14.494f) + curveToRelative(2.449f, 2.11f, 6.787f, 2.152f, 9.827f, 2.222f) + curveToRelative(8.863f, 0.207f, 15.69f, -3.227f, 24.052f, -5.213f) + close() + } + path( + fill = SolidColor(Color(0xFF100f0f)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(183.928f, 13.894f) + curveToRelative(1.519f, 7.249f, 3.919f, 14.134f, 4.873f, 21.515f) + lineToRelative(2.074f, -0.267f) + curveToRelative(-0.953f, -7.414f, -1.329f, -14.808f, -4.873f, -21.515f) + close() + } + path( + fill = SolidColor(Color(0xFF100f0f)), + stroke = null, + strokeLineWidth = 1.04573f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(233.231f, 20.945f) + lineToRelative(1.046f, 16.732f) + curveToRelative(2.294f, -5.109f, 2.624f, -11.389f, 1.046f, -16.732f) + close() + } + } + .build() + return customHashTagIconsSkull!! + } + +private var customHashTagIconsSkull: ImageVector? = null diff --git a/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Tunestr.kt b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Tunestr.kt new file mode 100644 index 000000000..62f2ad074 --- /dev/null +++ b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Tunestr.kt @@ -0,0 +1,144 @@ +/** + * Copyright (c) 2024 Vitor Pamplona + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package com.vitorpamplona.amethyst.commons.hashtags + +import androidx.compose.foundation.Image +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.graphics.vector.rememberVectorPainter +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +@Preview +@Composable +fun CustomHashTagIconsTunestrPreview() { + Image( + painter = + rememberVectorPainter( + CustomHashTagIcons.Tunestr, + ), + contentDescription = "", + ) +} + +public val CustomHashTagIcons.Tunestr: ImageVector + get() { + if (customHashTagIconsTunestr != null) { + return customHashTagIconsTunestr!! + } + customHashTagIconsTunestr = + Builder( + name = "Tunestr", + defaultWidth = 600.0.dp, + defaultHeight = 600.0.dp, + viewportWidth = 600.0f, + viewportHeight = 600.0f, + ).apply { + path( + fill = SolidColor(Color(0xFFeb3c27)), + stroke = SolidColor(Color(0x00000000)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(171.93f, 82.63f) + lineTo(577.1f, 0.0f) + lineTo(577.1f, 112.99f) + lineTo(171.93f, 195.62f) + close() + } + path( + fill = SolidColor(Color(0xFFeb3c27)), + stroke = SolidColor(Color(0x00000000)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(171.93f, 82.54f) + lineTo(237.16f, 82.54f) + lineTo(237.16f, 504.91f) + lineTo(171.93f, 504.91f) + close() + } + path( + fill = SolidColor(Color(0xFFeb3c27)), + stroke = SolidColor(Color(0x00000000)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(235.04f, 488.2f) + curveTo(246.7f, 531.7f, 209.13f, 579.56f, 151.13f, 595.1f) + curveTo(93.13f, 610.64f, 36.67f, 587.98f, 25.01f, 544.48f) + curveTo(13.35f, 500.98f, 50.92f, 453.12f, 108.92f, 437.58f) + curveTo(166.92f, 422.04f, 223.38f, 444.7f, 235.04f, 488.2f) + close() + } + path( + fill = SolidColor(Color(0xFFeb3c27)), + stroke = SolidColor(Color(0x00000000)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(511.87f, 13.54f) + lineTo(577.1f, 13.54f) + lineTo(577.1f, 435.91f) + lineTo(511.87f, 435.91f) + close() + } + path( + fill = SolidColor(Color(0xFFeb3c27)), + stroke = SolidColor(Color(0x00000000)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(574.98f, 419.21f) + curveTo(586.64f, 462.71f, 549.07f, 510.57f, 491.07f, 526.11f) + curveTo(433.07f, 541.65f, 376.61f, 518.99f, 364.95f, 475.49f) + curveTo(353.29f, 431.99f, 390.86f, 384.13f, 448.86f, 368.59f) + curveTo(506.86f, 353.05f, 563.32f, 375.71f, 574.98f, 419.21f) + close() + } + } + .build() + return customHashTagIconsTunestr!! + } + +private var customHashTagIconsTunestr: ImageVector? = null diff --git a/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Weed.kt b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Weed.kt new file mode 100644 index 000000000..6cf55d6df --- /dev/null +++ b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Weed.kt @@ -0,0 +1,550 @@ +/** + * Copyright (c) 2024 Vitor Pamplona + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package com.vitorpamplona.amethyst.commons.hashtags + +import androidx.compose.foundation.Image +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.graphics.vector.rememberVectorPainter +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +@Preview +@Composable +fun CustomHashTagIconsWeedPreview() { + Image( + painter = + rememberVectorPainter( + CustomHashTagIcons.Weed, + ), + contentDescription = "", + ) +} + +public val CustomHashTagIcons.Weed: ImageVector + get() { + if (customHashTagIconsWeed != null) { + return customHashTagIconsWeed!! + } + customHashTagIconsWeed = + Builder( + name = "Weed", + defaultWidth = 512.0.dp, + defaultHeight = 512.0.dp, + viewportWidth = 512.0f, + viewportHeight = 512.0f, + ).apply { + path( + fill = SolidColor(Color(0xFF00bf00)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(255.539f, 30.66f) + curveToRelative(-170.359f, -0.44f, -85.18f, -0.22f, 0.0f, 0.0f) + close() + moveTo(255.561f, 30.641f) + curveToRelative(-0.16f, 1.3f, -0.7f, 4.54f, -1.51f, 8.92f) + curveToRelative(-1.56f, 8.54f, -4.271f, 21.57f, -7.781f, 33.9f) + curveToRelative(-0.86f, 3.08f, -1.949f, 6.49f, -3.189f, 10.27f) + curveToRelative(-0.002f, 0.006f, -0.004f, 0.014f, -0.006f, 0.02f) + lineToRelative(-0.035f, -0.029f) + lineToRelative(-2.158f, -1.891f) + lineToRelative(-1.512f, 12.869f) + curveToRelative(-0.943f, 3.119f, -2.055f, 6.243f, -2.889f, 8.881f) + curveToRelative(-0.001f, 0.002f, -0.001f, 0.004f, -0.002f, 0.006f) + lineToRelative(-0.029f, -0.016f) + lineToRelative(-7.35f, -3.73f) + lineToRelative(1.68f, 21.52f) + lineToRelative(0.006f, 0.066f) + curveToRelative(-1.345f, 4.473f, -2.691f, 9.104f, -4.035f, 13.895f) + lineToRelative(-0.02f, -0.01f) + lineToRelative(-8.65f, -3.84f) + lineToRelative(2.699f, 28.379f) + lineToRelative(0.008f, 0.088f) + curveToRelative(-0.644f, 2.949f, -1.232f, 5.955f, -1.768f, 9.012f) + curveToRelative(-0.0f, 0.001f, 0.0f, 0.003f, 0.0f, 0.004f) + lineToRelative(-0.029f, -0.014f) + lineToRelative(-11.25f, -5.779f) + lineToRelative(7.189f, 35.09f) + lineToRelative(0.031f, 0.148f) + curveToRelative(-0.373f, 4.064f, -0.644f, 8.231f, -0.861f, 12.451f) + curveToRelative(-0.0f, 0.006f, 0.0f, 0.013f, 0.0f, 0.02f) + lineToRelative(-0.029f, -0.02f) + lineToRelative(-12.221f, -8.109f) + lineToRelative(13.189f, 51.629f) + curveToRelative(0.298f, 2.798f, 0.545f, 5.692f, 0.791f, 8.111f) + curveToRelative(0.001f, 0.005f, 0.001f, 0.009f, 0.002f, 0.014f) + lineToRelative(-0.031f, -0.014f) + lineToRelative(-6.381f, -2.65f) + lineToRelative(-7.57f, -3.189f) + lineToRelative(15.887f, 32.271f) + lineToRelative(-0.025f, 0.049f) + lineToRelative(-1.5f, 2.836f) + curveToRelative(-1.187f, -1.945f, -2.424f, -3.881f, -3.721f, -5.826f) + curveToRelative(-0.028f, -0.043f, -0.06f, -0.088f, -0.088f, -0.131f) + lineToRelative(-18.043f, -39.051f) + lineToRelative(-2.91f, 10.348f) + curveToRelative(-2.206f, -2.645f, -4.473f, -5.291f, -6.689f, -7.826f) + curveToRelative(-0.022f, -0.025f, -0.044f, -0.047f, -0.066f, -0.072f) + lineToRelative(-13.414f, -25.969f) + lineToRelative(-3.557f, 8.402f) + curveToRelative(-1.887f, -1.837f, -3.725f, -3.555f, -5.563f, -5.232f) + curveToRelative(-4.205f, -6.524f, -8.374f, -13.106f, -12.551f, -19.66f) + lineToRelative(-3.02f, 6.09f) + curveToRelative(-3.19f, -2.65f, -6.32f, -5.14f, -9.35f, -7.52f) + curveToRelative(-0.016f, -0.013f, -0.031f, -0.022f, -0.047f, -0.035f) + lineTo(127.5f, 190.609f) + lineToRelative(-2.262f, 5.441f) + curveToRelative(-2.16f, -1.62f, -4.209f, -3.191f, -6.158f, -4.65f) + curveToRelative(-0.032f, -0.024f, -0.058f, -0.043f, -0.09f, -0.066f) + lineToRelative(-7.17f, -7.703f) + lineToRelative(-0.318f, 2.143f) + curveToRelative(-2.537f, -1.997f, -4.864f, -3.775f, -6.912f, -5.453f) + curveToRelative(-12.32f, -10.06f, -24.38f, -21.901f, -26.65f, -24.221f) + curveToRelative(1.62f, 2.81f, 9.73f, 17.511f, 16.0f, 31.951f) + curveToRelative(1.03f, 2.38f, 2.111f, 5.03f, 3.301f, 8.0f) + curveToRelative(0.001f, 0.003f, 0.003f, 0.007f, 0.004f, 0.01f) + lineToRelative(-2.104f, -0.32f) + lineToRelative(5.398f, 8.742f) + curveToRelative(0.87f, 2.32f, 1.841f, 4.808f, 2.871f, 7.348f) + curveToRelative(0.002f, 0.006f, 0.005f, 0.013f, 0.008f, 0.02f) + lineToRelative(-6.059f, 0.6f) + lineToRelative(11.68f, 13.352f) + curveToRelative(1.398f, 3.504f, 2.965f, 7.176f, 4.691f, 10.898f) + curveToRelative(0.003f, 0.007f, 0.007f, 0.014f, 0.01f, 0.022f) + lineToRelative(-6.871f, 1.029f) + lineToRelative(15.73f, 17.57f) + lineToRelative(0.023f, 0.027f) + curveToRelative(1.073f, 2.204f, 2.205f, 4.347f, 3.387f, 6.602f) + curveToRelative(0.004f, 0.007f, 0.008f, 0.013f, 0.012f, 0.02f) + lineToRelative(-0.012f, 0.002f) + lineToRelative(-9.25f, 0.809f) + lineToRelative(21.68f, 20.17f) + lineToRelative(0.057f, 0.053f) + curveToRelative(1.768f, 2.835f, 3.701f, 5.623f, 5.684f, 8.469f) + curveToRelative(0.005f, 0.007f, 0.011f, 0.013f, 0.016f, 0.02f) + horizontalLineToRelative(-0.025f) + lineToRelative(-11.029f, -0.27f) + lineToRelative(33.199f, 28.379f) + lineToRelative(0.125f, 0.105f) + curveToRelative(1.465f, 1.62f, 2.939f, 3.25f, 4.404f, 4.822f) + verticalLineToRelative(0.002f) + verticalLineToRelative(0.111f) + lineToRelative(0.006f, 0.051f) + lineToRelative(-7.676f, 1.34f) + lineToRelative(-0.059f, -0.041f) + lineToRelative(-30.221f, -20.92f) + lineToRelative(2.971f, 8.33f) + lineToRelative(0.002f, 0.006f) + curveToRelative(-0.004f, -0.002f, -0.008f, -0.004f, -0.012f, -0.006f) + curveToRelative(-3.021f, -1.296f, -6.043f, -2.532f, -9.004f, -3.719f) + lineToRelative(-0.018f, -0.012f) + lineToRelative(-22.979f, -14.811f) + lineToRelative(1.51f, 7.031f) + curveToRelative(-2.27f, -0.75f, -4.481f, -1.46f, -6.701f, -2.16f) + lineToRelative(-19.25f, -10.541f) + lineToRelative(0.76f, 5.24f) + curveToRelative(-3.73f, -0.98f, -7.3f, -1.89f, -10.76f, -2.76f) + lineToRelative(-14.65f, -7.789f) + lineToRelative(0.971f, 4.6f) + curveToRelative(-2.38f, -0.6f, -4.7f, -1.08f, -6.92f, -1.57f) + curveToRelative(-0.024f, -0.006f, -0.043f, -0.01f, -0.066f, -0.016f) + lineToRelative(-9.174f, -3.484f) + lineToRelative(0.799f, 1.549f) + curveToRelative(-2.915f, -0.649f, -5.502f, -1.3f, -7.879f, -1.889f) + curveToRelative(-14.255f, -3.676f, -29.14f, -8.685f, -32.033f, -9.723f) + curveToRelative(-0.486f, -0.278f, -0.595f, -0.337f, -0.256f, -0.117f) + curveToRelative(-0.146f, -0.045f, -0.22f, -0.064f, -0.229f, -0.063f) + curveToRelative(0.02f, 0.013f, 0.181f, 0.072f, 0.459f, 0.172f) + curveToRelative(2.65f, 1.51f, 16.008f, 9.73f, 27.898f, 18.27f) + curveToRelative(1.94f, 1.41f, 4.1f, 3.03f, 6.43f, 4.76f) + curveToRelative(0.002f, 0.002f, 0.005f, 0.004f, 0.008f, 0.006f) + lineToRelative(-0.027f, 0.006f) + lineToRelative(-1.779f, 0.379f) + lineToRelative(8.6f, 4.871f) + lineToRelative(0.139f, 0.078f) + curveToRelative(1.742f, 1.333f, 3.536f, 2.755f, 5.441f, 4.23f) + curveToRelative(0.001f, 0.001f, 0.002f, 0.003f, 0.004f, 0.004f) + lineToRelative(-0.014f, 0.006f) + lineToRelative(-4.221f, 2.111f) + lineToRelative(15.35f, 6.219f) + lineToRelative(0.08f, 0.033f) + curveToRelative(2.794f, 2.096f, 5.8f, 4.242f, 8.859f, 6.447f) + lineToRelative(-0.018f, 0.01f) + lineToRelative(-4.602f, 2.701f) + lineToRelative(20.711f, 8.16f) + lineToRelative(0.051f, 0.02f) + curveToRelative(1.88f, 1.233f, 3.76f, 2.416f, 5.699f, 3.6f) + lineToRelative(-0.02f, 0.01f) + lineToRelative(-6.602f, 3.301f) + curveToRelative(12.864f, 3.87f, 23.452f, 7.891f, 34.791f, 12.699f) + horizontalLineToRelative(-0.02f) + lineToRelative(-8.432f, 2.92f) + curveToRelative(14.812f, 4.474f, 30.991f, 8.293f, 44.988f, 13.197f) + lineToRelative(-0.008f, 0.004f) + lineToRelative(-7.189f, 4.43f) + curveToRelative(11.356f, 1.924f, 22.792f, 2.67f, 32.447f, 4.596f) + lineToRelative(-2.268f, 6.424f) + lineToRelative(7.57f, 0.33f) + horizontalLineToRelative(0.022f) + lineToRelative(0.379f, 0.32f) + lineToRelative(0.006f, 0.008f) + curveToRelative(-0.009f, 0.001f, -0.017f, 0.001f, -0.025f, 0.002f) + curveToRelative(-11.529f, 1.088f, -24.241f, 0.811f, -34.48f, 0.959f) + lineToRelative(5.24f, 3.352f) + horizontalLineToRelative(0.049f) + lineToRelative(0.01f, 0.006f) + curveToRelative(-0.006f, 0.001f, -0.013f, 0.003f, -0.02f, 0.004f) + horizontalLineToRelative(-0.049f) + curveToRelative(-9.972f, 1.372f, -18.923f, 2.05f, -27.191f, 2.43f) + curveToRelative(5.579f, 4.212f, 3.756f, 3.194f, -0.981f, 4.76f) + curveToRelative(-5.419f, 0.595f, -10.84f, 1.187f, -16.26f, 1.779f) + lineToRelative(2.699f, 2.648f) + curveToRelative(-0.002f, 0.001f, -0.005f, 0.001f, -0.008f, 0.002f) + curveToRelative(-6.406f, 2.869f, -13.553f, 3.441f, -19.891f, 4.221f) + lineToRelative(2.531f, 2.104f) + curveToRelative(-3.89f, 1.778f, -8.189f, 2.709f, -12.002f, 3.627f) + lineToRelative(1.184f, 0.535f) + curveToRelative(-2.043f, 0.807f, -3.929f, 1.505f, -5.604f, 2.104f) + curveToRelative(-2.49f, 0.87f, -5.029f, 1.73f, -7.459f, 2.49f) + curveToRelative(-7.68f, 2.43f, -14.491f, 4.33f, -16.111f, 4.76f) + curveToRelative(1.95f, -0.16f, 10.711f, -0.699f, 20.061f, -0.809f) + curveToRelative(1.52f, -0.05f, 3.09f, -0.051f, 4.6f, -0.051f) + curveToRelative(1.76f, 0.0f, 3.743f, 0.058f, 5.934f, 0.107f) + lineToRelative(-0.924f, 0.912f) + lineToRelative(7.605f, -0.742f) + curveToRelative(1.56f, 0.102f, 3.168f, 0.165f, 4.877f, 0.213f) + lineToRelative(-1.672f, 2.85f) + lineToRelative(12.018f, -2.635f) + curveToRelative(0.058f, 0.001f, 0.104f, 0.003f, 0.162f, 0.004f) + curveToRelative(2.528f, 0.05f, 5.216f, 0.051f, 7.963f, 0.051f) + lineToRelative(-1.662f, 3.33f) + curveToRelative(6.882f, -1.965f, 14.196f, -3.301f, 21.051f, -3.92f) + curveToRelative(0.001f, -0.0f, 0.003f, 0.0f, 0.004f, 0.0f) + lineToRelative(-2.615f, 4.43f) + curveToRelative(13.31f, -3.974f, 16.099f, -5.067f, 26.494f, -6.701f) + lineToRelative(-3.854f, 4.941f) + curveToRelative(10.81f, -3.418f, 22.148f, -7.947f, 32.869f, -10.455f) + lineToRelative(-2.459f, 5.295f) + lineToRelative(19.838f, -9.822f) + curveToRelative(0.02f, -0.006f, 0.042f, -0.012f, 0.063f, -0.018f) + curveToRelative(0.604f, -0.141f, 1.226f, -0.333f, 1.752f, -0.482f) + lineToRelative(1.338f, 4.473f) + curveToRelative(9.459f, -7.189f, 21.169f, -11.545f, 31.328f, -15.826f) + curveToRelative(1.686f, 28.193f, 4.388f, 58.01f, 7.361f, 83.355f) + lineToRelative(12.891f, -0.32f) + curveToRelative(0.0f, 0.0f, -0.19f, -5.31f, -0.51f, -14.6f) + curveToRelative(-0.21f, -4.65f, -0.46f, -10.28f, -0.74f, -16.75f) + curveToRelative(-0.08f, -3.23f, -0.171f, -6.669f, -0.271f, -10.299f) + curveToRelative(-0.14f, -3.63f, -0.289f, -7.44f, -0.449f, -11.42f) + curveToRelative(-0.15f, -3.97f, -0.299f, -8.12f, -0.459f, -12.41f) + curveToRelative(-0.09f, -4.29f, -0.191f, -8.731f, -0.291f, -13.291f) + curveToRelative(-0.084f, -4.023f, -0.18f, -8.452f, -0.27f, -12.654f) + curveToRelative(0.003f, -0.003f, 0.007f, -0.003f, 0.01f, -0.006f) + curveToRelative(11.32f, -91.67f, 22.474f, -231.573f, 0.08f, -339.539f) + curveToRelative(-0.27f, -1.35f, -0.54f, -2.6f, -0.76f, -3.84f) + curveToRelative(-0.27f, -1.45f, -0.54f, -2.811f, -0.76f, -4.051f) + curveToRelative(-0.16f, -0.81f, -0.322f, -1.57f, -0.432f, -2.27f) + curveToRelative(-0.05f, -0.54f, -0.16f, -1.08f, -0.27f, -1.51f) + curveToRelative(-0.11f, -0.38f, -0.169f, -0.711f, -0.219f, -1.031f) + curveToRelative(-0.22f, -1.41f, -0.38f, -2.489f, -0.49f, -3.139f) + close() + moveTo(77.66f, 155.711f) + verticalLineToRelative(0.109f) + curveToRelative(0.0f, 0.0f, 0.051f, -0.001f, 0.051f, 0.049f) + lineToRelative(0.219f, 0.221f) + curveToRelative(-0.01f, -0.014f, -0.02f, -0.026f, -0.029f, -0.039f) + curveToRelative(-0.009f, -0.013f, -0.017f, -0.027f, -0.025f, -0.039f) + curveToRelative(-0.101f, -0.145f, -0.151f, -0.23f, -0.195f, -0.279f) + curveToRelative(-0.002f, -0.002f, -0.002f, -0.004f, -0.004f, -0.006f) + curveToRelative(-0.002f, -0.002f, -0.004f, -0.004f, -0.006f, -0.006f) + curveToRelative(-0.002f, -0.002f, -0.002f, -0.004f, -0.004f, -0.006f) + curveToRelative(-0.002f, -0.002f, -0.004f, -0.002f, -0.006f, -0.004f) + close() + moveTo(83.125f, 158.975f) + curveToRelative(-0.0f, 0.011f, 0.034f, 0.09f, 0.105f, 0.236f) + curveToRelative(-0.12f, -0.112f, -0.185f, -0.167f, -0.195f, -0.17f) + curveToRelative(0.01f, 0.023f, 0.139f, 0.167f, 0.375f, 0.42f) + curveToRelative(-0.169f, -0.304f, -0.267f, -0.47f, -0.285f, -0.486f) + close() + moveTo(76.029f, 161.527f) + curveToRelative(-0.001f, 0.01f, 0.036f, 0.086f, 0.111f, 0.232f) + curveToRelative(-0.32f, -0.3f, -0.24f, -0.19f, 0.18f, 0.24f) + curveToRelative(-0.187f, -0.325f, -0.29f, -0.49f, -0.291f, -0.473f) + close() + moveTo(56.129f, 391.533f) + lineTo(56.127f, 391.535f) + curveToRelative(0.005f, 0.005f, 0.061f, 0.016f, 0.174f, 0.035f) + curveToRelative(-0.103f, 0.011f, -0.158f, 0.018f, -0.168f, 0.022f) + curveToRelative(0.017f, 0.002f, 0.146f, -0.005f, 0.377f, -0.022f) + curveToRelative(-0.231f, -0.028f, -0.362f, -0.041f, -0.381f, -0.037f) + close() + moveTo(56.359f, 419.289f) + curveToRelative(-0.236f, 0.023f, -0.368f, 0.041f, -0.385f, 0.047f) + curveToRelative(0.006f, 0.003f, 0.063f, 0.002f, 0.176f, -0.006f) + curveToRelative(-0.105f, 0.032f, -0.157f, 0.052f, -0.164f, 0.057f) + curveToRelative(0.019f, -0.001f, 0.148f, -0.036f, 0.373f, -0.098f) + close() + moveTo(54.75f, 425.199f) + curveToRelative(-0.236f, 0.017f, -0.368f, 0.029f, -0.385f, 0.033f) + curveToRelative(0.01f, 0.002f, 0.066f, 0.002f, 0.174f, -0.002f) + curveToRelative(-0.105f, 0.032f, -0.157f, 0.051f, -0.164f, 0.057f) + curveToRelative(0.019f, -0.0f, 0.15f, -0.032f, 0.375f, -0.088f) + close() + } + path( + fill = SolidColor(Color(0xFF00a900)), + stroke = null, + strokeAlpha = 0.06f, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(477.166f, 296.266f) + lineToRelative(-0.05f, 0.05f) + lineToRelative(1.78f, 0.32f) + lineToRelative(-8.6f, 4.86f) + lineToRelative(-0.05f, 0.05f) + curveToRelative(-1.73f, 1.35f, -3.57f, 2.76f, -5.51f, 4.27f) + lineToRelative(4.22f, 2.11f) + lineToRelative(-15.35f, 6.22f) + lineToRelative(-0.05f, 0.05f) + curveToRelative(-2.87f, 2.11f, -5.78f, 4.22f, -8.87f, 6.43f) + lineToRelative(4.6f, 2.7f) + lineToRelative(-20.55f, 8.11f) + curveToRelative(-0.32f, 0.22f, -0.65f, 0.43f, -1.03f, 0.65f) + curveToRelative(-1.57f, 1.03f, -3.19f, 2.0f, -4.81f, 3.03f) + lineToRelative(6.54f, 3.3f) + lineToRelative(-26.06f, 8.11f) + lineToRelative(-0.05f, 0.05f) + horizontalLineToRelative(-0.05f) + curveToRelative(-0.05f, 0.0f, -0.05f, 0.05f, -0.11f, 0.05f) + curveToRelative(-2.76f, 1.57f, -5.62f, 2.97f, -8.49f, 4.49f) + lineToRelative(8.43f, 2.92f) + lineToRelative(-39.09f, 10.87f) + curveToRelative(-0.05f, 0.05f, -0.16f, 0.05f, -0.22f, 0.05f) + curveToRelative(-1.89f, 0.76f, -3.79f, 1.57f, -5.68f, 2.27f) + lineToRelative(7.24f, 4.43f) + lineToRelative(-30.01f, 3.78f) + horizontalLineToRelative(-0.05f) + curveToRelative(-0.87f, 0.27f, -1.62f, 0.54f, -2.43f, 0.81f) + lineToRelative(0.97f, 2.65f) + lineToRelative(16.76f, -0.16f) + lineToRelative(-5.19f, 3.51f) + curveToRelative(2.38f, 0.43f, 4.7f, 0.87f, 7.08f, 1.35f) + horizontalLineToRelative(0.11f) + lineToRelative(20.11f, 0.38f) + lineToRelative(-3.84f, 3.41f) + curveToRelative(1.62f, 0.43f, 3.24f, 0.87f, 4.87f, 1.3f) + curveToRelative(0.05f, 0.05f, 0.05f, 0.05f, 0.11f, 0.05f) + lineToRelative(16.22f, 1.41f) + lineToRelative(-2.6f, 2.65f) + curveToRelative(1.35f, 0.43f, 2.65f, 0.87f, 3.95f, 1.3f) + curveToRelative(1.24f, 0.43f, 2.49f, 0.81f, 3.73f, 1.24f) + horizontalLineToRelative(0.16f) + lineToRelative(12.16f, 1.19f) + lineToRelative(-2.49f, 2.22f) + curveToRelative(1.68f, 0.6f, 3.3f, 1.19f, 4.81f, 1.73f) + horizontalLineToRelative(0.05f) + lineToRelative(7.19f, 1.57f) + lineToRelative(-1.13f, 0.59f) + curveToRelative(2.0f, 0.7f, 3.95f, 1.35f, 5.62f, 1.95f) + curveToRelative(10.33f, 3.3f, 21.57f, 6.16f, 23.73f, 6.7f) + curveToRelative(-2.22f, -0.16f, -13.84f, -0.6f, -24.65f, -0.32f) + curveToRelative(-1.78f, 0.05f, -3.78f, 0.16f, -5.95f, 0.27f) + lineToRelative(0.92f, 0.87f) + lineToRelative(-7.14f, -0.49f) + horizontalLineToRelative(-0.16f) + curveToRelative(-1.68f, 0.05f, -3.41f, 0.16f, -5.19f, 0.27f) + lineToRelative(1.73f, 2.81f) + lineToRelative(-12.0f, -2.32f) + horizontalLineToRelative(-0.05f) + curveToRelative(-1.3f, 0.05f, -2.65f, 0.11f, -3.95f, 0.16f) + curveToRelative(-1.4f, 0.05f, -2.76f, 0.05f, -4.16f, 0.11f) + lineToRelative(1.73f, 3.3f) + lineToRelative(-15.84f, -3.24f) + lineToRelative(-0.16f, -0.05f) + horizontalLineToRelative(-0.22f) + curveToRelative(-1.62f, 0.0f, -3.24f, -0.05f, -4.92f, -0.11f) + lineToRelative(2.7f, 4.38f) + lineToRelative(-19.52f, -5.35f) + curveToRelative(-0.97f, -0.11f, -2.0f, -0.22f, -3.03f, -0.32f) + curveToRelative(-1.35f, -0.11f, -2.76f, -0.27f, -4.11f, -0.43f) + lineToRelative(4.0f, 4.87f) + lineToRelative(-28.6f, -8.76f) + curveToRelative(-0.32f, -0.05f, -0.65f, -0.11f, -0.92f, -0.22f) + curveToRelative(-1.24f, -0.22f, -2.43f, -0.49f, -3.62f, -0.7f) + lineToRelative(2.6f, 5.3f) + lineToRelative(-20.11f, -9.35f) + curveToRelative(-0.05f, 0.0f, -0.05f, 0.0f, -0.11f, -0.05f) + curveToRelative(-0.54f, -0.11f, -1.13f, -0.27f, -1.68f, -0.43f) + lineToRelative(-1.19f, 4.54f) + lineToRelative(-17.95f, -10.11f) + lineToRelative(-0.05f, -0.05f) + horizontalLineToRelative(-0.05f) + curveToRelative(-5.78f, -1.89f, -10.92f, -3.73f, -15.19f, -5.46f) + curveToRelative(0.05f, 2.7f, 0.11f, 5.51f, 0.16f, 8.16f) + curveToRelative(0.11f, 4.54f, 0.22f, 8.98f, 0.27f, 13.3f) + curveToRelative(0.16f, 4.27f, 0.32f, 8.43f, 0.49f, 12.38f) + curveToRelative(0.16f, 4.0f, 0.32f, 7.79f, 0.43f, 11.46f) + curveToRelative(0.11f, 3.62f, 0.22f, 7.03f, 0.27f, 10.27f) + curveToRelative(0.27f, 6.49f, 0.54f, 12.11f, 0.76f, 16.76f) + curveToRelative(0.32f, 9.3f, 0.49f, 14.6f, 0.49f, 14.6f) + lineToRelative(-5.35f, 0.11f) + verticalLineTo(33.345f) + curveToRelative(0.16f, 0.81f, 0.32f, 1.78f, 0.49f, 2.87f) + curveToRelative(0.32f, 1.78f, 0.7f, 3.95f, 1.19f, 6.33f) + curveToRelative(0.22f, 1.24f, 0.49f, 2.49f, 0.76f, 3.84f) + curveToRelative(1.62f, 7.84f, 3.78f, 17.57f, 6.43f, 26.98f) + curveToRelative(0.49f, 1.73f, 1.03f, 3.57f, 1.68f, 5.51f) + curveToRelative(0.27f, 0.97f, 0.6f, 2.0f, 0.97f, 3.03f) + curveToRelative(0.16f, 0.54f, 0.32f, 1.08f, 0.54f, 1.68f) + lineToRelative(2.11f, -1.84f) + lineToRelative(1.51f, 12.7f) + verticalLineToRelative(0.11f) + curveToRelative(0.97f, 2.81f, 1.95f, 5.84f, 2.97f, 8.92f) + lineToRelative(7.35f, -3.73f) + lineToRelative(-1.68f, 21.46f) + verticalLineToRelative(0.05f) + curveToRelative(1.35f, 4.54f, 2.7f, 9.14f, 4.05f, 13.95f) + lineToRelative(8.65f, -3.84f) + lineToRelative(-2.7f, 28.38f) + verticalLineToRelative(0.16f) + curveToRelative(0.6f, 2.92f, 1.19f, 5.89f, 1.73f, 8.92f) + horizontalLineToRelative(0.05f) + lineToRelative(11.25f, -5.78f) + lineToRelative(-7.19f, 35.09f) + curveToRelative(0.16f, 2.11f, 0.38f, 4.16f, 0.49f, 6.27f) + curveToRelative(0.11f, 1.78f, 0.22f, 3.62f, 0.32f, 5.41f) + curveToRelative(0.0f, 0.32f, 0.05f, 0.6f, 0.05f, 0.92f) + lineToRelative(12.22f, -8.11f) + lineToRelative(-13.19f, 51.42f) + lineToRelative(-0.05f, 0.16f) + verticalLineToRelative(0.22f) + curveToRelative(-0.22f, 2.7f, -0.43f, 5.3f, -0.7f, 7.95f) + lineToRelative(13.95f, -5.84f) + lineToRelative(-15.52f, 31.36f) + verticalLineToRelative(0.05f) + lineToRelative(2.0f, 3.73f) + curveToRelative(1.19f, -1.89f, 2.38f, -3.78f, 3.62f, -5.68f) + lineToRelative(0.11f, -0.16f) + lineToRelative(18.11f, -39.14f) + lineToRelative(2.92f, 10.33f) + curveToRelative(2.27f, -2.7f, 4.49f, -5.3f, 6.76f, -7.84f) + lineToRelative(0.05f, -0.05f) + lineToRelative(13.35f, -26.01f) + lineToRelative(3.57f, 8.49f) + curveToRelative(1.84f, -1.78f, 3.62f, -3.46f, 5.46f, -5.14f) + lineToRelative(0.05f, -0.05f) + lineToRelative(12.6f, -19.79f) + lineToRelative(3.03f, 6.11f) + curveToRelative(3.19f, -2.65f, 6.27f, -5.14f, 9.3f, -7.52f) + lineToRelative(9.79f, -14.76f) + lineToRelative(2.33f, 5.46f) + curveToRelative(2.11f, -1.62f, 4.16f, -3.14f, 6.11f, -4.65f) + lineToRelative(7.24f, -7.78f) + lineToRelative(0.32f, 2.11f) + curveToRelative(1.3f, -0.97f, 2.49f, -1.89f, 3.62f, -2.81f) + curveToRelative(1.19f, -0.92f, 2.27f, -1.78f, 3.3f, -2.6f) + curveToRelative(6.49f, -5.3f, 12.98f, -11.14f, 17.9f, -15.79f) + curveToRelative(4.43f, -4.11f, 7.68f, -7.35f, 8.76f, -8.43f) + curveToRelative(-0.81f, 1.35f, -3.14f, 5.57f, -6.0f, 11.19f) + curveToRelative(-3.08f, 5.89f, -6.76f, 13.35f, -10.0f, 20.76f) + curveToRelative(-1.03f, 2.38f, -2.16f, 5.03f, -3.3f, 8.0f) + verticalLineToRelative(0.05f) + lineToRelative(2.16f, -0.38f) + lineToRelative(-5.41f, 8.81f) + lineToRelative(-0.05f, 0.11f) + lineToRelative(-0.11f, 0.11f) + curveToRelative(0.0f, 0.05f, -0.05f, 0.05f, -0.05f, 0.11f) + curveToRelative(-0.81f, 2.16f, -1.68f, 4.43f, -2.6f, 6.76f) + curveToRelative(-0.05f, 0.05f, -0.05f, 0.16f, -0.11f, 0.22f) + horizontalLineToRelative(0.05f) + lineToRelative(6.0f, 0.6f) + lineToRelative(-11.57f, 13.3f) + lineToRelative(-0.11f, 0.11f) + curveToRelative(-1.35f, 3.24f, -2.76f, 6.54f, -4.22f, 9.95f) + curveToRelative(-0.16f, 0.32f, -0.32f, 0.59f, -0.43f, 0.92f) + lineToRelative(6.87f, 1.03f) + lineToRelative(-15.68f, 17.46f) + verticalLineToRelative(0.05f) + lineToRelative(-0.11f, 0.11f) + curveToRelative(-1.13f, 2.16f, -2.27f, 4.38f, -3.46f, 6.54f) + horizontalLineToRelative(0.05f) + lineToRelative(9.24f, 0.87f) + lineToRelative(-21.63f, 20.11f) + curveToRelative(0.0f, 0.0f, 0.0f, 0.05f, -0.05f, 0.05f) + curveToRelative(-1.3f, 2.11f, -2.7f, 4.16f, -4.16f, 6.27f) + curveToRelative(-0.49f, 0.76f, -1.03f, 1.51f, -1.57f, 2.27f) + horizontalLineToRelative(0.05f) + lineToRelative(11.03f, -0.27f) + lineToRelative(-33.25f, 28.33f) + lineToRelative(-0.11f, 0.11f) + lineToRelative(-0.05f, 0.05f) + curveToRelative(-0.7f, 0.81f, -1.41f, 1.62f, -2.16f, 2.38f) + curveToRelative(-0.7f, 0.81f, -1.4f, 1.57f, -2.22f, 2.38f) + verticalLineToRelative(0.22f) + lineToRelative(7.73f, 1.35f) + horizontalLineToRelative(0.05f) + lineToRelative(30.17f, -20.92f) + lineToRelative(-2.92f, 8.27f) + curveToRelative(2.97f, -1.3f, 6.0f, -2.54f, 8.98f, -3.73f) + lineToRelative(22.98f, -14.76f) + lineToRelative(-1.51f, 7.03f) + curveToRelative(2.22f, -0.76f, 4.43f, -1.46f, 6.6f, -2.11f) + lineToRelative(0.11f, -0.05f) + lineToRelative(19.25f, -10.54f) + lineToRelative(-0.76f, 5.24f) + curveToRelative(3.73f, -0.97f, 7.3f, -1.89f, 10.76f, -2.76f) + lineToRelative(14.65f, -7.79f) + lineToRelative(-0.97f, 4.6f) + curveToRelative(2.33f, -0.54f, 4.65f, -1.08f, 6.81f, -1.57f) + curveToRelative(0.05f, 0.0f, 0.05f, 0.0f, 0.11f, 0.0f) + lineToRelative(0.11f, -0.05f) + lineToRelative(9.14f, -3.46f) + lineToRelative(-0.81f, 1.57f) + curveToRelative(0.7f, -0.16f, 1.41f, -0.32f, 2.11f, -0.49f) + curveToRelative(0.7f, -0.16f, 1.4f, -0.32f, 2.05f, -0.49f) + curveToRelative(1.3f, -0.32f, 2.6f, -0.6f, 3.73f, -0.92f) + curveToRelative(14.27f, -3.68f, 29.19f, -8.7f, 32.06f, -9.73f) + curveToRelative(-2.6f, 1.51f, -15.95f, 9.73f, -27.84f, 18.27f) + curveToRelative(-1.99f, 1.4f, -4.1f, 3.02f, -6.42f, 4.75f) + close() + } + } + .build() + return customHashTagIconsWeed!! + } + +private var customHashTagIconsWeed: ImageVector? = null diff --git a/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Zap.kt b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Zap.kt new file mode 100644 index 000000000..b318ef509 --- /dev/null +++ b/commons/src/main/java/com/vitorpamplona/amethyst/commons/hashtags/Zap.kt @@ -0,0 +1,135 @@ +/** + * Copyright (c) 2024 Vitor Pamplona + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package com.vitorpamplona.amethyst.commons.hashtags + +import androidx.compose.foundation.Image +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.graphics.vector.rememberVectorPainter +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +@Preview +@Composable +fun CustomHashTagIconsZapPreview() { + Image( + painter = + rememberVectorPainter( + CustomHashTagIcons.Zap, + ), + contentDescription = "", + ) +} + +public val CustomHashTagIcons.Zap: ImageVector + get() { + if (customHashTagIconsZap != null) { + return customHashTagIconsZap!! + } + customHashTagIconsZap = + Builder( + name = "Zap", + defaultWidth = 512.0.dp, + defaultHeight = 512.0.dp, + viewportWidth = 512.0f, + viewportHeight = 512.0f, + ).apply { + path( + fill = SolidColor(Color(0xFFfeb804)), + stroke = null, + strokeLineWidth = 1.04238f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveTo(402.129f, 1.262f) + curveTo(394.807f, 11.794f, 388.681f, 19.608f, 383.521f, 29.039f) + curveTo(343.68f, 85.579f, 302.38f, 141.064f, 261.518f, 196.862f) + curveToRelative(-6.717f, 6.205f, -2.232f, 18.181f, 7.303f, 15.634f) + curveToRelative(15.682f, 3.42f, 21.453f, -10.422f, 21.453f, -10.422f) + curveToRelative(0.0f, 0.0f, 77.893f, -124.006f, 115.841f, -186.586f) + curveToRelative(2.589f, -5.525f, 4.24f, -14.798f, -3.986f, -14.226f) + close() + } + path( + fill = SolidColor(Color(0xFF9c59ff)), + stroke = null, + strokeLineWidth = 1.04238f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(130.421f, 270.872f) + lineToRelative(84.145f, -1.043f) + lineToRelative(23.28f, 8.339f) + lineToRelative(-22.137f, 38.786f) + lineToRelative(-109.766f, 188.455f) + lineToRelative(3.586f, 0.316f) + lineToRelative(279.741f, -251.785f) + lineToRelative(45.052f, -42.484f) + lineToRelative(-136.776f, 0.479f) + lineToRelative(-35.283f, -0.668f) + lineTo(402.443f, 1.112f) + curveToRelative(0.0f, 0.0f, -223.081f, 181.661f, -329.737f, 270.145f) + lineToRelative(-1.05f, 0.837f) + close() + } + path( + fill = SolidColor(Color(0xFFfeb804)), + stroke = null, + strokeLineWidth = 1.04238f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero, + ) { + moveToRelative(105.973f, 505.407f) + curveToRelative(0.641f, 10.482f, 14.136f, 7.316f, 18.777f, 1.428f) + curveToRelative(110.113f, -98.518f, 227.418f, -195.827f, 322.374f, -283.083f) + curveToRelative(2.864f, -9.815f, -3.787f, -12.451f, -12.851f, -12.166f) + curveToRelative(-78.496f, 71.808f, -160.716f, 147.927f, -240.441f, 218.409f) + curveToRelative(-26.97f, 23.781f, -53.639f, 47.901f, -80.56f, 71.73f) + curveToRelative(-2.157f, 1.697f, -4.601f, 3.112f, -7.299f, 3.683f) + close() + moveTo(230.057f, 291.682f) + curveToRelative(6.731f, -10.679f, 15.607f, -23.143f, -0.042f, -21.833f) + curveToRelative(-52.452f, -0.003f, -100.964f, 0.787f, -149.966f, 2.256f) + curveToRelative(-7.988f, -0.012f, -8.925f, -2.348f, -12.914f, 9.06f) + curveToRelative(-4.908f, 14.035f, 13.177f, 11.664f, 21.968f, 11.597f) + curveToRelative(42.7f, -0.17f, 85.448f, 0.628f, 128.072f, -1.042f) + curveToRelative(4.996f, -0.006f, 7.714f, -0.11f, 12.882f, -0.037f) + close() + } + } + .build() + return customHashTagIconsZap!! + } + +private var customHashTagIconsZap: ImageVector? = null diff --git a/docs/hashtags/amethyst.svg b/docs/hashtags/amethyst.svg new file mode 100644 index 000000000..87f110118 --- /dev/null +++ b/docs/hashtags/amethyst.svg @@ -0,0 +1 @@ +Amethyst_svg_monogram \ No newline at end of file diff --git a/docs/hashtags/btc.svg b/docs/hashtags/btc.svg new file mode 100644 index 000000000..0a3b301ef --- /dev/null +++ b/docs/hashtags/btc.svg @@ -0,0 +1,45 @@ + + + + + + + + + + diff --git a/docs/hashtags/cashu.svg b/docs/hashtags/cashu.svg new file mode 100644 index 000000000..31e843c33 --- /dev/null +++ b/docs/hashtags/cashu.svg @@ -0,0 +1,53 @@ + + + + + + + + + diff --git a/docs/hashtags/coffee.svg b/docs/hashtags/coffee.svg new file mode 100644 index 000000000..cd947461e --- /dev/null +++ b/docs/hashtags/coffee.svg @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + diff --git a/docs/hashtags/footstr.svg b/docs/hashtags/footstr.svg new file mode 100644 index 000000000..6ddb74722 --- /dev/null +++ b/docs/hashtags/footstr.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/docs/hashtags/grownostr.svg b/docs/hashtags/grownostr.svg new file mode 100644 index 000000000..0bd7f7650 --- /dev/null +++ b/docs/hashtags/grownostr.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + diff --git a/docs/hashtags/lightning.svg b/docs/hashtags/lightning.svg new file mode 100644 index 000000000..0625e83af --- /dev/null +++ b/docs/hashtags/lightning.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + diff --git a/docs/hashtags/mate.svg b/docs/hashtags/mate.svg new file mode 100644 index 000000000..ee6bef7d2 --- /dev/null +++ b/docs/hashtags/mate.svg @@ -0,0 +1,96 @@ + + + + diff --git a/docs/hashtags/nostr.svg b/docs/hashtags/nostr.svg new file mode 100644 index 000000000..2353454d0 --- /dev/null +++ b/docs/hashtags/nostr.svg @@ -0,0 +1,31 @@ + + + + diff --git a/docs/hashtags/plebs.svg b/docs/hashtags/plebs.svg new file mode 100644 index 000000000..e48cc1ccd --- /dev/null +++ b/docs/hashtags/plebs.svg @@ -0,0 +1,57 @@ + + + + + + + + + diff --git a/docs/hashtags/skull.svg b/docs/hashtags/skull.svg new file mode 100644 index 000000000..9354101ff --- /dev/null +++ b/docs/hashtags/skull.svg @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/hashtags/tunestr.svg b/docs/hashtags/tunestr.svg new file mode 100644 index 000000000..e938b68e2 --- /dev/null +++ b/docs/hashtags/tunestr.svg @@ -0,0 +1,30 @@ + + + + + + + diff --git a/docs/hashtags/weed.svg b/docs/hashtags/weed.svg new file mode 100644 index 000000000..db506bbfd --- /dev/null +++ b/docs/hashtags/weed.svg @@ -0,0 +1,45 @@ + + + + + + + diff --git a/docs/hashtags/zap.svg b/docs/hashtags/zap.svg new file mode 100644 index 000000000..101f01194 --- /dev/null +++ b/docs/hashtags/zap.svg @@ -0,0 +1,51 @@ + + + + + + + +