diff --git a/Modules/Net/main.swift b/Modules/Net/main.swift index 0167e7e9..3b9e4c3d 100644 --- a/Modules/Net/main.swift +++ b/Modules/Net/main.swift @@ -302,8 +302,8 @@ public class Network: Module { } if #available(macOS 11.0, *) { -// guard let blobData = try? JSONEncoder().encode(raw) else { return } -// self.userDefaults?.set(blobData, forKey: "Network@UsageReader") + guard let blobData = try? JSONEncoder().encode(raw) else { return } + self.userDefaults?.set(blobData, forKey: "Network@UsageReader") WidgetCenter.shared.reloadTimelines(ofKind: Network_entry.kind) } } @@ -346,11 +346,12 @@ public class Network: Module { private func setUsageReset() { self.usageReseter.invalidate() - switch AppUpdateInterval(rawValue: Store.shared.string(key: "\(self.config.name)_usageReset", defaultValue: AppUpdateInterval.atStart.rawValue)) { + switch AppUpdateInterval(rawValue: Store.shared.string(key: "\(self.config.name)_usageReset", defaultValue: AppUpdateInterval.never.rawValue)) { case .oncePerDay: self.usageReseter.interval = 60 * 60 * 24 case .oncePerWeek: self.usageReseter.interval = 60 * 60 * 24 * 7 case .oncePerMonth: self.usageReseter.interval = 60 * 60 * 24 * 30 - case .never, .atStart: return + case .atStart: NotificationCenter.default.post(name: .resetTotalNetworkUsage, object: nil, userInfo: nil) + case .never: return default: return } diff --git a/Modules/Net/readers.swift b/Modules/Net/readers.swift index d2bfc555..494a3878 100644 --- a/Modules/Net/readers.swift +++ b/Modules/Net/readers.swift @@ -689,9 +689,11 @@ internal class ConnectivityReader: Reader { override func setup() { self.interval = 1 - self.addr = self.resolve() - self.openConn() - self.read() + DispatchQueue.global(qos: .background).async { + self.addr = self.resolve() + self.openConn() + self.read() + } } deinit { diff --git a/Modules/Net/settings.swift b/Modules/Net/settings.swift index 02411798..80a9320d 100644 --- a/Modules/Net/settings.swift +++ b/Modules/Net/settings.swift @@ -54,7 +54,7 @@ You can use a combination of any of the variables. There is only one limitation: internal class Settings: NSStackView, Settings_v, NSTextFieldDelegate { private var numberOfProcesses: Int = 8 private var readerType: String = "interface" - private var usageReset: String = AppUpdateInterval.atStart.rawValue + private var usageReset: String = AppUpdateInterval.never.rawValue private var VPNModeState: Bool = false private var widgetActivationThresholdState: Bool = false private var widgetActivationThreshold: Int = 0 @@ -166,7 +166,7 @@ internal class Settings: NSStackView, Settings_v, NSTextFieldDelegate { )), PreferencesRow(localizedString("Reset data usage"), component: selectView( action: #selector(self.toggleUsageReset), - items: AppUpdateIntervals.dropLast(2).filter({ $0.key != "Silent" }), + items: AppUpdateIntervals.filter({ $0.key != "Silent" }), selected: self.usageReset )), PreferencesRow(localizedString("Auto-refresh public IP address"), component: selectView(