Commit 564a6669 by Demid Merzlyakov

Filter alerts before fetching extended info.

parent 7ff43c41
...@@ -157,12 +157,12 @@ public class NWSAlertsManager { ...@@ -157,12 +157,12 @@ public class NWSAlertsManager {
private func fetchAllExtendedInfo(for alerts: [NWSAlert]) { private func fetchAllExtendedInfo(for alerts: [NWSAlert]) {
internalQueue.addOperation { [weak self] in internalQueue.addOperation { [weak self] in
guard let self = self else { return } guard let self = self else { return }
let localExtendedInfoBeingFetched = self.extendedInfoBeingFetched
var newAlertsToFetch = [NWSAlert]() let alertsToFetch = alerts.filter { (alert: NWSAlert) -> Bool in
alert.extendedInfo == nil && !localExtendedInfoBeingFetched.contains(alert)
}
let parser = NWSAlertInfoParser() let parser = NWSAlertInfoParser()
for alert in alerts.filter({ $0.extendedInfo == nil }) { for alert in alertsToFetch {
if !self.extendedInfoBeingFetched.contains(alert) {
self.extendedInfoBeingFetched.insert(alert) self.extendedInfoBeingFetched.insert(alert)
parser.fetchExtendedInfo(for: alert) { [weak self] (weatherMessage, extendedInfo) in parser.fetchExtendedInfo(for: alert) { [weak self] (weatherMessage, extendedInfo) in
DispatchQueue.main.async { [weak self] in DispatchQueue.main.async { [weak self] in
...@@ -181,7 +181,6 @@ public class NWSAlertsManager { ...@@ -181,7 +181,6 @@ public class NWSAlertsManager {
} }
} }
} }
}
private func merge(alerts newAlerts: [NWSAlert]) { private func merge(alerts newAlerts: [NWSAlert]) {
//TODO: optimize //TODO: optimize
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment