From cf001054c225c102db72c1cdc30042d2ea6599a0 Mon Sep 17 00:00:00 2001 From: Stanislav Dmitrenko <7953703+avently@users.noreply.github.com> Date: Sat, 8 Oct 2022 21:49:42 +0300 Subject: [PATCH] core: Fix member role that wasn't applied to a member object (#1190) --- .../src/main/java/chat/simplex/app/model/SimpleXAPI.kt | 4 ++++ .../simplex/app/views/chat/group/GroupChatInfoView.kt | 9 ++++----- src/Simplex/Chat.hs | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt index 0131a4e5a3..e41b7e4a43 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt @@ -964,6 +964,10 @@ open class ChatController(var ctrl: ChatCtrl?, val ntfManager: NtfManager, val a chatModel.upsertGroupMember(r.groupInfo, r.deletedMember) is CR.LeftMember -> chatModel.upsertGroupMember(r.groupInfo, r.member) + is CR.MemberRole -> + chatModel.upsertGroupMember(r.groupInfo, r.member) + is CR.MemberRoleUser -> + chatModel.upsertGroupMember(r.groupInfo, r.member) is CR.GroupDeleted -> // TODO update user member chatModel.updateGroup(r.groupInfo) is CR.UserJoinedGroup -> diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/chat/group/GroupChatInfoView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/chat/group/GroupChatInfoView.kt index 1b35d1b8bd..fafb43cb10 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/chat/group/GroupChatInfoView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/chat/group/GroupChatInfoView.kt @@ -223,8 +223,8 @@ fun AddMembersButton(tint: Color = MaterialTheme.colors.primary) { fun MembersList(members: List, showMemberInfo: (GroupMember) -> Unit) { Column { members.forEachIndexed { index, member -> - SectionItemView(minHeight = 50.dp) { - MemberRow(member, showMemberInfo) + SectionItemView({ showMemberInfo(member) }, minHeight = 50.dp) { + MemberRow(member) } if (index < members.lastIndex) { SectionDivider() @@ -234,10 +234,9 @@ fun MembersList(members: List, showMemberInfo: (GroupMember) -> Uni } @Composable -fun MemberRow(member: GroupMember, showMemberInfo: ((GroupMember) -> Unit)? = null, user: Boolean = false) { - val modifier = if (showMemberInfo != null) Modifier.clickable { showMemberInfo(member) } else Modifier +fun MemberRow(member: GroupMember, user: Boolean = false) { Row( - modifier.fillMaxSize(), + Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween, verticalAlignment = Alignment.CenterVertically ) { diff --git a/src/Simplex/Chat.hs b/src/Simplex/Chat.hs index 914eeaa76b..d6837ffd25 100644 --- a/src/Simplex/Chat.hs +++ b/src/Simplex/Chat.hs @@ -2395,7 +2395,7 @@ processAgentMessage (Just user@User {userId, profile}) corrId agentConnId agentM withStore' $ \db -> updateGroupMemberRole db user member memRole ci <- saveRcvChatItem user (CDGroupRcv gInfo m) msg msgMeta (CIRcvGroupEvent gEvent) Nothing groupMsgToView gInfo m ci msgMeta - toView CRMemberRole {groupInfo = gInfo', byMember = m, member, fromRole, toRole = memRole} + toView CRMemberRole {groupInfo = gInfo', byMember = m, member = member {memberRole = memRole}, fromRole, toRole = memRole} checkHostRole :: GroupMember -> GroupMemberRole -> m () checkHostRole GroupMember {memberRole, localDisplayName} memRole =