import CallKit import Foundation class SpamCallDirectoryProvider: CXCallDirectoryProvider { override func beginRequest(with context: CXCallDirectoryExtensionContext) { // The extension should call context.completeRequest() when it's finished. // 1. Load data from shared App Group let service = SpamDirectoryService.shared do { // 2. Add blocked numbers let blockedNumbers = try service.loadBlockedNumbers() for number in blockedNumbers { context.addBlockingEntry(withNextSequentialPhoneNumber: number) } // 3. Add identified numbers let identifiedEntries = try service.loadIdentifiedEntries() for entry in identifiedEntries { context.addIdentificationEntry(withNextSequentialPhoneNumber: entry.number, label: entry.label) } // 4. Complete the request context.completeRequest() } catch { // In case of error, we still complete the request but log it // (In a real app, use OSLog) context.completeRequest() } } }