commit 877c1eadeae0911720b12508d36f6c4f45d04014
parent 7f5e76d6d473d3cb227afc411763c5ec3eb15ad3
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Tue, 13 Aug 2024 14:38:29 +0200

feat(app/add_friend_dialog): pinned friends

Diffstat:
Mapp/src/main/kotlin/me/rhunk/snapenhance/ui/manager/pages/social/AddFriendDialog.kt | 25++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/pages/social/AddFriendDialog.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/pages/social/AddFriendDialog.kt @@ -15,13 +15,7 @@ import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.compose.ui.window.Dialog -import androidx.compose.ui.window.DialogProperties -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.Job -import kotlinx.coroutines.delay -import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext +import kotlinx.coroutines.* import me.rhunk.snapenhance.RemoteSideContext import me.rhunk.snapenhance.common.ReceiversConfig import me.rhunk.snapenhance.common.data.MessagingFriendInfo @@ -34,6 +28,7 @@ import me.rhunk.snapenhance.ui.util.coil.BitmojiImage class AddFriendDialog( private val context: RemoteSideContext, private val actionHandler: Actions, + private val pinnedIds: List<String>? = null ) { class Actions( val onFriendState: (friend: MessagingFriendInfo, state: Boolean) -> Unit, @@ -151,8 +146,16 @@ class AddFriendDialog( LaunchedEffect(Unit) { context.database.receiveMessagingDataCallback = { friends, groups -> - cachedFriends = friends - cachedGroups = groups + cachedFriends = friends.run { + if (pinnedIds != null) { + sortedBy { -pinnedIds.indexOf(it.userId) } + } else friends + } + cachedGroups = groups.run { + if (pinnedIds != null) { + sortedBy { -pinnedIds.indexOf(it.conversationId) } + } else groups + } timeoutJob?.cancel() hasFetchError = false } @@ -172,12 +175,12 @@ class AddFriendDialog( } } - Dialog( + me.rhunk.snapenhance.ui.util.Dialog( onDismissRequest = { timeoutJob?.cancel() dismiss() }, - properties = DialogProperties(usePlatformDefaultWidth = false) + properties = me.rhunk.snapenhance.ui.util.DialogProperties(usePlatformDefaultWidth = false) ) { Card( colors = CardDefaults.elevatedCardColors(),