diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 7cd77d1..34a5920 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -288,7 +288,7 @@ attributes = { BuildIndependentTargetsInParallel = YES; LastSwiftUpdateCheck = 1140; - LastUpgradeCheck = 1510; + LastUpgradeCheck = 1620; ORGANIZATIONNAME = "The Chromium Authors"; TargetAttributes = { 43AA89532444DA6500EDC39C = { diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 2669c41..b1a5a51 100644 --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ FlutterError { } func listSites(result: @escaping FlutterResult) { - self.sites?.loadSites { (sites, err) -> () in - if (err != nil) { - return result(CallFailedError(message: "Failed to load site list", details: err!.localizedDescription)) - } + Task { + self.sites?.loadSites { (sites, err) -> () in + if (err != nil) { + return result(CallFailedError(message: "Failed to load site list", details: err!.localizedDescription)) + } - let encoder = JSONEncoder() - let data = try! encoder.encode(sites) - let ret = String(data: data, encoding: .utf8) - result(ret) + let encoder = JSONEncoder() + let data = try! encoder.encode(sites) + let ret = String(data: data, encoding: .utf8) + result(ret) + } } + } func deleteSite(call: FlutterMethodCall, result: @escaping FlutterResult) { diff --git a/ios/Runner/Sites.swift b/ios/Runner/Sites.swift index 2355772..8808164 100644 --- a/ios/Runner/Sites.swift +++ b/ios/Runner/Sites.swift @@ -19,10 +19,11 @@ class Sites { self.messenger = messenger } - func loadSites(completion: @escaping ([String: Site]?, (any Error)?) -> ()) { + func loadSites() async -> Result<[String: Site], (any Error)> { + var result: Result<[String: Site], (any Error)>?; _ = SiteList { (sites, err) in if (err != nil) { - return completion(nil, err) + result = Result.failure(err!) } sites?.values.forEach{ site in @@ -38,8 +39,10 @@ class Sites { let justSites = self.containers.mapValues { return $0.site } - completion(justSites, nil) + result = Result.success(justSites) } + + return result!; } func deleteSite(id: String, callback: @escaping ((any Error)?) -> ()) {