From 4e18b556e9e23fcfa9285796a2f84404947a701d Mon Sep 17 00:00:00 2001 From: Infi Date: Sat, 12 Aug 2023 19:33:49 +0200 Subject: [PATCH] feat: inline badges for platform moderation and team Signed-off-by: Infi --- .../revolt/components/chat/InlineBadge.kt | 27 ++++++++++++++----- .../chat/revolt/components/chat/Message.kt | 3 +++ .../res/drawable/ic_alert_decagram_24dp.xml | 9 +++++++ .../res/drawable/ic_hammer_wrench_24dp.xml | 9 +++++++ app/src/main/res/values/strings.xml | 2 ++ 5 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 app/src/main/res/drawable/ic_alert_decagram_24dp.xml create mode 100644 app/src/main/res/drawable/ic_hammer_wrench_24dp.xml diff --git a/app/src/main/java/chat/revolt/components/chat/InlineBadge.kt b/app/src/main/java/chat/revolt/components/chat/InlineBadge.kt index 045f604b..b56c426b 100644 --- a/app/src/main/java/chat/revolt/components/chat/InlineBadge.kt +++ b/app/src/main/java/chat/revolt/components/chat/InlineBadge.kt @@ -13,7 +13,7 @@ enum class InlineBadge { Bot, Bridge, PlatformModeration, - Developer + TeamMember } @Composable @@ -29,14 +29,27 @@ fun InlineBadge( tint = colour, modifier = modifier ) + InlineBadge.Bridge -> Icon( painter = painterResource(id = R.drawable.ic_link_variant_24dp), contentDescription = stringResource(id = R.string.badge_masquerade_alt), tint = colour, modifier = modifier ) - InlineBadge.PlatformModeration -> TODO() - InlineBadge.Developer -> TODO() + + InlineBadge.PlatformModeration -> Icon( + painter = painterResource(id = R.drawable.ic_alert_decagram_24dp), + contentDescription = stringResource(id = R.string.badge_bot_alt), + tint = colour, + modifier = modifier + ) + + InlineBadge.TeamMember -> Icon( + painter = painterResource(id = R.drawable.ic_hammer_wrench_24dp), + contentDescription = stringResource(id = R.string.badge_team_member_alt), + tint = colour, + modifier = modifier + ) } } @@ -46,12 +59,12 @@ fun InlineBadges( bot: Boolean = false, bridge: Boolean = false, platformModeration: Boolean = false, - developer: Boolean = false, + teamMember: Boolean = false, colour: Color = Color.Unspecified, precedingIfAny: @Composable () -> Unit = {}, followingIfAny: @Composable () -> Unit = {}, ) { - val hasBadges = bot || bridge || platformModeration || developer + val hasBadges = bot || bridge || platformModeration || teamMember if (hasBadges) { precedingIfAny() @@ -79,9 +92,9 @@ fun InlineBadges( colour = colour ) } - if (developer) { + if (teamMember) { InlineBadge( - badge = InlineBadge.Developer, + badge = InlineBadge.TeamMember, modifier = modifier, colour = colour ) diff --git a/app/src/main/java/chat/revolt/components/chat/Message.kt b/app/src/main/java/chat/revolt/components/chat/Message.kt index 63425747..d8207d77 100644 --- a/app/src/main/java/chat/revolt/components/chat/Message.kt +++ b/app/src/main/java/chat/revolt/components/chat/Message.kt @@ -50,6 +50,7 @@ import chat.revolt.activities.media.ImageViewActivity import chat.revolt.activities.media.VideoViewActivity import chat.revolt.api.REVOLT_FILES import chat.revolt.api.RevoltAPI +import chat.revolt.api.internals.SpecialUsers import chat.revolt.api.internals.ULID import chat.revolt.api.internals.WebCompat import chat.revolt.api.internals.solidColor @@ -231,6 +232,8 @@ fun Message( InlineBadges( bot = author.bot != null && message.masquerade == null, bridge = message.masquerade != null && author.bot != null, + platformModeration = author.id == SpecialUsers.PLATFORM_MODERATION_USER, + teamMember = author.id in SpecialUsers.TEAM_MEMBER_FLAIRS.keys, colour = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.5f), modifier = Modifier.size(16.dp), precedingIfAny = { diff --git a/app/src/main/res/drawable/ic_alert_decagram_24dp.xml b/app/src/main/res/drawable/ic_alert_decagram_24dp.xml new file mode 100644 index 00000000..ade93caa --- /dev/null +++ b/app/src/main/res/drawable/ic_alert_decagram_24dp.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_hammer_wrench_24dp.xml b/app/src/main/res/drawable/ic_hammer_wrench_24dp.xml new file mode 100644 index 00000000..10c2145f --- /dev/null +++ b/app/src/main/res/drawable/ic_hammer_wrench_24dp.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8c5a23cc..529017a5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -100,6 +100,8 @@ Bot From linked channel + Platform moderation + Revolt team member Unknown