fix: treat null presence as online

i have no idea why this is correct but ive been told it is

Signed-off-by: Infi <wingit@geist.ga>
This commit is contained in:
Infi 2023-08-30 03:22:35 +05:00
parent 56ba789ca4
commit a45b07f9de
6 changed files with 7 additions and 8 deletions

View File

@ -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

View File

@ -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 = {

View File

@ -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))

View File

@ -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,

View File

@ -246,7 +246,7 @@ fun MemberListMember(
avatar = user.avatar,
userId = user.id!!,
presence = presenceFromStatus(
user.status?.presence ?: "",
user.status?.presence,
user.online ?: false
)
)

View File

@ -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))