init commit,
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
//
|
||||
// WatchSessionManager.swift
|
||||
// watchapp Watch App
|
||||
//
|
||||
// Created by Alexander Harding on 8/2/23.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import WatchConnectivity
|
||||
|
||||
class WatchSessionManager: NSObject, ObservableObject {
|
||||
static let shared = WatchSessionManager()
|
||||
|
||||
@Published var connectedInstance = "lemmy.world" // Variable to hold connected server hostname (optional)
|
||||
@Published var authToken: String? // Variable to hold the auth token (optional)
|
||||
|
||||
var loggedIn: Bool {
|
||||
get {
|
||||
return authToken != nil && authToken != ""
|
||||
}
|
||||
}
|
||||
|
||||
private override init() {
|
||||
super.init()
|
||||
activateSession()
|
||||
}
|
||||
|
||||
private func activateSession() {
|
||||
if WCSession.isSupported() {
|
||||
let session = WCSession.default
|
||||
session.delegate = self
|
||||
session.activate()
|
||||
|
||||
DispatchQueue.main.async() {
|
||||
self.checkForUpdatesToApplicationContext()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check for updates to the application context
|
||||
private func checkForUpdatesToApplicationContext() {
|
||||
let applicationContext = WCSession.default.receivedApplicationContext
|
||||
|
||||
// Process the received application context data here
|
||||
if let connectedInstance = applicationContext["connectedInstance"] as? String {
|
||||
self.connectedInstance = connectedInstance
|
||||
|
||||
if let authToken = applicationContext["authToken"] as? String {
|
||||
self.authToken = authToken
|
||||
} else {
|
||||
self.authToken = nil
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension WatchSessionManager: WCSessionDelegate {
|
||||
func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {
|
||||
// Handle session activation completion if needed
|
||||
}
|
||||
|
||||
func session(_ session: WCSession, didReceiveApplicationContext applicationContext: [String: Any]) {
|
||||
DispatchQueue.main.async {
|
||||
// Access the connectedInstance and authToken from the received application context
|
||||
if let connectedInstance = applicationContext["connectedInstance"] {
|
||||
self.connectedInstance = connectedInstance as! String
|
||||
|
||||
self.authToken = applicationContext["authToken"] as? String
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user