54 lines
1.2 KiB
Swift
Raw Normal View History

import Foundation
@objc(WMFMetricsClientBridge)
public class MetricsClientBridge: NSObject {
let client = EventPlatformClient.shared
@objc(sharedInstance) public static let shared: MetricsClientBridge = {
return MetricsClientBridge()
}()
@objc public func appInBackground() {
client.appInBackground()
}
@objc public func appInForeground() {
client.appInForeground()
}
@objc public func appWillClose() {
client.appWillClose()
}
@objc public func reset() {
client.reset()
}
}
// MARK: PeriodicWorker
extension MetricsClientBridge: PeriodicWorker {
public func doPeriodicWork(_ completion: @escaping () -> Void) {
guard let storageManager = self.client.storageManager else {
return
}
storageManager.pruneStaleEvents(completion: {
self.client.postAllScheduled(completion)
})
}
}
// MARK: BackgroundFetcher
extension MetricsClientBridge: BackgroundFetcher {
public func performBackgroundFetch(_ completion: @escaping (UIBackgroundFetchResult) -> Void) {
doPeriodicWork {
completion(.noData)
}
}
}