66 lines
2.0 KiB
Swift
66 lines
2.0 KiB
Swift
import Foundation
|
|
import React
|
|
|
|
/// Thin React Native facade over the central WCSession owner. The PPG and
|
|
/// Core Haptics objects remain Nitro modules; connectivity is intentionally a
|
|
/// process-wide service and therefore must not be instantiated per HybridObject.
|
|
@objc(HaptikaWatchConnectivity)
|
|
final class HaptikaWatchConnectivityModule: NSObject {
|
|
@objc static func requiresMainQueueSetup() -> Bool { false }
|
|
|
|
@objc func start() {
|
|
HaptikaWatchConnectivityService.shared.activate()
|
|
}
|
|
|
|
@objc func getConnectionState(
|
|
_ resolve: RCTPromiseResolveBlock,
|
|
rejecter reject: RCTPromiseRejectBlock
|
|
) {
|
|
let state = HaptikaWatchConnectivityService.shared.state()
|
|
resolve([
|
|
"supported": state.supported,
|
|
"paired": state.paired,
|
|
"watchAppInstalled": state.installed,
|
|
"reachable": state.reachable,
|
|
"activationState": state.activationState,
|
|
"latestEventId": state.latestEventId ?? NSNull(),
|
|
"latestEventAt": state.latestEventAt ?? NSNull()
|
|
])
|
|
}
|
|
|
|
@objc func drainEvents(
|
|
_ resolve: RCTPromiseResolveBlock,
|
|
rejecter reject: RCTPromiseRejectBlock
|
|
) {
|
|
resolve(HaptikaWatchConnectivityService.shared.drainEvents())
|
|
}
|
|
|
|
@objc func acknowledgeEvents(_ eventIds: [String]) {
|
|
HaptikaWatchConnectivityService.shared.acknowledge(eventIds: eventIds)
|
|
}
|
|
|
|
@objc func sendPreferences(
|
|
_ json: String,
|
|
resolver resolve: RCTPromiseResolveBlock,
|
|
rejecter reject: RCTPromiseRejectBlock
|
|
) {
|
|
resolve(HaptikaWatchConnectivityService.shared.sendPreferences(json: json))
|
|
}
|
|
|
|
@objc func sendCommand(
|
|
_ json: String,
|
|
resolver resolve: RCTPromiseResolveBlock,
|
|
rejecter reject: RCTPromiseRejectBlock
|
|
) {
|
|
resolve(HaptikaWatchConnectivityService.shared.sendCommand(json: json))
|
|
}
|
|
|
|
@objc func transferEvent(
|
|
_ json: String,
|
|
resolver resolve: RCTPromiseResolveBlock,
|
|
rejecter reject: RCTPromiseRejectBlock
|
|
) {
|
|
resolve(HaptikaWatchConnectivityService.shared.transferEvent(json: json))
|
|
}
|
|
}
|