From 26e825779ef031c1d6a2b7502e19f964dabee23d Mon Sep 17 00:00:00 2001 From: Infi Date: Wed, 14 Jun 2023 16:44:25 +0200 Subject: [PATCH] feat: user presence improvements Signed-off-by: Infi --- .../chat/revolt/components/generic/UserAvatar.kt | 12 +++++++----- .../screens/chat/drawer/channel/ChannelList.kt | 3 ++- gradle.properties | 3 ++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/chat/revolt/components/generic/UserAvatar.kt b/app/src/main/java/chat/revolt/components/generic/UserAvatar.kt index c02165e1..e9ac8321 100644 --- a/app/src/main/java/chat/revolt/components/generic/UserAvatar.kt +++ b/app/src/main/java/chat/revolt/components/generic/UserAvatar.kt @@ -33,7 +33,9 @@ enum class Presence { Offline } -fun presenceFromStatus(status: String): Presence { +fun presenceFromStatus(status: String, online: Boolean = true): Presence { + if (!online) return Presence.Offline + return when (status) { "Online" -> Presence.Online "Idle" -> Presence.Idle @@ -45,10 +47,10 @@ fun presenceFromStatus(status: String): Presence { fun presenceColour(presence: Presence): Color { return when (presence) { - Presence.Online -> Color(0xff73b258) - Presence.Idle -> Color(0xffecc73c) - Presence.Dnd -> Color(0xffd24c41) - Presence.Focus -> Color(0xff69a2ef) + Presence.Online -> Color(0xFF00C853) + Presence.Idle -> Color(0xFFFFD600) + Presence.Dnd -> Color(0xFFD50000) + Presence.Focus -> Color(0xFF0091EA) Presence.Offline -> Color(0xff546e7a) } } diff --git a/app/src/main/java/chat/revolt/components/screens/chat/drawer/channel/ChannelList.kt b/app/src/main/java/chat/revolt/components/screens/chat/drawer/channel/ChannelList.kt index d731662a..193a5e22 100644 --- a/app/src/main/java/chat/revolt/components/screens/chat/drawer/channel/ChannelList.kt +++ b/app/src/main/java/chat/revolt/components/screens/chat/drawer/channel/ChannelList.kt @@ -172,7 +172,8 @@ fun RowScope.ChannelList( dmPartnerId = partner?.id, dmPartnerName = partner?.let { p -> User.resolveDefaultName(p) }, dmPartnerStatus = presenceFromStatus( - partner?.status?.presence ?: "Offline" + status = partner?.status?.presence ?: "Offline", + online = partner?.online ?: false ), onClick = { onChannelClick(channel.id ?: return@DrawerChannel) diff --git a/gradle.properties b/gradle.properties index 022338b7..32f4629b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -22,4 +22,5 @@ kotlin.code.style=official # thereby reducing the size of the R class for that library android.nonTransitiveRClass=true android.defaults.buildfeatures.buildconfig=true -android.nonFinalResIds=false \ No newline at end of file +android.nonFinalResIds=false +org.gradle.configuration-cache=true \ No newline at end of file