add astra draft
This commit is contained in:
@@ -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)")
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user