// // SplashVC.swift // WOKA // // Created by MacBook Pro on 25/04/24. // import UIKit import Lottie import OneSignalFramework class SplashVC: UIViewController { @IBOutlet weak var wokaLogo: UIImageView! @IBOutlet weak var hindiBtn: UIButton! @IBOutlet weak var englishBtn: UIButton! @IBOutlet weak var languageBtnStack: UIStackView! @IBOutlet weak var wokaOriginY: NSLayoutConstraint! @IBOutlet weak var retryBtn: UIButton! @IBOutlet weak var activityIndicator: UIActivityIndicatorView! var vm = SplashVM() // MARK: - View Life Cycle override func viewDidLoad() { super.viewDidLoad() vm.vc = self vm.playSplashSound() animateImageScale() self.navigationItem.backBarButtonItem = UIBarButtonItem(title:"", style:.plain, target:nil, action:nil) print("OneSignalID:- ", OneSignal.User.pushSubscription.id ?? "NIL") } @IBAction func languageBtnTapped(_ sender: UIButton) { PersistentStorage.shared.addOthersCount() switch sender{ case hindiBtn: AuthFunc.shareInstance.languageSelected = .hindi case englishBtn: AuthFunc.shareInstance.languageSelected = .english default: AuthFunc.shareInstance.languageSelected = .english } let sb = UIStoryboard(name: K.StoryBoard.main, bundle: nil) let vc = sb.instantiateViewController(withIdentifier: K.StoryBoardID.OnBoarding.onBoardVC) as! OnBoardVC // Create a CATransition instance let transition = CATransition() transition.duration = 0.3 // Set the duration of the animation transition.type = CATransitionType.fade // Set the type of animation to fade // Get the navigation controller guard let navigationController = navigationController else { return } // Perform the push animation with the custom transition navigationController.view.layer.add(transition, forKey: nil) navigationController.pushViewController(vc, animated: false) } @IBAction func retryBtnTapped(_ sender: UIButton) { vm.getUserData() } func animateImageScale() { UIView.animate(withDuration: 3.0, delay: 0, options: [], animations: { self.wokaLogo.transform = CGAffineTransform(scaleX: 1.8, y: 1.8) }, completion: nil) let newConstant = wokaOriginY.constant - 50 Timer.scheduledTimer(withTimeInterval: 6, repeats: false) { [weak self] _ in guard let self else{return} /* If user is loggined no need to shift the woka logo upside to new constant. Directly Navigate user to home */ if AuthFunc.shareInstance.checkLogin(){ vm.getUserData() return } else{ //check if the static url data is fetched if AuthFunc.shareInstance.staticURLs == nil{ AuthFunc.shareInstance.getStaticURLs() } } UIView.animate(withDuration: 0.5, animations: { // Update the constant value of the top constraint self.wokaOriginY.constant = newConstant // Inform the layout system to update self.view.layoutIfNeeded() }) { _ in if !AuthFunc.shareInstance.checkLogin(){ UIView.animate(withDuration: 0.3, delay: 0,options : [.transitionCrossDissolve],animations: { // Set the isHidden property of the view self.languageBtnStack.isHidden = false }) {_ in // Inform the stack view to update its layout self.languageBtnStack.layoutIfNeeded() } } } } } override func viewDidLayoutSubviews() { vm.initView() } }