From a59d1b815375dc318a8878493cf3847847882f77 Mon Sep 17 00:00:00 2001 From: Morgan Pretty Date: Mon, 19 Sep 2022 16:39:04 +1000 Subject: [PATCH] Fixed a few bugs found during regression testing Increased version & build numbers for release Fixed a bug where the closed group info messages might not include names for members added/removed when the profile was unknown Fixed a bug where removing members from closed groups wasn't showing an info message correctly Fixed a minor layout issue in the CallMessageCell --- Session.xcodeproj/project.pbxproj | 8 +++---- .../Message Cells/CallMessageCell.swift | 16 ++++++++++++-- .../ClosedGroupControlMessage.swift | 21 ++++++++++++++----- .../MessageReceiver+ClosedGroups.swift | 2 +- 4 files changed, 35 insertions(+), 12 deletions(-) diff --git a/Session.xcodeproj/project.pbxproj b/Session.xcodeproj/project.pbxproj index 7911adf2f..cb4aa7e91 100644 --- a/Session.xcodeproj/project.pbxproj +++ b/Session.xcodeproj/project.pbxproj @@ -6959,7 +6959,7 @@ CODE_SIGN_ENTITLEMENTS = Session/Meta/Signal.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 374; + CURRENT_PROJECT_VERSION = 375; DEVELOPMENT_TEAM = SUQ8J2PCT7; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -6998,7 +6998,7 @@ "$(SRCROOT)", ); LLVM_LTO = NO; - MARKETING_VERSION = 2.1.0; + MARKETING_VERSION = 2.1.1; OTHER_LDFLAGS = "$(inherited)"; OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\""; PRODUCT_BUNDLE_IDENTIFIER = "com.loki-project.loki-messenger"; @@ -7031,7 +7031,7 @@ CODE_SIGN_ENTITLEMENTS = Session/Meta/Signal.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 374; + CURRENT_PROJECT_VERSION = 375; DEVELOPMENT_TEAM = SUQ8J2PCT7; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -7070,7 +7070,7 @@ "$(SRCROOT)", ); LLVM_LTO = NO; - MARKETING_VERSION = 2.1.0; + MARKETING_VERSION = 2.1.1; OTHER_LDFLAGS = "$(inherited)"; PRODUCT_BUNDLE_IDENTIFIER = "com.loki-project.loki-messenger"; PRODUCT_NAME = Session; diff --git a/Session/Conversations/Message Cells/CallMessageCell.swift b/Session/Conversations/Message Cells/CallMessageCell.swift index 36e0ced6e..0037820e4 100644 --- a/Session/Conversations/Message Cells/CallMessageCell.swift +++ b/Session/Conversations/Message Cells/CallMessageCell.swift @@ -47,12 +47,24 @@ final class CallMessageCell: MessageCell { private lazy var container: UIView = { let result: UIView = UIView() - result.set(.height, to: 50) result.layer.cornerRadius = 18 result.backgroundColor = Colors.callMessageBackground result.addSubview(label) - label.autoCenterInSuperview() + label.pin(.top, to: .top, of: result, withInset: CallMessageCell.inset) + label.pin( + .left, + to: .left, + of: result, + withInset: ((CallMessageCell.inset * 2) + infoImageView.bounds.size.width) + ) + label.pin( + .right, + to: .right, + of: result, + withInset: -((CallMessageCell.inset * 2) + infoImageView.bounds.size.width) + ) + label.pin(.bottom, to: .bottom, of: result, withInset: -CallMessageCell.inset) result.addSubview(iconImageView) iconImageView.autoVCenterInSuperview() diff --git a/SessionMessagingKit/Messages/Control Messages/ClosedGroupControlMessage.swift b/SessionMessagingKit/Messages/Control Messages/ClosedGroupControlMessage.swift index a8160efe1..9f2214fe9 100644 --- a/SessionMessagingKit/Messages/Control Messages/ClosedGroupControlMessage.swift +++ b/SessionMessagingKit/Messages/Control Messages/ClosedGroupControlMessage.swift @@ -369,9 +369,15 @@ public extension ClosedGroupControlMessage.Kind { return String(format: "GROUP_TITLE_CHANGED".localized(), name) case .membersAdded(let membersAsData): - let addedMemberNames: [String] = try Profile - .fetchAll(db, ids: membersAsData.map { $0.toHexString() }) - .map { $0.displayName() } + let memberIds: [String] = membersAsData.map { $0.toHexString() } + let knownMemberNameMap: [String: String] = try Profile + .fetchAll(db, ids: memberIds) + .reduce(into: [:]) { result, next in result[next.id] = next.displayName() } + let addedMemberNames: [String] = memberIds + .map { + knownMemberNameMap[$0] ?? + Profile.truncated(id: $0, threadVariant: .closedGroup) + } return String( format: "GROUP_MEMBER_JOINED".localized(), @@ -387,9 +393,14 @@ public extension ClosedGroupControlMessage.Kind { var infoMessage: String = "" if !memberIds.removing(userPublicKey).isEmpty { - let removedMemberNames: [String] = try Profile + let knownMemberNameMap: [String: String] = try Profile .fetchAll(db, ids: memberIds.removing(userPublicKey)) - .map { $0.displayName() } + .reduce(into: [:]) { result, next in result[next.id] = next.displayName() } + let removedMemberNames: [String] = memberIds.removing(userPublicKey) + .map { + knownMemberNameMap[$0] ?? + Profile.truncated(id: $0, threadVariant: .closedGroup) + } let format: String = (removedMemberNames.count > 1 ? "GROUP_MEMBERS_REMOVED".localized() : "GROUP_MEMBER_REMOVED".localized() diff --git a/SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+ClosedGroups.swift b/SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+ClosedGroups.swift index 20d52e23f..5c5620a81 100644 --- a/SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+ClosedGroups.swift +++ b/SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+ClosedGroups.swift @@ -377,7 +377,7 @@ extension MessageReceiver { .membersRemoved( members: removedMembers .asSet() - .subtracting(groupMembers.map { $0.profileId }) + .intersection(groupMembers.map { $0.profileId }) .map { Data(hex: $0) } ) .infoMessage(db, sender: sender),