import Flutter import UIKit import FirebaseCore import FirebaseMessaging import GoogleMaps @main @objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { func didInitializeImplicitFlutterEngine(_ engineBridge: any FlutterImplicitEngineBridge) { GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) // GMSServices.provideAPIKey("AIzaSyB6TERnxIr0yJ3qG4ULBZbu0sAD4tGqtng") // FirebaseApp.configure() // initializePlatformChannels() } override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { GMSServices.provideAPIKey("AIzaSyB6TERnxIr0yJ3qG4ULBZbu0sAD4tGqtng") // FirebaseApp.configure() initializePlatformChannels() // GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } func initializePlatformChannels(){ // DispatchQueue.main.async { [weak self] in // guard let self = self else { return } // // // 1. Try accessing window via AppDelegate (legacy/single-window setup) // var controller = self.window?.rootViewController as? FlutterViewController // // // 2. Fallback to UIWindowScene active window (modern iOS architecture) // if controller == nil { // controller = UIApplication.shared.connectedScenes // .compactMap { $0 as? UIWindowScene } // .flatMap { $0.windows } // .first(where: { $0.isKeyWindow })? // .rootViewController as? FlutterViewController // } // // // 3. Perform initialization once FlutterViewController is available // if let mainViewController = controller { // HMGPenguinInPlatformBridge.initialize(flutterViewController: mainViewController) // } else { // print("⚠️ FlutterViewController not ready yet for initializePlatformChannels.") // } // } // if let mainViewController = window?.rootViewController as? FlutterViewController{ // platform initialization suppose to be in foreground // HMGPenguinInPlatformBridge.initialize(flutterViewController: mainViewController) // } } override func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken:Data){ // Messaging.messaging().apnsToken = deviceToken super.application(application, didRegisterForRemoteNotificationsWithDeviceToken: deviceToken) } }