diff --git a/Riot/Modules/Application/LegacyAppDelegate.m b/Riot/Modules/Application/LegacyAppDelegate.m index 3a617e915..b0119dfa0 100644 --- a/Riot/Modules/Application/LegacyAppDelegate.m +++ b/Riot/Modules/Application/LegacyAppDelegate.m @@ -1908,6 +1908,9 @@ NSString *const AppDelegateUniversalLinkDidChangeNotification = @"AppDelegateUni AppConfigService.shared.session = mxSession; [BWIAnalytics.sharedTracker setSessionWithSession:mxSession]; + // bwi: #5158 update permalink prefix when session is running + [MXSDKOptions sharedInstance].clientPermalinkBaseUrl = AppConfigService.shared.permalinkUrl; + [MXSDKOptions sharedInstance].analyticsDelegate = BWIAnalytics.sharedTracker; [DecryptionFailureTracker sharedInstance].delegate = BWIAnalytics.sharedTracker; } diff --git a/Riot/Modules/MatrixKit/Utils/MXKTools.m b/Riot/Modules/MatrixKit/Utils/MXKTools.m index a93c09f93..73b7a97a5 100644 --- a/Riot/Modules/MatrixKit/Utils/MXKTools.m +++ b/Riot/Modules/MatrixKit/Utils/MXKTools.m @@ -69,7 +69,7 @@ static NSRegularExpression* permalinkRegex; htmlTagsRegex = [NSRegularExpression regularExpressionWithPattern:@"<(\\w+)[^>]*>" options:NSRegularExpressionCaseInsensitive error:nil]; linkDetector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink error:nil]; - NSString *permalinkPattern = [NSString stringWithFormat:@"%@%@", BWIBuildSettings.shared.clientPermalinkBaseUrl ?: kMXMatrixDotToUrl, kMXKToolsRegexStringForPermalink]; + NSString *permalinkPattern = [NSString stringWithFormat:@"%@%@", AppConfigService.shared.permalinkUrl ?: kMXMatrixDotToUrl, kMXKToolsRegexStringForPermalink]; permalinkRegex = [NSRegularExpression regularExpressionWithPattern:permalinkPattern options:NSRegularExpressionCaseInsensitive error:nil]; }); } diff --git a/Riot/Modules/Pills/PillType.swift b/Riot/Modules/Pills/PillType.swift index 68659bcd9..4ab204c88 100644 --- a/Riot/Modules/Pills/PillType.swift +++ b/Riot/Modules/Pills/PillType.swift @@ -26,7 +26,7 @@ enum PillType: Codable { @available (iOS 15.0, *) extension PillType { private static var regexPermalinkTarget: NSRegularExpression? = { - let clientBaseUrl = BWIBuildSettings.shared.clientPermalinkBaseUrl + let clientBaseUrl = AppConfigService.shared.permalinkUrl() ?? BWIBuildSettings.shared.clientPermalinkBaseUrl let pattern = #"\#(clientBaseUrl)(?:/.*)/#/(?:(?:room|user)/)?((?:@|!|#)[^@!#/?\s]*)/?((?:\$)[^\$/?\s]*)?"# return try? NSRegularExpression(pattern: pattern, options: .caseInsensitive) }() diff --git a/bwi/AppConfig/AppConfigService.swift b/bwi/AppConfig/AppConfigService.swift index 175aee42a..05acbfd10 100644 --- a/bwi/AppConfig/AppConfigService.swift +++ b/bwi/AppConfig/AppConfigService.swift @@ -188,6 +188,7 @@ extension UserDefaults } func permalinkUrl() -> String? { + ServerURLHelper.shared.selectedIndex = ServerURLHelper.shared.indexOf(self.serverUrl()) if let url = appConfig.permalinkUrl { return "https://" + url } else if let url = ServerURLHelper.shared.httpsPermalink() { diff --git a/bwi/QRCode/PermalinkQRCodeScanner.swift b/bwi/QRCode/PermalinkQRCodeScanner.swift index ef99bf4f9..c19b0a8bc 100644 --- a/bwi/QRCode/PermalinkQRCodeScanner.swift +++ b/bwi/QRCode/PermalinkQRCodeScanner.swift @@ -68,7 +68,8 @@ struct PermalinkQRCodeScanner: View { } private func checkQRCode() { - if !BWIBuildSettings.shared.clientPermalinkBaseUrl.isEmpty && qrCode.hasPrefix(BWIBuildSettings.shared.clientPermalinkBaseUrl) { + let permalinkURL = AppConfigService.shared.permalinkUrl() ?? BWIBuildSettings.shared.clientPermalinkBaseUrl + if !permalinkURL.isEmpty && qrCode.hasPrefix(permalinkURL) { presentationMode.wrappedValue.dismiss() DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { if let url = NSURLComponents(string: qrCode)?.url {