diff --git a/Modules/Sensors/main.swift b/Modules/Sensors/main.swift index e5827988..dd7f8edc 100644 --- a/Modules/Sensors/main.swift +++ b/Modules/Sensors/main.swift @@ -40,9 +40,6 @@ public class Sensors: Module { self.sensorsReader.setInterval(value) } self.settingsView.HIDcallback = { [unowned self] in - self.sensorsReader.HIDCallback() - self.popupView.setup(self.sensorsReader.list) - self.settingsView.setList(list: self.sensorsReader.list) DispatchQueue.global(qos: .background).async { self.sensorsReader.HIDCallback() DispatchQueue.main.async { @@ -52,9 +49,6 @@ public class Sensors: Module { } } self.settingsView.unknownCallback = { [unowned self] in - self.sensorsReader.unknownCallback() - self.popupView.setup(self.sensorsReader.list) - self.settingsView.setList(list: self.sensorsReader.list) DispatchQueue.global(qos: .background).async { self.sensorsReader.unknownCallback() DispatchQueue.main.async { diff --git a/Modules/Sensors/popup.swift b/Modules/Sensors/popup.swift index 5ce4aa36..bac529c2 100644 --- a/Modules/Sensors/popup.swift +++ b/Modules/Sensors/popup.swift @@ -17,6 +17,10 @@ internal class Popup: NSStackView, Popup_p { public var sizeCallback: ((NSSize) -> Void)? = nil + private var unknownSensorsState: Bool { + return Store.shared.bool(key: "Sensors_unknown", defaultValue: false) + } + public init() { super.init(frame: NSRect( x: 0, y: 0, width: Constants.Popup.width, height: 0)) @@ -30,9 +34,12 @@ internal class Popup: NSStackView, Popup_p { internal func setup(_ values: [Sensor_p]?) { guard let fans = values?.filter({ $0.type == .fan }), - let sensors = values?.filter({ $0.type != .fan }) else { + var sensors = values?.filter({ $0.type != .fan }) else { return } + if !self.unknownSensorsState { + sensors = sensors.filter({ $0.group != .unknown }) + } self.subviews.forEach { (v: NSView) in v.removeFromSuperview() diff --git a/Modules/Sensors/readers.swift b/Modules/Sensors/readers.swift index 273193f4..2fc9644d 100644 --- a/Modules/Sensors/readers.swift +++ b/Modules/Sensors/readers.swift @@ -34,11 +34,10 @@ internal class SensorsReader: Reader<[Sensor_p]> { private var HIDState: Bool { return Store.shared.bool(key: "Sensors_hid", defaultValue: false) } - private var unknownSensorsState: Bool { - return Store.shared.bool(key: "Sensors_unknown", defaultValue: false) - } + private var unknownSensorsState: Bool init() { + self.unknownSensorsState = Store.shared.bool(key: "Sensors_unknown", defaultValue: false) super.init() self.list = self.sensors() } @@ -84,19 +83,17 @@ internal class SensorsReader: Reader<[Sensor_p]> { } } } - if self.unknownSensorsState { - available.forEach { (key: String) in - var type: SensorType? = nil - switch key.prefix(1) { - case "T": type = .temperature - case "V": type = .voltage - case "P": type = .power - case "I": type = .current - default: type = nil - } - if let t = type { - list.append(Sensor(key: key, name: key, group: .unknown, type: t, platforms: [])) - } + available.forEach { (key: String) in + var type: SensorType? = nil + switch key.prefix(1) { + case "T": type = .temperature + case "V": type = .voltage + case "P": type = .power + case "I": type = .current + default: type = nil + } + if let t = type { + list.append(Sensor(key: key, name: key, group: .unknown, type: t, platforms: [])) } } @@ -129,12 +126,9 @@ internal class SensorsReader: Reader<[Sensor_p]> { } public override func read() { - let sensorsCounter = self.list.count - for (i, s) in self.list.enumerated() { - guard self.list.count == sensorsCounter else { return } - if s.group == .hid || s.isComputed { - continue - } + for i in self.list.indices { + guard self.list[i].group != .hid && !self.list[i].isComputed else { continue } + if !self.unknownSensorsState && self.list[i].group == .unknown { continue } self.list[i].value = SMC.shared.getValue(self.list[i].key) ?? 0 } @@ -274,7 +268,7 @@ internal class SensorsReader: Reader<[Sensor_p]> { } public func unknownCallback() { - self.list = self.sensors() + self.unknownSensorsState = Store.shared.bool(key: "Sensors_unknown", defaultValue: false) } } diff --git a/Modules/Sensors/settings.swift b/Modules/Sensors/settings.swift index fec24b36..ea3b51b6 100644 --- a/Modules/Sensors/settings.swift +++ b/Modules/Sensors/settings.swift @@ -166,7 +166,7 @@ internal class Settings: NSStackView, Settings_v { } public func setList(list: [Sensor_p]) { - self.list = list + self.list = self.unknownSensorsState ? list : list.filter({ $0.group != .unknown }) self.load(widgets: self.widgets) } diff --git a/Stats/Supporting Files/Info.plist b/Stats/Supporting Files/Info.plist index cb147d88..1223f9bc 100755 --- a/Stats/Supporting Files/Info.plist +++ b/Stats/Supporting Files/Info.plist @@ -17,7 +17,7 @@ CFBundleShortVersionString $(MARKETING_VERSION) CFBundleVersion - 448 + 449 Description Simple macOS system monitor in your menu bar LSApplicationCategoryType