46 lines
1.1 KiB
Swift
46 lines
1.1 KiB
Swift
//
|
|
// WidgetManager.swift
|
|
// digitalpilates
|
|
//
|
|
// Native module for managing widget refresh
|
|
//
|
|
|
|
import Foundation
|
|
import React
|
|
import WidgetKit
|
|
|
|
@objc(WidgetManager)
|
|
class WidgetManager: NSObject, RCTBridgeModule {
|
|
|
|
static func moduleName() -> String! {
|
|
return "WidgetManager"
|
|
}
|
|
|
|
static func requiresMainQueueSetup() -> Bool {
|
|
return false
|
|
}
|
|
|
|
@objc
|
|
func reloadTimelines(_ resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
|
DispatchQueue.main.async {
|
|
if #available(iOS 14.0, *) {
|
|
WidgetCenter.shared.reloadTimelines(ofKind: "WaterWidget")
|
|
resolver(nil)
|
|
} else {
|
|
rejecter("UNSUPPORTED", "WidgetKit is only available on iOS 14.0 and later", nil)
|
|
}
|
|
}
|
|
}
|
|
|
|
@objc
|
|
func reloadAllTimelines(_ resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
|
DispatchQueue.main.async {
|
|
if #available(iOS 14.0, *) {
|
|
WidgetCenter.shared.reloadAllTimelines()
|
|
resolver(nil)
|
|
} else {
|
|
rejecter("UNSUPPORTED", "WidgetKit is only available on iOS 14.0 and later", nil)
|
|
}
|
|
}
|
|
}
|
|
} |