From 12a982724f5b1720cc76c209b9b4a013e08e1ab3 Mon Sep 17 00:00:00 2001 From: Frank Rotermund Date: Wed, 16 Nov 2022 10:28:50 +0000 Subject: [PATCH] Feature/3637 pusher url --- Config/BWIBuildSettings.swift | 2 +- Riot/Modules/Application/LegacyAppDelegate.m | 11 ++++++ bwi/AppConfig/AppConfigService.swift | 2 - bwi/PusherURL/PusherURLHelper.swift | 41 ++++++++++++++++++++ bwi/ServerURLs/ServerURLHelper.swift | 4 +- 5 files changed, 55 insertions(+), 5 deletions(-) create mode 100644 bwi/PusherURL/PusherURLHelper.swift diff --git a/Config/BWIBuildSettings.swift b/Config/BWIBuildSettings.swift index 608644e4e..6277379ce 100644 --- a/Config/BWIBuildSettings.swift +++ b/Config/BWIBuildSettings.swift @@ -200,7 +200,7 @@ class BWIBuildSettings: NSObject { var serverConfigDefaultHomeserverUrlString = "" var serverConfigDefaultIdentityServerUrlString = "" var serverConfigPreSelections = ["":""] - var serverConfigSygnalAPIUrlString = "" + var serverConfigSygnalAPIUrlString = "https://push-local/_matrix/push/v1/notify" // Note: Set empty strings to hide the related entry in application settings var applicationCopyrightUrlString = "https://messenger.bwi.de/copyright" diff --git a/Riot/Modules/Application/LegacyAppDelegate.m b/Riot/Modules/Application/LegacyAppDelegate.m index f2a2d9322..b5b054dfd 100644 --- a/Riot/Modules/Application/LegacyAppDelegate.m +++ b/Riot/Modules/Application/LegacyAppDelegate.m @@ -1863,6 +1863,17 @@ NSString *const AppDelegateUniversalLinkDidChangeNotification = @"AppDelegateUni } [self handleAppState]; + + // bwi: check if pusher url has changed and push needs to be enabled again + PusherURLHelper* pusherHelper = [[PusherURLHelper alloc] init]; + if ([pusherHelper isChangedPusherURL]) { + [pusherHelper savePusherURL]; + MXKAccount* account = [MXKAccountManager sharedManager].activeAccounts.firstObject; + if ( account ) { + [self.pushNotificationService registerUserNotificationSettings]; + } + } + }]; // Register an observer in order to handle new account diff --git a/bwi/AppConfig/AppConfigService.swift b/bwi/AppConfig/AppConfigService.swift index b2fbaf4c5..a45e8caba 100644 --- a/bwi/AppConfig/AppConfigService.swift +++ b/bwi/AppConfig/AppConfigService.swift @@ -148,8 +148,6 @@ extension UserDefaults func pusherUrl() -> String { if let url = appConfig.pusherUrl { return url - } else if let url = ServerURLHelper.shared.pusherUrl() { - return url } else { return BWIBuildSettings.shared.serverConfigSygnalAPIUrlString } diff --git a/bwi/PusherURL/PusherURLHelper.swift b/bwi/PusherURL/PusherURLHelper.swift new file mode 100644 index 000000000..f362d6245 --- /dev/null +++ b/bwi/PusherURL/PusherURLHelper.swift @@ -0,0 +1,41 @@ +// +/* + * Copyright (c) 2022 BWI GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Foundation + +@objcMembers class PusherURLHelper : NSObject { + + // returns true if there is no pusherURL saved or when it has changed + func isChangedPusherURL() -> Bool { + let currentPushURL = AppConfigService.shared.pusherUrl() + + guard let oldPusherURL = UserDefaults.standard.string(forKey: "BWIPusherURL") else { + return true + } + + return oldPusherURL != currentPushURL + } + + func savePusherURL() { + let currentPushURL = AppConfigService.shared.pusherUrl() + + UserDefaults.standard.set(currentPushURL, forKey: "BWIPusherURL") + UserDefaults.standard + .synchronize() + } + +} diff --git a/bwi/ServerURLs/ServerURLHelper.swift b/bwi/ServerURLs/ServerURLHelper.swift index 9caaddbd9..81f7b34a8 100644 --- a/bwi/ServerURLs/ServerURLHelper.swift +++ b/bwi/ServerURLs/ServerURLHelper.swift @@ -49,12 +49,11 @@ import Foundation for urlSet in urls { if let dict = urlSet as? Dictionary { if let server = dict[serverUrlKey], - let pusher = dict[pusherUrlKey], let flavor = dict[flavorUrlKey], let name = dict[nameKey], let permalink = dict[permalinkKey] , let analytics = dict[analyticsKey] { - serverSettings.append(ServerSetting(name:name, serverUrl: server, pusherUrl: pusher, flavor: flavor, permalink:permalink, analytics: analytics)) + serverSettings.append(ServerSetting(name:name, serverUrl: server, pusherUrl: "", flavor: flavor, permalink:permalink, analytics: analytics)) } } } @@ -89,6 +88,7 @@ import Foundation } } + func pusherUrl() -> String? { if serverSettings.indices.contains(selectedIndex) { return serverSettings[selectedIndex].pusherUrl