// // Copyright Amazon.com Inc. or its affiliates. // All Rights Reserved. // // SPDX-License-Identifier: Apache-2.0 // import os.log import UIKit import AppSyncRealTimeClient @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { // Override point for customization after application launch. // Initialize the subscription, don't do anything in particular with it _ = AppSyncRTCProvider.default return true } // MARK: UISceneSession Lifecycle func application( _ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions ) -> UISceneConfiguration { // Called when a new scene session is being created. // Use this method to select a configuration to create the new scene with. return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) } func application( _ application: UIApplication, didDiscardSceneSessions sceneSessions: Set ) { // Called when the user discards a scene session. // If any sessions were discarded while the application was not running, this will // be called shortly after application:didFinishLaunchingWithOptions. // Use this method to release any resources that were specific to the discarded // scenes, as they will not return. } func applicationWillResignActive(_ application: UIApplication) { OSLog.subscription.log("\(#function), unsubscribing", log: .subscription) AppSyncRTCProvider.default.unsubscribe() } func applicationDidEnterBackground(_ application: UIApplication) { OSLog.subscription.log("\(#function), unsubscribing", log: .subscription) AppSyncRTCProvider.default.unsubscribe() } }