added special Bitcoin Hashtag with Icon

(S/O to tata)
This commit is contained in:
Believethehype 2023-03-16 23:44:25 +01:00
parent f8b6b8fb45
commit a42cdaaf91
6 changed files with 44 additions and 4 deletions

View File

@ -0,0 +1,15 @@
package com.vitorpamplona.amethyst.model
import androidx.compose.ui.graphics.Color
import com.vitorpamplona.amethyst.R
fun checkForHashtagWithIcon(tag: String): HashtagIcon? {
if (tag.lowercase() == "bitcoin" || tag.lowercase() == "btc") {
return HashtagIcon(R.drawable.ht_btc, "Bitcoin", Color(0xFFf2A900))
}
return null
}
class HashtagIcon(
val icon: Int,
val description: String,
val color: Color
)

View File

@ -1,39 +1,49 @@
package com.vitorpamplona.amethyst.ui.components
import android.util.Patterns
import androidx.compose.animation.VectorConverter
import androidx.compose.animation.animateContentSize
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.ClickableText
import androidx.compose.material.Icon
import androidx.compose.material.LocalTextStyle
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Image
import androidx.compose.material.icons.filled.MoreVert
import androidx.compose.runtime.Composable
import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.compositeOver
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.style.TextDecoration
import androidx.compose.ui.text.style.TextDirection
import androidx.compose.ui.text.toLowerCase
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.navigation.NavController
import coil.ImageLoader
import com.google.accompanist.flowlayout.FlowRow
import com.halilibo.richtext.markdown.Markdown
import com.halilibo.richtext.markdown.MarkdownParseOptions
import com.halilibo.richtext.ui.RichTextStyle
import com.halilibo.richtext.ui.material.MaterialRichText
import com.halilibo.richtext.ui.resolveDefaults
import com.vitorpamplona.amethyst.R
import com.vitorpamplona.amethyst.model.LocalCache
import com.vitorpamplona.amethyst.model.checkForHashtagWithIcon
import com.vitorpamplona.amethyst.service.lnurl.LnInvoiceUtil
import com.vitorpamplona.amethyst.service.nip19.Nip19
import com.vitorpamplona.amethyst.ui.note.NoteCompose
@ -230,12 +240,27 @@ fun HashTag(word: String, accountViewModel: AccountViewModel, navController: Nav
null
}
if (tag != null) {
var txt = AnnotatedString("#$tag ")
val HashtagIcon = checkForHashtagWithIcon(tag)
if(HashtagIcon != null){
txt = AnnotatedString("#$tag")
}
ClickableText(
text = AnnotatedString("#$tag "),
text = txt,
onClick = { navController.navigate("Hashtag/$tag") },
style = LocalTextStyle.current.copy(color = MaterialTheme.colors.primary)
)
if(HashtagIcon != null){
Icon(
painter = painterResource(HashtagIcon.icon),
HashtagIcon.description,
tint = HashtagIcon.color,
modifier = Modifier.size(20.dp).padding(0.dp,5.dp,0.dp,0.dp)
)
}
} else {
Text(text = "$word ")
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB