krz/domain-dig

an ios app for DNS & SSL analysis

clone: git clone https://gitbay.org/krz/domain-dig.git

v4.8.2: DomainDig/CloudSharingLifecycle.swift · raw

 1import CloudKit
 2import UIKit
 3
 4final class DomainDigAppDelegate: NSObject, UIApplicationDelegate {
 5    func application(
 6        _ application: UIApplication,
 7        configurationForConnecting connectingSceneSession: UISceneSession,
 8        options: UIScene.ConnectionOptions
 9    ) -> UISceneConfiguration {
10        let configuration = UISceneConfiguration(name: nil, sessionRole: connectingSceneSession.role)
11        configuration.delegateClass = DomainDigSceneDelegate.self
12        return configuration
13    }
14}
15
16final class DomainDigSceneDelegate: NSObject, UIWindowSceneDelegate {
17    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
18        guard let metadata = connectionOptions.cloudKitShareMetadata else { return }
19        accept(metadata: metadata)
20    }
21
22    func windowScene(_ windowScene: UIWindowScene, userDidAcceptCloudKitShareWith cloudKitShareMetadata: CKShare.Metadata) {
23        accept(metadata: cloudKitShareMetadata)
24    }
25
26    private func accept(metadata: CKShare.Metadata) {
27        Task {
28            try? await CloudSyncService.shared.acceptShare(metadata: metadata)
29        }
30    }
31}