Skip to content

Commit 0f23ec9

Browse files
Improve defaults db access in notification debugging ui
1 parent 730ea5c commit 0f23ec9

File tree

1 file changed

+17
-18
lines changed

1 file changed

+17
-18
lines changed

Monal/Classes/NotificationDebugging.swift

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,32 @@ import OrderedCollections
1111
class NotificationDebuggingDefaultsDB: ObservableObject {
1212
@defaultsDB("lastAppexStart")
1313
var lastAppexStart: Date?
14+
15+
@defaultsDB("selectedPushServer")
16+
var selectedPushServer: String
1417
}
1518

1619
struct NotificationDebugging: View {
1720
private let applePushEnabled: Bool
1821
private let applePushToken: String
1922
private let xmppAccountInfo: [xmpp]
20-
23+
2124
private let availablePushServers: Dictionary<String, String>
22-
25+
2326
@State private var pushPermissionEnabled = false // state because we get this value through an async call
2427
@State private var showPushToken = false
25-
26-
@State private var selectedPushServer: String
2728

2829
@ObservedObject var notificationDebuggingDefaultsDB = NotificationDebuggingDefaultsDB()
30+
31+
init() {
32+
self.applePushEnabled = MLXMPPManager.sharedInstance().hasAPNSToken;
33+
self.applePushToken = MLXMPPManager.sharedInstance().pushToken;
34+
self.xmppAccountInfo = MLXMPPManager.sharedInstance().connectedXMPP as! [xmpp]
2935

36+
// push server selector
37+
self.availablePushServers = HelperTools.getAvailablePushServers()
38+
}
39+
3040
var body: some View {
3141
Form {
3242
Group {
@@ -83,14 +93,13 @@ struct NotificationDebugging: View {
8393
}
8494
}
8595
Section(header: Text("Pushserver Region").font(.title3)) {
86-
Picker(selection: $selectedPushServer, label: Text("Push Server")) {
96+
Picker(selection: $notificationDebuggingDefaultsDB.selectedPushServer, label: Text("Push Server")) {
8797
ForEach(self.availablePushServers.sorted(by: >), id: \.key) { pushServerFqdn, pushServerName in
8898
Text(pushServerName).tag(pushServerFqdn)
8999
}
90100
}.pickerStyle(.menu)//.menuStyle(.borderlessButton)
91-
.onChange(of: selectedPushServer) { pushServerFqdn in
92-
DDLogDebug("Selected \(pushServerFqdn) as push server")
93-
HelperTools.defaultsDB().setValue(pushServerFqdn, forKey: "selectedPushServer")
101+
.onChange(of: notificationDebuggingDefaultsDB.selectedPushServer) { pushServerFqdn in
102+
DDLogDebug("Selected \(pushServerFqdn) as push server...")
94103
// enable push again to switch to the selected server
95104
for account in self.xmppAccountInfo {
96105
account.enablePush()
@@ -113,16 +122,6 @@ struct NotificationDebugging: View {
113122
}
114123
});
115124
}
116-
117-
init() {
118-
self.applePushEnabled = MLXMPPManager.sharedInstance().hasAPNSToken;
119-
self.applePushToken = MLXMPPManager.sharedInstance().pushToken;
120-
self.xmppAccountInfo = MLXMPPManager.sharedInstance().connectedXMPP as! [xmpp]
121-
122-
// push server selector
123-
self.availablePushServers = HelperTools.getAvailablePushServers()
124-
self.selectedPushServer = HelperTools.defaultsDB().object(forKey: "selectedPushServer") as! String
125-
}
126125
}
127126

128127
struct PushSettings_Previews: PreviewProvider {

0 commit comments

Comments
 (0)