multiplatform: update compose version (#2835)

* multiplatform: update compose version

* Revert "desktop: fix freeze in some situations (#2820)"

This reverts commit 6268f0a32b.

* Revert "desktop: prevent deadlock (#2785)"

This reverts commit d77980e50e.

* restore debug commands in comments

---------

Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
This commit is contained in:
Stanislav Dmitrenko 2023-08-02 19:20:15 +03:00 committed by GitHub
parent e34a8ef719
commit 2f10633d1d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 15 additions and 20 deletions

View File

@ -49,14 +49,14 @@ object ChatModel {
val chatDbStatus = mutableStateOf<DBMigrationResult?>(null)
val chats = mutableStateListOf<Chat>()
// map of connections network statuses, key is agent connection id
val networkStatuses = mutableStateOf<Map<String, NetworkStatus>>(mapOf())
val networkStatuses = mutableStateMapOf<String, NetworkStatus>()
// current chat
val chatId = mutableStateOf<String?>(null)
val chatItems = mutableStateListOf<ChatItem>()
val groupMembers = mutableStateListOf<GroupMember>()
val terminalItems = mutableStateOf(emptyList<TerminalItem>())
val terminalItems = mutableStateListOf<TerminalItem>()
val userAddress = mutableStateOf<UserContactLinkRec?>(null)
// Allows to temporary save servers that are being edited on multiple screens
val userSMPServersUnsaved = mutableStateOf<(List<ServerCfg>)?>(null)
@ -477,20 +477,17 @@ object ChatModel {
}
fun setContactNetworkStatus(contact: Contact, status: NetworkStatus) {
val statuses = networkStatuses.value.toMutableMap()
statuses[contact.activeConn.agentConnId] = status
networkStatuses.value = statuses
networkStatuses[contact.activeConn.agentConnId] = status
}
fun contactNetworkStatus(contact: Contact): NetworkStatus =
networkStatuses.value[contact.activeConn.agentConnId] ?: NetworkStatus.Unknown()
networkStatuses[contact.activeConn.agentConnId] ?: NetworkStatus.Unknown()
fun addTerminalItem(item: TerminalItem) {
if (terminalItems.value.size >= 500) {
terminalItems.value = terminalItems.value.takeLast(499) + item
} else {
terminalItems.value += item
if (terminalItems.size >= 500) {
terminalItems.removeAt(0)
}
terminalItems.add(item)
}
}

View File

@ -1678,11 +1678,9 @@ object ChatController {
}
private fun updateContactsStatus(contactRefs: List<ContactRef>, status: NetworkStatus) {
val statuses = chatModel.networkStatuses.value.toMutableMap()
for (c in contactRefs) {
statuses[c.agentConnId] = status
chatModel.networkStatuses[c.agentConnId] = status
}
chatModel.networkStatuses.value = statuses
}
private fun processContactSubError(contact: Contact, chatError: ChatError) {

View File

@ -34,7 +34,7 @@ fun TerminalView(chatModel: ChatModel, close: () -> Unit) {
close()
})
TerminalLayout(
chatModel.terminalItems,
remember { chatModel.terminalItems },
composeState,
sendCommand = { sendCommand(chatModel, composeState) },
close
@ -62,7 +62,7 @@ private fun sendCommand(chatModel: ChatModel, composeState: MutableState<Compose
@Composable
fun TerminalLayout(
terminalItems: MutableState<List<TerminalItem>>,
terminalItems: List<TerminalItem>,
composeState: MutableState<ComposeState>,
sendCommand: () -> Unit,
close: () -> Unit
@ -115,12 +115,12 @@ fun TerminalLayout(
private var lazyListState = 0 to 0
@Composable
fun TerminalLog(terminalItems: MutableState<List<TerminalItem>>) {
fun TerminalLog(terminalItems: List<TerminalItem>) {
val listState = rememberLazyListState(lazyListState.first, lazyListState.second)
DisposableEffect(Unit) {
onDispose { lazyListState = listState.firstVisibleItemIndex to listState.firstVisibleItemScrollOffset }
}
val reversedTerminalItems by remember { derivedStateOf { terminalItems.value.reversed().toList() } }
val reversedTerminalItems by remember { derivedStateOf { terminalItems.reversed().toList() } }
val clipboard = LocalClipboardManager.current
LazyColumn(state = listState, reverseLayout = true) {
items(reversedTerminalItems) { item ->
@ -152,7 +152,7 @@ fun TerminalLog(terminalItems: MutableState<List<TerminalItem>>) {
fun PreviewTerminalLayout() {
SimpleXTheme {
TerminalLayout(
terminalItems = remember { mutableStateOf(TerminalItem.sampleData) },
terminalItems = TerminalItem.sampleData,
composeState = remember { mutableStateOf(ComposeState(useLinkPreviews = false)) },
sendCommand = {},
close = {}

View File

@ -55,7 +55,7 @@ fun ChatInfoView(
val connStats = remember { mutableStateOf(connectionStats) }
val developerTools = chatModel.controller.appPrefs.developerTools.get()
if (chat != null && currentUser != null) {
val contactNetworkStatus = remember(chatModel.networkStatuses.value) {
val contactNetworkStatus = remember(chatModel.networkStatuses.toMap()) {
mutableStateOf(chatModel.contactNetworkStatus(contact))
}
val sendReceipts = remember { mutableStateOf(SendReceipts.fromBool(contact.chatSettings.sendRcpts, currentUser.sendRcptsContacts)) }

View File

@ -32,4 +32,4 @@ desktop.version_name=1.0.1
kotlin.version=1.8.20
gradle.plugin.version=7.4.2
compose.version=1.4.0
compose.version=1.4.3