From 1f6a1b13b2282d2e188487d6e48543807126c9f2 Mon Sep 17 00:00:00 2001 From: ThomasSession Date: Mon, 16 Sep 2024 09:35:19 +1000 Subject: [PATCH] Using groupId as the key instead of the server alone --- .../securesms/conversation/v2/ConversationViewModel.kt | 10 +++++++--- .../thoughtcrime/securesms/groups/OpenGroupManager.kt | 5 ++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt index 06515f40ca..1e995bab01 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt @@ -117,15 +117,19 @@ class ConversationViewModel( communityWriteAccessJob?.cancel() communityWriteAccessJob = viewModelScope.launch { OpenGroupManager.getCommunitiesWriteAccessFlow() - .map { it[openGroup?.server] } + .map { + if(openGroup?.groupId != null) + it[openGroup?.groupId] + else null + } .filterNotNull() .collect{ // update our community object _openGroup.updateTo(openGroup?.copy(canWrite = it)) // when we get an update on the write access of a community // we need to update the input text accordingly - _uiState.update { - it.copy(hideInputBar = shouldHideInputBar()) + _uiState.update { state -> + state.copy(hideInputBar = shouldHideInputBar()) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/OpenGroupManager.kt b/app/src/main/java/org/thoughtcrime/securesms/groups/OpenGroupManager.kt index 5fae172dde..4b6f73bd2a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/OpenGroupManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/OpenGroupManager.kt @@ -172,13 +172,12 @@ object OpenGroupManager { fun updateOpenGroup(openGroup: OpenGroup, context: Context) { val threadDB = DatabaseComponent.get(context).lokiThreadDatabase() - val openGroupID = "${openGroup.server}.${openGroup.room}" - val threadID = GroupManager.getOpenGroupThreadID(openGroupID, context) + val threadID = GroupManager.getOpenGroupThreadID(openGroup.groupId, context) threadDB.setOpenGroupChat(openGroup, threadID) // update write access for this community val writeAccesses = _communityWriteAccess.value.toMutableMap() - writeAccesses[openGroup.server] = openGroup.canWrite + writeAccesses[openGroup.groupId] = openGroup.canWrite _communityWriteAccess.value = writeAccesses }