From a45b07f9de6dc7205f9cbca5a2f5b5bddb9ba92a Mon Sep 17 00:00:00 2001 From: Infi Date: Wed, 30 Aug 2023 03:22:35 +0500 Subject: [PATCH] fix: treat null presence as online i have no idea why this is correct but ive been told it is Signed-off-by: Infi --- .../main/java/chat/revolt/components/generic/UserAvatar.kt | 4 ++-- .../components/screens/chat/drawer/channel/ChannelList.kt | 2 +- .../chat/revolt/components/screens/settings/UserOverview.kt | 2 +- .../main/java/chat/revolt/screens/chat/ChatRouterScreen.kt | 3 +-- app/src/main/java/chat/revolt/sheets/MemberListSheet.kt | 2 +- app/src/main/java/chat/revolt/sheets/StatusSheet.kt | 2 +- 6 files changed, 7 insertions(+), 8 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 76c763a8..9ad6bef6 100644 --- a/app/src/main/java/chat/revolt/components/generic/UserAvatar.kt +++ b/app/src/main/java/chat/revolt/components/generic/UserAvatar.kt @@ -33,11 +33,11 @@ enum class Presence { Offline } -fun presenceFromStatus(status: String, online: Boolean = true): Presence { +fun presenceFromStatus(status: String?, online: Boolean = true): Presence { if (!online) return Presence.Offline return when (status) { - "Online" -> Presence.Online + "Online", null -> Presence.Online "Idle" -> Presence.Idle "Busy" -> Presence.Dnd "Focus" -> Presence.Focus 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 89cdd81d..6ceb42c7 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 @@ -243,7 +243,7 @@ fun RowScope.ChannelList( dmPartnerId = partner?.id, dmPartnerName = partner?.let { p -> User.resolveDefaultName(p) }, dmPartnerStatus = presenceFromStatus( - status = partner?.status?.presence ?: "Offline", + status = partner?.status?.presence, online = partner?.online ?: false ), onClick = { diff --git a/app/src/main/java/chat/revolt/components/screens/settings/UserOverview.kt b/app/src/main/java/chat/revolt/components/screens/settings/UserOverview.kt index 070f1496..262d4785 100644 --- a/app/src/main/java/chat/revolt/components/screens/settings/UserOverview.kt +++ b/app/src/main/java/chat/revolt/components/screens/settings/UserOverview.kt @@ -138,7 +138,7 @@ fun RawUserOverview(user: User, profile: Profile? = null) { userId = user.id ?: ULID.makeSpecial(0), avatar = user.avatar, size = 48.dp, - presence = presenceFromStatus(user.status?.presence ?: "Offline"), + presence = presenceFromStatus(user.status?.presence), ) Spacer(modifier = Modifier.width(12.dp)) diff --git a/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt b/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt index 270ab4f3..805c6d37 100644 --- a/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt +++ b/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt @@ -541,7 +541,6 @@ fun Sidebar( ?: "", presence = presenceFromStatus( RevoltAPI.userCache[RevoltAPI.selfId]?.status?.presence - ?: "" ), userId = RevoltAPI.selfId ?: "", avatar = RevoltAPI.userCache[RevoltAPI.selfId]?.avatar, @@ -592,7 +591,7 @@ fun Sidebar( ) } ?: it.name ?: "?", presence = presenceFromStatus( - partner?.status?.presence ?: "" + partner?.status?.presence ), userId = partner?.id ?: it.id ?: "", avatar = partner?.avatar ?: it.icon, diff --git a/app/src/main/java/chat/revolt/sheets/MemberListSheet.kt b/app/src/main/java/chat/revolt/sheets/MemberListSheet.kt index 865e67c8..183f9ee5 100644 --- a/app/src/main/java/chat/revolt/sheets/MemberListSheet.kt +++ b/app/src/main/java/chat/revolt/sheets/MemberListSheet.kt @@ -246,7 +246,7 @@ fun MemberListMember( avatar = user.avatar, userId = user.id!!, presence = presenceFromStatus( - user.status?.presence ?: "", + user.status?.presence, user.online ?: false ) ) diff --git a/app/src/main/java/chat/revolt/sheets/StatusSheet.kt b/app/src/main/java/chat/revolt/sheets/StatusSheet.kt index 535336d6..a4abfba2 100644 --- a/app/src/main/java/chat/revolt/sheets/StatusSheet.kt +++ b/app/src/main/java/chat/revolt/sheets/StatusSheet.kt @@ -47,7 +47,7 @@ fun StatusSheet( userId = selfUser.id ?: ULID.makeSpecial(0), avatar = selfUser.avatar, size = 48.dp, - presence = presenceFromStatus(selfUser.status?.presence ?: "offline"), + presence = presenceFromStatus(selfUser.status?.presence), ) Spacer(modifier = Modifier.width(12.dp))