Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
69 lines
1.5 KiB
Swift
69 lines
1.5 KiB
Swift
import React
|
|
import UIKit
|
|
|
|
@objc(TuttiAppLifecycle)
|
|
final class AppLifecycleModule: RCTEventEmitter {
|
|
private var observing = false
|
|
|
|
@objc
|
|
override static func requiresMainQueueSetup() -> Bool {
|
|
true
|
|
}
|
|
|
|
override func supportedEvents() -> [String] {
|
|
[Self.eventName]
|
|
}
|
|
|
|
@objc
|
|
func isForeground() -> NSNumber {
|
|
if Thread.isMainThread {
|
|
return NSNumber(
|
|
value: UIApplication.shared.applicationState != .background
|
|
)
|
|
}
|
|
return DispatchQueue.main.sync {
|
|
NSNumber(value: UIApplication.shared.applicationState != .background)
|
|
}
|
|
}
|
|
|
|
override func startObserving() {
|
|
guard !observing else {
|
|
return
|
|
}
|
|
observing = true
|
|
NotificationCenter.default.addObserver(
|
|
self,
|
|
selector: #selector(applicationDidBecomeActive),
|
|
name: UIApplication.didBecomeActiveNotification,
|
|
object: nil
|
|
)
|
|
NotificationCenter.default.addObserver(
|
|
self,
|
|
selector: #selector(applicationDidEnterBackground),
|
|
name: UIApplication.didEnterBackgroundNotification,
|
|
object: nil
|
|
)
|
|
}
|
|
|
|
override func stopObserving() {
|
|
observing = false
|
|
NotificationCenter.default.removeObserver(self)
|
|
}
|
|
|
|
deinit {
|
|
NotificationCenter.default.removeObserver(self)
|
|
}
|
|
|
|
@objc
|
|
private func applicationDidBecomeActive() {
|
|
sendEvent(withName: Self.eventName, body: true)
|
|
}
|
|
|
|
@objc
|
|
private func applicationDidEnterBackground() {
|
|
sendEvent(withName: Self.eventName, body: false)
|
|
}
|
|
|
|
private static let eventName = "TuttiAppLifecycleChanged"
|
|
}
|