kopia lustrzana https://github.com/vitorpamplona/amethyst
355 wiersze
9.2 KiB
Kotlin
355 wiersze
9.2 KiB
Kotlin
package com.vitorpamplona.amethyst.ui.note
|
|
|
|
import androidx.compose.foundation.layout.size
|
|
import androidx.compose.material.Icon
|
|
import androidx.compose.material.MaterialTheme
|
|
import androidx.compose.material.icons.Icons
|
|
import androidx.compose.material.icons.filled.ArrowBack
|
|
import androidx.compose.material.icons.filled.Bolt
|
|
import androidx.compose.material.icons.filled.Cancel
|
|
import androidx.compose.material.icons.filled.Clear
|
|
import androidx.compose.material.icons.filled.DownloadForOffline
|
|
import androidx.compose.material.icons.filled.Downloading
|
|
import androidx.compose.material.icons.filled.ExpandLess
|
|
import androidx.compose.material.icons.filled.ExpandMore
|
|
import androidx.compose.material.icons.filled.Link
|
|
import androidx.compose.material.icons.filled.MoreVert
|
|
import androidx.compose.material.icons.filled.PushPin
|
|
import androidx.compose.material.icons.filled.Report
|
|
import androidx.compose.material.icons.filled.VolumeOff
|
|
import androidx.compose.material.icons.filled.VolumeUp
|
|
import androidx.compose.material.icons.outlined.BarChart
|
|
import androidx.compose.material.icons.outlined.PlayCircle
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.runtime.remember
|
|
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.unit.Dp
|
|
import com.vitorpamplona.amethyst.R
|
|
import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange
|
|
import com.vitorpamplona.amethyst.ui.theme.Size15Modifier
|
|
import com.vitorpamplona.amethyst.ui.theme.Size20Modifier
|
|
import com.vitorpamplona.amethyst.ui.theme.Size30Modifier
|
|
import com.vitorpamplona.amethyst.ui.theme.placeholderText
|
|
import com.vitorpamplona.amethyst.ui.theme.subtleButton
|
|
|
|
@Composable
|
|
fun FollowingIcon(iconSize: Dp) {
|
|
Icon(
|
|
painter = painterResource(R.drawable.following),
|
|
contentDescription = stringResource(id = R.string.following),
|
|
modifier = remember(iconSize) { Modifier.size(iconSize) },
|
|
tint = Color.Unspecified
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun ArrowBackIcon(iconSize: Dp) {
|
|
Icon(
|
|
imageVector = Icons.Default.ArrowBack,
|
|
contentDescription = null,
|
|
modifier = remember(iconSize) { Modifier.size(iconSize) },
|
|
tint = MaterialTheme.colors.primary
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun MessageIcon(modifier: Modifier) {
|
|
Icon(
|
|
painter = painterResource(R.drawable.ic_dm),
|
|
null,
|
|
modifier = modifier,
|
|
tint = MaterialTheme.colors.primary
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun DownloadForOfflineIcon(iconSize: Dp) {
|
|
Icon(
|
|
imageVector = Icons.Default.DownloadForOffline,
|
|
null,
|
|
modifier = remember(iconSize) { Modifier.size(iconSize) },
|
|
tint = MaterialTheme.colors.primary
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun HashCheckIcon(iconSize: Dp) {
|
|
Icon(
|
|
painter = painterResource(R.drawable.original),
|
|
contentDescription = stringResource(id = R.string.hash_verification_passed),
|
|
modifier = remember(iconSize) { Modifier.size(iconSize) },
|
|
tint = Color.Unspecified
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun HashCheckFailedIcon(iconSize: Dp) {
|
|
Icon(
|
|
imageVector = Icons.Default.Report,
|
|
contentDescription = stringResource(id = R.string.hash_verification_failed),
|
|
modifier = remember(iconSize) { Modifier.size(iconSize) },
|
|
tint = Color.Red
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun LikedIcon(iconSize: Dp) {
|
|
Icon(
|
|
painter = painterResource(R.drawable.ic_liked),
|
|
null,
|
|
modifier = remember(iconSize) { Modifier.size(iconSize) },
|
|
tint = Color.Unspecified
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun LikeIcon(iconSize: Dp, grayTint: Color) {
|
|
Icon(
|
|
painter = painterResource(R.drawable.ic_like),
|
|
null,
|
|
modifier = remember(iconSize) { Modifier.size(iconSize) },
|
|
tint = grayTint
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun RepostedIcon(modifier: Modifier, tint: Color = Color.Unspecified) {
|
|
Icon(
|
|
painter = painterResource(R.drawable.ic_retweeted),
|
|
null,
|
|
modifier = modifier,
|
|
tint = tint
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun LightningAddressIcon(modifier: Modifier, tint: Color = Color.Unspecified) {
|
|
Icon(
|
|
imageVector = Icons.Default.Bolt,
|
|
contentDescription = stringResource(R.string.lightning_address),
|
|
tint = tint,
|
|
modifier = modifier
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun ZappedIcon(iconSize: Dp) {
|
|
ZappedIcon(modifier = remember(iconSize) { Modifier.size(iconSize) })
|
|
}
|
|
|
|
@Composable
|
|
fun ZappedIcon(modifier: Modifier) {
|
|
ZapIcon(modifier = modifier, BitcoinOrange)
|
|
}
|
|
|
|
@Composable
|
|
fun ZapIcon(iconSize: Dp, tint: Color = Color.Unspecified) {
|
|
ZapIcon(modifier = remember(iconSize) { Modifier.size(iconSize) }, tint)
|
|
}
|
|
|
|
@Composable
|
|
fun ZapIcon(modifier: Modifier, tint: Color = Color.Unspecified) {
|
|
Icon(
|
|
imageVector = Icons.Default.Bolt,
|
|
contentDescription = stringResource(R.string.zaps),
|
|
tint = tint,
|
|
modifier = modifier
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun ExpandLessIcon(modifier: Modifier) {
|
|
Icon(
|
|
imageVector = Icons.Default.ExpandLess,
|
|
null,
|
|
modifier = modifier,
|
|
tint = MaterialTheme.colors.subtleButton
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun ExpandMoreIcon(modifier: Modifier) {
|
|
Icon(
|
|
imageVector = Icons.Default.ExpandMore,
|
|
null,
|
|
modifier = modifier,
|
|
tint = MaterialTheme.colors.subtleButton
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun CommentIcon(iconSize: Dp, tint: Color) {
|
|
Icon(
|
|
painter = painterResource(R.drawable.ic_comment),
|
|
contentDescription = null,
|
|
modifier = remember { Modifier.size(iconSize) },
|
|
tint = tint
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun ViewCountIcon(iconSize: Dp, tint: Color = Color.Unspecified) {
|
|
ViewCountIcon(remember { Modifier.size(iconSize) }, tint)
|
|
}
|
|
|
|
@Composable
|
|
fun ViewCountIcon(modifier: Modifier, tint: Color = Color.Unspecified) {
|
|
Icon(
|
|
imageVector = Icons.Outlined.BarChart,
|
|
null,
|
|
modifier = modifier,
|
|
tint = tint
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun PollIcon() {
|
|
Icon(
|
|
painter = painterResource(R.drawable.ic_poll),
|
|
null,
|
|
modifier = Size20Modifier,
|
|
tint = MaterialTheme.colors.onBackground
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun RegularPostIcon() {
|
|
Icon(
|
|
painter = painterResource(R.drawable.ic_lists),
|
|
null,
|
|
modifier = Size20Modifier,
|
|
tint = MaterialTheme.colors.onBackground
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun CancelIcon() {
|
|
Icon(
|
|
imageVector = Icons.Default.Cancel,
|
|
null,
|
|
modifier = Size30Modifier,
|
|
tint = MaterialTheme.colors.placeholderText
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun CloseIcon() {
|
|
Icon(
|
|
painter = painterResource(id = R.drawable.ic_close),
|
|
contentDescription = stringResource(id = R.string.cancel),
|
|
modifier = Size20Modifier,
|
|
tint = Color.White
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun MutedIcon() {
|
|
Icon(
|
|
imageVector = Icons.Default.VolumeOff,
|
|
contentDescription = stringResource(id = R.string.muted_button),
|
|
tint = MaterialTheme.colors.onBackground,
|
|
modifier = Size30Modifier
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun MuteIcon() {
|
|
Icon(
|
|
imageVector = Icons.Default.VolumeUp,
|
|
contentDescription = stringResource(id = R.string.mute_button),
|
|
tint = MaterialTheme.colors.onBackground,
|
|
modifier = Size30Modifier
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun SearchIcon(modifier: Modifier, tint: Color = Color.Unspecified) {
|
|
Icon(
|
|
painter = painterResource(R.drawable.ic_search),
|
|
contentDescription = stringResource(id = R.string.search_button),
|
|
modifier = modifier,
|
|
tint = tint
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun PlayIcon(modifier: Modifier, tint: Color) {
|
|
Icon(
|
|
imageVector = Icons.Outlined.PlayCircle,
|
|
contentDescription = null,
|
|
modifier = modifier,
|
|
tint = tint
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun PinIcon(modifier: Modifier, tint: Color) {
|
|
Icon(
|
|
imageVector = Icons.Default.PushPin,
|
|
contentDescription = null,
|
|
modifier = modifier,
|
|
tint = tint
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun ClearTextIcon() {
|
|
Icon(
|
|
imageVector = Icons.Default.Clear,
|
|
contentDescription = stringResource(R.string.clear)
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun LinkIcon(modifier: Modifier, tint: Color) {
|
|
Icon(
|
|
imageVector = Icons.Default.Link,
|
|
contentDescription = stringResource(R.string.website),
|
|
modifier = modifier,
|
|
tint = tint
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun VerticalDotsIcon() {
|
|
Icon(
|
|
imageVector = Icons.Default.MoreVert,
|
|
null,
|
|
modifier = Size15Modifier,
|
|
tint = MaterialTheme.colors.placeholderText
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun NIP05CheckingIcon(modifier: Modifier) {
|
|
Icon(
|
|
imageVector = Icons.Default.Downloading,
|
|
contentDescription = stringResource(id = R.string.nip05_checking),
|
|
modifier = modifier,
|
|
tint = Color.Yellow
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun NIP05VerifiedIcon(modifier: Modifier) {
|
|
Icon(
|
|
painter = painterResource(R.drawable.nip_05_light),
|
|
contentDescription = stringResource(id = R.string.nip05_verified),
|
|
modifier = modifier,
|
|
tint = Color.Unspecified
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun NIP05FailedVerification(modifier: Modifier) {
|
|
Icon(
|
|
imageVector = Icons.Default.Report,
|
|
contentDescription = stringResource(id = R.string.nip05_failed),
|
|
modifier = modifier,
|
|
tint = Color.Red
|
|
)
|
|
}
|