Navigate to the Pinned events timeline (#3139)

This commit is contained in:
Mauro
2024-08-08 18:29:39 +02:00
committed by GitHub
parent 0ad8f3cae8
commit ed7d3b0b13
65 changed files with 655 additions and 156 deletions
@@ -72,7 +72,8 @@ class AppCoordinator: AppCoordinatorProtocol, AuthenticationFlowCoordinatorDeleg
appHooks.configure()
windowManager = WindowManager(appDelegate: appDelegate)
appMediator = AppMediator(windowManager: windowManager)
let networkMonitor = NetworkMonitor()
appMediator = AppMediator(windowManager: windowManager, networkMonitor: networkMonitor)
let appSettings = appHooks.appSettingsHook.configure(AppSettings())
@@ -102,7 +103,7 @@ class AppCoordinator: AppCoordinatorProtocol, AuthenticationFlowCoordinatorDeleg
let keychainController = KeychainController(service: .sessions,
accessGroup: InfoPlistReader.main.keychainAccessGroupIdentifier)
userSessionStore = UserSessionStore(keychainController: keychainController, appSettings: appSettings, appHooks: appHooks)
userSessionStore = UserSessionStore(keychainController: keychainController, appSettings: appSettings, appHooks: appHooks, networkMonitor: networkMonitor)
let appLockService = AppLockService(keychainController: keychainController, appSettings: appSettings)
let appLockNavigationCoordinator = NavigationRootCoordinator()
@@ -342,7 +343,6 @@ class AppCoordinator: AppCoordinatorProtocol, AuthenticationFlowCoordinatorDeleg
private static func setupServiceLocator(appSettings: AppSettings, appHooks: AppHooks) {
ServiceLocator.shared.register(userIndicatorController: UserIndicatorController())
ServiceLocator.shared.register(appSettings: appSettings)
ServiceLocator.shared.register(networkMonitor: NetworkMonitor())
ServiceLocator.shared.register(bugReportService: BugReportService(withBaseURL: appSettings.bugReportServiceBaseURL,
applicationId: appSettings.bugReportApplicationId,
sdkGitSHA: sdkGitSha(),
@@ -682,7 +682,7 @@ class AppCoordinator: AppCoordinatorProtocol, AuthenticationFlowCoordinatorDeleg
private func observeNetworkState() {
let reachabilityNotificationIdentifier = "io.element.elementx.reachability.notification"
ServiceLocator.shared.networkMonitor
appMediator.networkMonitor
.reachabilityPublisher
.sink { reachability in
MXLog.info("Reachability changed to \(reachability)")
@@ -851,12 +851,12 @@ class AppCoordinator: AppCoordinatorProtocol, AuthenticationFlowCoordinatorDeleg
.loadingStatePublisher
.removeDuplicates()
.receive(on: DispatchQueue.main)
.sink { state in
.sink { [weak self] state in
let toastIdentifier = "StaleDataIndicator"
switch state {
case .loading:
if ServiceLocator.shared.networkMonitor.reachabilityPublisher.value == .reachable {
if self?.appMediator.networkMonitor.reachabilityPublisher.value == .reachable {
ServiceLocator.shared.userIndicatorController.submitIndicator(.init(id: toastIdentifier, type: .toast(progress: .indeterminate), title: L10n.commonSyncing, persistent: true))
}
case .notLoading:
@@ -19,9 +19,11 @@ import UIKit
class AppMediator: AppMediatorProtocol {
let windowManager: WindowManagerProtocol
let networkMonitor: NetworkMonitorProtocol
init(windowManager: WindowManagerProtocol) {
init(windowManager: WindowManagerProtocol, networkMonitor: NetworkMonitorProtocol) {
self.windowManager = windowManager
self.networkMonitor = networkMonitor
}
// UIApplication.State won't update if we store this e.g. in the constructor
@@ -21,6 +21,7 @@ import UIKit
@MainActor
protocol AppMediatorProtocol {
var windowManager: WindowManagerProtocol { get }
var networkMonitor: NetworkMonitorProtocol { get }
var appState: UIApplication.State { get }
@@ -33,12 +33,6 @@ class ServiceLocator {
settings = appSettings
}
private(set) var networkMonitor: NetworkMonitorProtocol!
func register(networkMonitor: NetworkMonitorProtocol) {
self.networkMonitor = networkMonitor
}
private(set) var analytics: AnalyticsService!
func register(analytics: AnalyticsService) {