mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2024-09-29 08:20:51 +00:00
added special Bitcoin Hashtag with Icon
(S/O to tata)
This commit is contained in:
parent
f8b6b8fb45
commit
a42cdaaf91
@ -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
|
||||
)
|
@ -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 ")
|
||||
}
|
||||
|
BIN
app/src/main/res/drawable-hdpi/ht_btc.png
Normal file
BIN
app/src/main/res/drawable-hdpi/ht_btc.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.9 KiB |
BIN
app/src/main/res/drawable-xhdpi/ht_btc.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/ht_btc.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.9 KiB |
BIN
app/src/main/res/drawable-xxhdpi/ht_btc.png
Normal file
BIN
app/src/main/res/drawable-xxhdpi/ht_btc.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.9 KiB |
BIN
app/src/main/res/drawable-xxxhdpi/ht_btc.png
Normal file
BIN
app/src/main/res/drawable-xxxhdpi/ht_btc.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.9 KiB |
Loading…
Reference in New Issue
Block a user