ios: only show notification on received messages, do not remove non-current group members from contacts that can be added to the group (#846)

This commit is contained in:
Evgeny Poberezkin 2022-07-28 10:11:16 +01:00 committed by GitHub
parent bf4072b365
commit 4a931bc145
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 31 additions and 17 deletions

View file

@ -765,7 +765,7 @@ func processReceivedMsg(_ res: ChatResponse) async {
await receiveFile(fileId: file.fileId)
}
}
if !cItem.isCall() {
if !cItem.chatDir.sent && !cItem.isCall() {
NtfManager.shared.notifyMessageReceived(cInfo, cItem)
}
case let .chatItemStatusUpdated(aChatItem):

View file

@ -67,8 +67,8 @@ struct AddGroupMembersView: View {
}
func getContactsToAdd() async -> [Contact] {
let memberContactIds = await apiListMembers(chat.chatInfo.apiId)
.compactMap{ $0.memberContactId }
let ms = await apiListMembers(chat.chatInfo.apiId)
let memberContactIds = ms.compactMap{ m in m.memberCurrent ? m.memberContactId : nil }
return chatModel.chats
.compactMap{ $0.chatInfo.contact }
.filter{ !memberContactIds.contains($0.apiId) }

View file

@ -511,20 +511,34 @@ public struct GroupMember: Identifiable, Decodable {
}
public var memberActive: Bool {
get {
switch self.memberStatus {
case .memRemoved: return false
case .memLeft: return false
case .memGroupDeleted: return false
case .memInvited: return false
case .memIntroduced: return false
case .memIntroInvited: return false
case .memAccepted: return false
case .memAnnounced: return false
case .memConnected: return true
case .memComplete: return true
case .memCreator: return true
}
switch memberStatus {
case .memRemoved: return false
case .memLeft: return false
case .memGroupDeleted: return false
case .memInvited: return false
case .memIntroduced: return false
case .memIntroInvited: return false
case .memAccepted: return false
case .memAnnounced: return false
case .memConnected: return true
case .memComplete: return true
case .memCreator: return true
}
}
public var memberCurrent: Bool {
switch memberStatus {
case .memRemoved: return false
case .memLeft: return false
case .memGroupDeleted: return false
case .memInvited: return false
case .memIntroduced: return true
case .memIntroInvited: return true
case .memAccepted: return true
case .memAnnounced: return true
case .memConnected: return true
case .memComplete: return true
case .memCreator: return true
}
}