Ivan Valkou пре 4 година
родитељ
комит
cc0169406f

+ 3 - 0
FreeAPSWatch WatchKit Extension/Views/MainView.swift

@@ -26,6 +26,9 @@ struct MainView: View {
         }
         }
         .frame(maxHeight: .infinity)
         .frame(maxHeight: .infinity)
         .padding()
         .padding()
+        .onReceive(state.timer) { _ in
+            state.requestState()
+        }
         .onAppear {
         .onAppear {
             state.requestState()
             state.requestState()
         }
         }

+ 5 - 0
FreeAPSWatch WatchKit Extension/Views/WatchStateModel.swift

@@ -28,6 +28,7 @@ class WatchStateModel: NSObject, ObservableObject {
     @Published var confirmationSuccess: Bool?
     @Published var confirmationSuccess: Bool?
 
 
     private var lifetime = Set<AnyCancellable>()
     private var lifetime = Set<AnyCancellable>()
+    let timer = Timer.publish(every: 10, on: .main, in: .common).autoconnect()
 
 
     init(session: WCSession = .default) {
     init(session: WCSession = .default) {
         self.session = session
         self.session = session
@@ -81,6 +82,10 @@ class WatchStateModel: NSObject, ObservableObject {
     }
     }
 
 
     func requestState() {
     func requestState() {
+        guard session.activationState == .activated else {
+            session.activate()
+            return
+        }
         session.sendMessage(["stateRequest": true], replyHandler: nil) { error in
         session.sendMessage(["stateRequest": true], replyHandler: nil) { error in
             print("WatchStateModel error: " + error.localizedDescription)
             print("WatchStateModel error: " + error.localizedDescription)
         }
         }