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 285bec6af..000000000
Binary files a/app/src/main/res/drawable-hdpi/ht_btc.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/ht_nostr.png b/app/src/main/res/drawable-hdpi/ht_nostr.png
deleted file mode 100644
index cab4b9010..000000000
Binary files a/app/src/main/res/drawable-hdpi/ht_nostr.png and /dev/null differ
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 25b09df68..000000000
Binary files a/app/src/main/res/drawable-mdpi/ht_btc.png and /dev/null differ
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 00a9b4741..000000000
Binary files a/app/src/main/res/drawable-mdpi/ht_nostr.png and /dev/null differ
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 94994fc8e..000000000
Binary files a/app/src/main/res/drawable-xhdpi/ht_btc.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/ht_nostr.png b/app/src/main/res/drawable-xhdpi/ht_nostr.png
deleted file mode 100644
index 778436989..000000000
Binary files a/app/src/main/res/drawable-xhdpi/ht_nostr.png and /dev/null differ
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 f4d319f70..000000000
Binary files a/app/src/main/res/drawable-xxhdpi/ht_btc.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/ht_nostr.png b/app/src/main/res/drawable-xxhdpi/ht_nostr.png
deleted file mode 100644
index b7f62e876..000000000
Binary files a/app/src/main/res/drawable-xxhdpi/ht_nostr.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ht_btc.png b/app/src/main/res/drawable-xxxhdpi/ht_btc.png
deleted file mode 100644
index 8f7caa95b..000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/ht_btc.png and /dev/null differ
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 731160f79..000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/ht_nostr.png and /dev/null differ
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 @@
+
\ 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 @@
+
+