Allow overriding the push gateway. (#3970)

This commit is contained in:
Doug
2025-04-03 10:42:09 +01:00
committed by GitHub
parent 4e7742572e
commit 24a487ba82
4 changed files with 10 additions and 7 deletions

View File

@@ -92,6 +92,7 @@ final class AppSettings {
// swiftlint:disable:next function_parameter_count
func override(defaultHomeserverAddress: String,
pushGatewayBaseURL: URL,
oidcRedirectURL: URL,
websiteURL: URL,
logoURL: URL,
@@ -103,6 +104,7 @@ final class AppSettings {
analyticsTermsURL: URL?,
mapTilerConfiguration: MapTilerConfiguration) {
self.defaultHomeserverAddress = defaultHomeserverAddress
self.pushGatewayBaseURL = pushGatewayBaseURL
self.oidcRedirectURL = oidcRedirectURL
self.websiteURL = websiteURL
self.logoURL = logoURL
@@ -206,7 +208,7 @@ final class AppSettings {
// MARK: - Notifications
var pusherAppId: String {
var pusherAppID: String {
#if DEBUG
InfoPlistReader.main.baseBundleIdentifier + ".ios.dev"
#else
@@ -214,7 +216,8 @@ final class AppSettings {
#endif
}
let pushGatewayBaseURL: URL = "https://matrix.org/_matrix/push/v1/notify"
private(set) var pushGatewayBaseURL: URL = "https://matrix.org"
var pushGatewayNotifyEndpoint: URL { pushGatewayBaseURL.appending(path: "_matrix/push/v1/notify") }
@UserPreference(key: UserDefaultsKeys.enableNotifications, defaultValue: true, storageType: .userDefaults(store))
var enableNotifications

View File

@@ -145,8 +145,8 @@ final class NotificationManager: NSObject, NotificationManagerProtocol {
pusherNotificationClientIdentifier: clientProxy.pusherNotificationClientIdentifier)
let configuration = try await PusherConfiguration(identifiers: .init(pushkey: deviceToken.base64EncodedString(),
appId: appSettings.pusherAppId),
kind: .http(data: .init(url: appSettings.pushGatewayBaseURL.absoluteString,
appId: appSettings.pusherAppID),
kind: .http(data: .init(url: appSettings.pushGatewayNotifyEndpoint.absoluteString,
format: .eventIdOnly,
defaultPayload: defaultPayload.toJsonString())),
appDisplayName: "\(InfoPlistReader.main.bundleDisplayName) (iOS)",

View File

@@ -73,7 +73,7 @@ final class NotificationManagerTests: XCTestCase {
}
XCTAssertEqual(configuration.identifiers.pushkey, pushkeyData.base64EncodedString())
XCTAssertEqual(configuration.identifiers.appId, appSettings.pusherAppId)
XCTAssertEqual(configuration.identifiers.appId, appSettings.pusherAppID)
XCTAssertEqual(configuration.appDisplayName, "\(InfoPlistReader.main.bundleDisplayName) (iOS)")
XCTAssertEqual(configuration.deviceDisplayName, UIDevice.current.name)
XCTAssertNotNil(configuration.profileTag)
@@ -82,7 +82,7 @@ final class NotificationManagerTests: XCTestCase {
XCTFail("Http kind expected")
return
}
XCTAssertEqual(data.url, appSettings.pushGatewayBaseURL.absoluteString)
XCTAssertEqual(data.url, appSettings.pushGatewayNotifyEndpoint.absoluteString)
XCTAssertEqual(data.format, .eventIdOnly)
let defaultPayload = APNSPayload(aps: APSInfo(mutableContent: 1,
alert: APSAlert(locKey: "Notification",