@@ -11,19 +11,13 @@ import Combine |
||
| 11 | 11 |
import CoreBluetooth |
| 12 | 12 |
|
| 13 | 13 |
final class AppData : ObservableObject {
|
| 14 |
- |
|
| 15 |
- |
|
| 16 |
- let objectWillChange = ObservableObjectPublisher() |
|
| 17 |
- private var userDefaultsNotification: AnyCancellable? |
|
| 18 | 14 |
private var icloudGefaultsNotification: AnyCancellable? |
| 19 | 15 |
private var bluetoothManagerNotification: AnyCancellable? |
| 16 |
+ |
|
| 20 | 17 |
init() {
|
| 21 |
- userDefaultsNotification = NotificationCenter.default.publisher(for: UserDefaults.didChangeNotification).sink { _ in
|
|
| 22 |
- self.objectWillChange.send() |
|
| 23 |
- } |
|
| 24 | 18 |
icloudGefaultsNotification = NotificationCenter.default.publisher(for: NSUbiquitousKeyValueStore.didChangeExternallyNotification).sink(receiveValue: test) |
| 25 | 19 |
bluetoothManagerNotification = bluetoothManager.objectWillChange.sink { [weak self] _ in
|
| 26 |
- self?.objectWillChange.send() |
|
| 20 |
+ self?.scheduleObjectWillChange() |
|
| 27 | 21 |
} |
| 28 | 22 |
//NotificationCenter.default.publisher(for: NSUbiquitousKeyValueStore.didChangeExternallyNotification).sink(receiveValue: { notification in
|
| 29 | 23 |
|
@@ -33,11 +27,7 @@ final class AppData : ObservableObject {
|
||
| 33 | 27 |
|
| 34 | 28 |
@Published var enableRecordFeature: Bool = true |
| 35 | 29 |
|
| 36 |
- @Published var meters: [UUID:Meter] = [UUID:Meter]() {
|
|
| 37 |
- willSet {
|
|
| 38 |
- self.objectWillChange.send() |
|
| 39 |
- } |
|
| 40 |
- } |
|
| 30 |
+ @Published var meters: [UUID:Meter] = [UUID:Meter]() |
|
| 41 | 31 |
|
| 42 | 32 |
@ICloudDefault(key: "MeterNames", defaultValue: [:]) var meterNames: [String:String] |
| 43 | 33 |
@ICloudDefault(key: "TC66TemperatureUnits", defaultValue: [:]) var tc66TemperatureUnits: [String:String] |
@@ -68,8 +58,14 @@ final class AppData : ObservableObject {
|
||
| 68 | 58 |
} |
| 69 | 59 |
} |
| 70 | 60 |
if somethingChanged {
|
| 71 |
- self.objectWillChange.send() |
|
| 61 |
+ scheduleObjectWillChange() |
|
| 72 | 62 |
} |
| 73 | 63 |
} |
| 74 | 64 |
} |
| 65 |
+ |
|
| 66 |
+ private func scheduleObjectWillChange() {
|
|
| 67 |
+ DispatchQueue.main.async { [weak self] in
|
|
| 68 |
+ self?.objectWillChange.send() |
|
| 69 |
+ } |
|
| 70 |
+ } |
|
| 75 | 71 |
} |