Skip to content
Source
Sign inSign up

T3BackgroundGraceSubscriber.swift

23 lines691 Bytes

1import ExpoModulesCore
2import UIKit
3​
4public final class T3BackgroundGraceSubscriber: ExpoAppDelegateSubscriber {
5 private var task = UIBackgroundTaskIdentifier.invalid
6​
7 public func applicationWillResignActive(_ application: UIApplication) {
8 guard task == .invalid else { return }
9 task = application.beginBackgroundTask(withName: "T3 connection grace") { [weak self] in
10 self?.endTask(application)
11 }
12 }
13​
14 public func applicationDidBecomeActive(_ application: UIApplication) {
15 endTask(application)
16 }
17​
18 private func endTask(_ application: UIApplication) {
19 guard task != .invalid else { return }
20 application.endBackgroundTask(task)
21 task = .invalid
22 }