Files
Woka_Native_iOS/WOKA/Main/Delegate/AppDelegate.swift

143 lines
5.3 KiB
Swift
Raw Normal View History

2024-05-02 13:20:40 +05:30
//
// AppDelegate.swift
// WOKA
//
// Created by MacBook Pro on 25/04/24.
//
import UIKit
import Lottie
import IQKeyboardManagerSwift
import JWPlayerKit
import Firebase
2024-09-05 20:01:07 +05:30
import GoogleMobileAds
import OneSignalFramework
2024-05-02 13:20:40 +05:30
let appDelegate = UIApplication.shared.delegate as! AppDelegate
2024-05-02 13:20:40 +05:30
@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)
}
}
2024-05-02 13:20:40 +05:30
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
//Initialize Firebase
2024-08-21 19:47:30 +05:30
FirebaseApp.configure()
2024-09-05 20:01:07 +05:30
// Initialize the Google Mobile Ads SDK.
GADMobileAds.sharedInstance().start(completionHandler: nil)
2024-05-02 13:20:40 +05:30
// 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()
2024-05-02 13:20:40 +05:30
//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")
2024-05-02 13:20:40 +05:30
return true
}
2024-05-02 13:20:40 +05:30
// 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<UISceneSession>) {
// 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
}
}
2024-08-05 19:43:30 +05:30
// 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")
}
}