add astra draft

This commit is contained in:
2026-09-17 17:59:34 +02:00
parent 88588dcfcc
commit 41458afc76
38 changed files with 2392 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
import DeviceActivity
import OSLog
final class ActivityMonitor: DeviceActivityMonitor {
private let logger = Logger(subsystem: "APC", category: "DeviceActivity")
override func intervalDidStart(for activity: DeviceActivityName) {
super.intervalDidStart(for: activity)
handle(activity)
}
override func intervalDidEnd(for activity: DeviceActivityName) {
super.intervalDidEnd(for: activity)
handle(activity, ended: true)
}
override func eventDidReachThreshold(_ event: DeviceActivityEvent.Name, activity: DeviceActivityName) {
super.eventDidReachThreshold(event, activity: activity)
handle(activity, event: event)
}
private func handle(_ activity: DeviceActivityName, event: DeviceActivityEvent.Name? = nil,
ended: Bool = false) {
do { try Enforcement.callback(activity: activity, event: event, ended: ended) }
catch {
// Never clear existing restrictions because storage is temporarily unavailable.
logger.error("Screen Time callback could not reconcile state: \(String(describing: error), privacy: .public)")
}
}
}