Automatically retry decryptions in the active room when the app becomes active again just in case the NSE received keys we're not aware of (#3628)

This commit is contained in:
Stefan Ceriu
2024-12-18 11:10:56 +02:00
committed by GitHub
parent 2a865ce5bf
commit 435dfb8e46
10 changed files with 38 additions and 42 deletions
@@ -157,8 +157,6 @@ class TimelineInteractionHandler {
let debugInfo = timelineController.debugInfo(for: eventTimelineItem.id)
MXLog.info("Showing debug info for \(eventTimelineItem.id)")
actionsSubject.send(.showDebugInfo(debugInfo))
case .retryDecryption(let sessionID):
Task { await timelineController.retryDecryption(for: sessionID) }
case .report:
actionsSubject.send(.displayReportContent(itemID: itemID, senderID: eventTimelineItem.sender.id))
case .react:
@@ -67,7 +67,6 @@ enum TimelineItemMenuAction: Identifiable, Hashable {
case reply(isThread: Bool)
case forward(itemID: TimelineItemIdentifier)
case viewSource
case retryDecryption(sessionID: String)
case report
case react
case toggleReaction(key: String)
@@ -164,8 +163,6 @@ enum TimelineItemMenuAction: Identifiable, Hashable {
Label(L10n.actionRemoveMessage, icon: \.delete)
case .viewSource:
Label(L10n.actionViewSource, icon: \.code)
case .retryDecryption:
Label(L10n.actionRetryDecryption, systemImage: "arrow.down.message")
case .report:
Label(L10n.actionReportContent, icon: \.chatProblem)
case .react:
@@ -136,14 +136,7 @@ struct TimelineItemMenuActionProvider {
if isViewSourceEnabled {
actions.append(.viewSource)
}
switch encryptedItem.encryptionType {
case .megolmV1AesSha2(let sessionID, _):
secondaryActions.append(.retryDecryption(sessionID: sessionID))
default:
break
}
return .init(isReactable: false,
actions: actions,
secondaryActions: secondaryActions,