diff --git a/ElementX/Sources/Other/Extensions/ClientBuilder.swift b/ElementX/Sources/Other/Extensions/ClientBuilder.swift index 9771d746a9..dc41c6a8c5 100644 --- a/ElementX/Sources/Other/Extensions/ClientBuilder.swift +++ b/ElementX/Sources/Other/Extensions/ClientBuilder.swift @@ -43,16 +43,19 @@ extension ClientBuilder { .backupDownloadStrategy(backupDownloadStrategy: .afterDecryptionFailure) .enableShareHistoryOnInvite(enableShareHistoryOnInvite: enableKeyShareOnInvite) .autoEnableBackups(autoEnableBackups: true) - - if enableOnlySignedDeviceIsolationMode { - builder = builder - .roomKeyRecipientStrategy(strategy: .identityBasedStrategy) - .decryptionSettings(decryptionSettings: .init(senderDeviceTrustRequirement: .crossSignedOrLegacy)) - } else { - builder = builder - .roomKeyRecipientStrategy(strategy: .errorOnVerifiedUserProblem) - .decryptionSettings(decryptionSettings: .init(senderDeviceTrustRequirement: .untrusted)) - } + } + + // Set recipient strategy and trust requirement even if `setupEncryption` is false to ensure messages + // from insecure devices aren't displayed in push notifications. + // See https://github.com/element-hq/element-x-ios/issues/4702. + if enableOnlySignedDeviceIsolationMode { + builder = builder + .roomKeyRecipientStrategy(strategy: .identityBasedStrategy) + .decryptionSettings(decryptionSettings: .init(senderDeviceTrustRequirement: .crossSignedOrLegacy)) + } else { + builder = builder + .roomKeyRecipientStrategy(strategy: .errorOnVerifiedUserProblem) + .decryptionSettings(decryptionSettings: .init(senderDeviceTrustRequirement: .untrusted)) } if let httpProxy {