From 7a7e46a8604479cc534e3a519bbcf499a4b69183 Mon Sep 17 00:00:00 2001 From: Mauro Romito Date: Wed, 4 Dec 2024 17:40:06 +0100 Subject: [PATCH] added cases --- .../FlowCoordinators/UserSessionFlowCoordinator.swift | 4 ++++ .../View/TimelineItemViews/EncryptedRoomTimelineView.swift | 4 +++- .../Items/Other/EncryptedRoomTimelineItem.swift | 2 ++ .../Timeline/TimelineItems/RoomTimelineItemFactory.swift | 6 ++++++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ElementX/Sources/FlowCoordinators/UserSessionFlowCoordinator.swift b/ElementX/Sources/FlowCoordinators/UserSessionFlowCoordinator.swift index d73e0b3467..c23a17ef9b 100644 --- a/ElementX/Sources/FlowCoordinators/UserSessionFlowCoordinator.swift +++ b/ElementX/Sources/FlowCoordinators/UserSessionFlowCoordinator.swift @@ -395,6 +395,10 @@ class UserSessionFlowCoordinator: FlowCoordinatorProtocol { analytics.trackError(context: nil, domain: .E2EE, name: .ExpectedDueToMembership, timeToDecryptMillis: timeToDecryptMs) case .historicalMessage: analytics.trackError(context: nil, domain: .E2EE, name: .HistoricalMessage, timeToDecryptMillis: timeToDecryptMs) + case .withheldForUnverifiedOrInsecureDevice: + analytics.trackError(context: nil, domain: .E2EE, name: .RoomKeysWithheldForUnverifiedDevice, timeToDecryptMillis: timeToDecryptMs) + case .withheldBySender: + analytics.trackError(context: nil, domain: .E2EE, name: .UnknownError, timeToDecryptMillis: timeToDecryptMs) } } .store(in: &cancellables) diff --git a/ElementX/Sources/Screens/Timeline/View/TimelineItemViews/EncryptedRoomTimelineView.swift b/ElementX/Sources/Screens/Timeline/View/TimelineItemViews/EncryptedRoomTimelineView.swift index ff43aedda4..11b33132e9 100644 --- a/ElementX/Sources/Screens/Timeline/View/TimelineItemViews/EncryptedRoomTimelineView.swift +++ b/ElementX/Sources/Screens/Timeline/View/TimelineItemViews/EncryptedRoomTimelineView.swift @@ -20,7 +20,9 @@ struct EncryptedRoomTimelineView: View { case .sentBeforeWeJoined, .historicalMessage, .verificationViolation, - .insecureDevice: + .insecureDevice, + .witheldBySender, + .withheldForUnverifiedOrInsecureDevice: return \.block } default: diff --git a/ElementX/Sources/Services/Timeline/TimelineItems/Items/Other/EncryptedRoomTimelineItem.swift b/ElementX/Sources/Services/Timeline/TimelineItems/Items/Other/EncryptedRoomTimelineItem.swift index f6d5e7e0d5..6f417c903a 100644 --- a/ElementX/Sources/Services/Timeline/TimelineItems/Items/Other/EncryptedRoomTimelineItem.swift +++ b/ElementX/Sources/Services/Timeline/TimelineItems/Items/Other/EncryptedRoomTimelineItem.swift @@ -20,6 +20,8 @@ struct EncryptedRoomTimelineItem: EventBasedTimelineItemProtocol, Equatable { case insecureDevice case unknown case historicalMessage + case witheldBySender + case withheldForUnverifiedOrInsecureDevice } let id: TimelineItemIdentifier diff --git a/ElementX/Sources/Services/Timeline/TimelineItems/RoomTimelineItemFactory.swift b/ElementX/Sources/Services/Timeline/TimelineItems/RoomTimelineItemFactory.swift index a101af8781..7015baf21b 100644 --- a/ElementX/Sources/Services/Timeline/TimelineItems/RoomTimelineItemFactory.swift +++ b/ElementX/Sources/Services/Timeline/TimelineItems/RoomTimelineItemFactory.swift @@ -156,6 +156,12 @@ struct RoomTimelineItemFactory: RoomTimelineItemFactoryProtocol { case .historicalMessage: encryptionType = .megolmV1AesSha2(sessionID: sessionID, cause: .historicalMessage) errorLabel = L10n.timelineDecryptionFailureHistoricalEventNoKeyBackup + case .withheldForUnverifiedOrInsecureDevice: + encryptionType = .megolmV1AesSha2(sessionID: sessionID, cause: .withheldForUnverifiedOrInsecureDevice) + errorLabel = L10n.timelineDecryptionFailureWithheldUnverified + case .withheldBySender: + encryptionType = .megolmV1AesSha2(sessionID: sessionID, cause: .witheldBySender) + errorLabel = L10n.timelineDecryptionFailureWithheldUnverified } case .olmV1Curve25519AesSha2(let senderKey): encryptionType = .olmV1Curve25519AesSha2(senderKey: senderKey)