Show Only Retry Decryption and View Source for Unencrypted messages (#1202)

* show only retryDecryption for unencrypted message

* fix
This commit is contained in:
Mauro
2023-06-28 17:57:19 +02:00
committed by GitHub
parent fbb17e9288
commit 10e167732b
4 changed files with 21 additions and 9 deletions
@@ -359,6 +359,14 @@ class RoomScreenViewModel: RoomScreenViewModelType, RoomScreenViewModelProtocol
return nil return nil
} }
var debugActions: [TimelineItemMenuAction] = appSettings.canShowDeveloperOptions ? [.viewSource] : []
if let encryptedItem = timelineItem as? EncryptedRoomTimelineItem,
case let .megolmV1AesSha2(sessionID) = encryptedItem.encryptionType {
debugActions.append(.retryDecryption(sessionID: sessionID))
return .init(actions: [], debugActions: debugActions)
}
var actions: [TimelineItemMenuAction] = [ var actions: [TimelineItemMenuAction] = [
.reply .reply
] ]
@@ -383,13 +391,6 @@ class RoomScreenViewModel: RoomScreenViewModelType, RoomScreenViewModelProtocol
actions.append(.report) actions.append(.report)
} }
var debugActions: [TimelineItemMenuAction] = appSettings.canShowDeveloperOptions ? [.viewSource] : []
if let item = timelineItem as? EncryptedRoomTimelineItem,
case let .megolmV1AesSha2(sessionID) = item.encryptionType {
debugActions.append(.retryDecryption(sessionID: sessionID))
}
if item.hasFailedToSend { if item.hasFailedToSend {
actions = actions.filter(\.canAppearInFailedEcho) actions = actions.filter(\.canAppearInFailedEcho)
} }
@@ -78,6 +78,12 @@ public struct TimelineItemMenu: View {
let item: EventBasedTimelineItemProtocol let item: EventBasedTimelineItemProtocol
let actions: TimelineItemMenuActions let actions: TimelineItemMenuActions
private var canShowReactions: Bool {
!item.isRedacted &&
!item.hasFailedToSend &&
!item.hasFailedDecryption
}
public var body: some View { public var body: some View {
VStack { VStack {
header header
@@ -88,7 +94,7 @@ public struct TimelineItemMenu: View {
ScrollView { ScrollView {
VStack(alignment: .leading, spacing: 0.0) { VStack(alignment: .leading, spacing: 0.0) {
if !item.isRedacted, !item.hasFailedToSend { if canShowReactions {
reactionsSection reactionsSection
.padding(.top, 4.0) .padding(.top, 4.0)
.padding(.bottom, 8.0) .padding(.bottom, 8.0)
@@ -45,4 +45,8 @@ extension EventBasedTimelineItemProtocol {
var isRedacted: Bool { var isRedacted: Bool {
self is RedactedRoomTimelineItem self is RedactedRoomTimelineItem
} }
var hasFailedDecryption: Bool {
self is EncryptedRoomTimelineItem
}
} }
+1
View File
@@ -0,0 +1 @@
Messages that have failed to be decrypted are show only view source and retry decryptions as possible actions.