// // AppDelegate.swift // WOKA // // Created by MacBook Pro on 25/04/24. // import UIKit import Lottie import IQKeyboardManagerSwift import JWPlayerKit import Firebase import GoogleMobileAds import OneSignalFramework let appDelegate = UIApplication.shared.delegate as! AppDelegate @main class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? var deviceOrientation = UIInterfaceOrientationMask.portrait func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask { return deviceOrientation } private func registerCustomFonts() { let fonts = Bundle.main.urls(forResourcesWithExtension: "ttf", subdirectory: nil) fonts?.forEach { url in CTFontManagerRegisterFontsForURL(url as CFURL, .process, nil) } } func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { //Initialize Firebase FirebaseApp.configure() // Initialize the Google Mobile Ads SDK. GADMobileAds.sharedInstance().start(completionHandler: nil) // enabling the IQKeyboard manager instance IQKeyboardManager.shared.enable = true IQKeyboardManager.shared.resignOnTouchOutside = true // IQKeyboardManager.shared.enableAutoToolbar = false // IQKeyboardManager.shared.layoutIfNeededOnUpdate = true // registerCustomFonts() // Set the authentication ID Pass after app starts AuthFunc.shareInstance.setAuthIDPass() UNUserNotificationCenter.current().delegate = self // OneSignal initialization OneSignal.initialize("f9674e6f-75fb-49e8-8379-4f2ed2a880b8", withLaunchOptions: launchOptions) OneSignal.Notifications.requestPermission() // Add your AppDelegate as an obsserver OneSignal.Notifications.addClickListener(self) OneSignal.Notifications.addForegroundLifecycleListener(self) // Set the toast defaults setupToast() //Lottie Config to handle rendering LottieConfiguration.shared.renderingEngine = .mainThread //Configure and modify the side bar configureSideBar() //Configure JWPlayer Liscense JWPlayerKitLicense.setLicenseKey("Lgok1t7H4PKY+M8FZqmCx54ibUF+NeCTn+xgd+/LVTaRdc+L") 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. } } extension AppDelegate { // MARK: - Toast Setup private func setupToast(){ var style = ToastStyle() style.displayShadow = true style.messageColor = UIColor.white style.backgroundColor = UIColor.appColor(.TextDarkBlue)! style.messageFont = FontCustom.shareInstance.customFont(fontName: .Exo2_Medium, size: 16) style.titleAlignment = .center style.messageAlignment = .center style.cornerRadius = 10 ToastManager.shared.style = style // toggle "tap to dismiss" functionality ToastManager.shared.isTapToDismissEnabled = false // toggle queueing behavior ToastManager.shared.isQueueEnabled = false } // MARK: - Configure Sidebar final private func configureSideBar(){ SideMenuController.preferences.basic.menuWidth = UIScreen.main.bounds.width - 79 SideMenuController.preferences.animation.shadowAlpha = 0.5 SideMenuController.preferences.basic.direction = .right SideMenuController.preferences.basic.enableRubberEffectWhenPanning = true SideMenuController.preferences.basic.position = .above SideMenuController.preferences.basic.enablePanGesture = true SideMenuController.preferences.basic.enablePanGesture = true SideMenuController.preferences.basic.defaultCacheKey = "default" SideMenuController.preferences.animation.hideDuration = 0.6 SideMenuController.preferences.animation.revealDuration = 0.6 } } // MARK: - Notification Click Handler extension AppDelegate : OSNotificationClickListener, OSNotificationLifecycleListener, UNUserNotificationCenterDelegate{ //Handle on click event func onClick(event: OSNotificationClickEvent) { // print("event") // Respond to notification click } func onWillDisplay(event: OSNotificationWillDisplayEvent) { print("Will Display") } }