Update stuff

This commit is contained in:
Hariharan Mudaliar 2026-01-18 01:46:35 +05:30
commit 9214c61544
No known key found for this signature in database
GPG key ID: 025583EB0BE5640E
18 changed files with 985 additions and 118 deletions

View file

@ -22,13 +22,16 @@ final class ExtensionAuthorizationManager: ObservableObject {
var isExtensionsFeatureEnabled: Bool { Defaults[.enableThirdPartyExtensions] }
var areLiveActivitiesEnabled: Bool { Defaults[.enableExtensionLiveActivities] }
var areLockScreenWidgetsEnabled: Bool { Defaults[.enableExtensionLockScreenWidgets] }
var areNotchExperiencesEnabled: Bool { Defaults[.enableExtensionNotchExperiences] }
func updateFeatureToggles(extensionsEnabled: Bool? = nil,
liveActivitiesEnabled: Bool? = nil,
lockScreenWidgetsEnabled: Bool? = nil) {
lockScreenWidgetsEnabled: Bool? = nil,
notchExperiencesEnabled: Bool? = nil) {
if let extensionsEnabled { Defaults[.enableThirdPartyExtensions] = extensionsEnabled }
if let liveActivitiesEnabled { Defaults[.enableExtensionLiveActivities] = liveActivitiesEnabled }
if let lockScreenWidgetsEnabled { Defaults[.enableExtensionLockScreenWidgets] = lockScreenWidgetsEnabled }
if let notchExperiencesEnabled { Defaults[.enableExtensionNotchExperiences] = notchExperiencesEnabled }
objectWillChange.send()
}
@ -88,9 +91,12 @@ final class ExtensionAuthorizationManager: ObservableObject {
record.activityTimestamps.append(now)
case .lockScreenWidgets:
record.widgetTimestamps.append(now)
case .notchExperiences:
record.notchExperienceTimestamps.append(now)
}
record.activityTimestamps = flushOldTimestamps(record.activityTimestamps)
record.widgetTimestamps = flushOldTimestamps(record.widgetTimestamps)
record.notchExperienceTimestamps = flushOldTimestamps(record.notchExperienceTimestamps)
}
}
@ -126,6 +132,12 @@ final class ExtensionAuthorizationManager: ObservableObject {
return true
}
func canProcessNotchExperienceRequest(from bundleIdentifier: String) -> Bool {
guard preflight(bundleIdentifier: bundleIdentifier, scope: .notchExperiences) else { return false }
guard areNotchExperiencesEnabled else { return false }
return true
}
func recordDeniedRequest(bundleIdentifier: String, reason: String) {
updateEntry(bundleIdentifier: bundleIdentifier) { entry in
entry.lastDeniedReason = reason