From 87dad591ab1b36f11a9a9933aa10a2f396221a3c Mon Sep 17 00:00:00 2001 From: Yannik Bloscheck Date: Tue, 8 Jul 2025 13:36:54 +0200 Subject: [PATCH] [ios] Fixing reappearing login promts Signed-off-by: Yannik Bloscheck --- iphone/Maps/Model/Profile.swift | 44 ++++++++++++++++----------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/iphone/Maps/Model/Profile.swift b/iphone/Maps/Model/Profile.swift index b896dfc31..1e07d6726 100644 --- a/iphone/Maps/Model/Profile.swift +++ b/iphone/Maps/Model/Profile.swift @@ -138,37 +138,37 @@ import OSMEditor /// Reload the OpenStreetMap profile static func reload() async { - // Could be done in nicer way, but that would require iOS 17+ - await withCheckedContinuation { continuation in - let networkPathMonitor: NWPathMonitor = NWPathMonitor() - networkPathMonitor.pathUpdateHandler = { path in - Task { - if path.status != .unsatisfied { - let userDefaults = UserDefaults.standard - if let userPreferences = await reloadUserPreferences() { - userDefaults.set(String(describing: userPreferences.m_displayName), forKey: userDefaultsKeyName) - userDefaults.set(Int(userPreferences.m_changesets), forKey: userDefaultsKeyNumberOfEdits) - } else if path.status == .satisfied { - userDefaults.set(true, forKey: userDefaultsNeedsReauthorization) + if isExisting { + // Could be done in nicer way, but that would require iOS 17+ + await withCheckedContinuation { continuation in + let networkPathMonitor: NWPathMonitor = NWPathMonitor() + networkPathMonitor.pathUpdateHandler = { path in + Task { + if path.status != .unsatisfied { + let userDefaults = UserDefaults.standard + if let userPreferences = await reloadUserPreferences() { + userDefaults.set(String(describing: userPreferences.m_displayName), forKey: userDefaultsKeyName) + userDefaults.set(Int(userPreferences.m_changesets), forKey: userDefaultsKeyNumberOfEdits) + } else if path.status == .satisfied { + userDefaults.set(true, forKey: userDefaultsNeedsReauthorization) + } } + networkPathMonitor.cancel() + continuation.resume() } - networkPathMonitor.cancel() - continuation.resume() } + networkPathMonitor.start(queue: .main) } - networkPathMonitor.start(queue: .main) } } /// Logout of the OpenStreetMap profile static func logout() { - if isExisting { - let userDefaults = UserDefaults.standard - userDefaults.removeObject(forKey: userDefaultsKeyAuthorizationToken) - userDefaults.removeObject(forKey: userDefaultsKeyName) - userDefaults.removeObject(forKey: userDefaultsKeyNumberOfEdits) - userDefaults.removeObject(forKey: userDefaultsNeedsReauthorization) - } + let userDefaults = UserDefaults.standard + userDefaults.removeObject(forKey: userDefaultsKeyAuthorizationToken) + userDefaults.removeObject(forKey: userDefaultsKeyName) + userDefaults.removeObject(forKey: userDefaultsKeyNumberOfEdits) + userDefaults.removeObject(forKey: userDefaultsNeedsReauthorization) } }