// // ThemeTwoVC.swift // WOKA // // Created by Bilal on 24/05/2024. // import UIKit class ThemeTwoVC: UIViewController { weak var delegate: ChildViewControllerDelegate? @IBOutlet weak var collectionView: UICollectionView! @IBOutlet weak var liveTvView: UIView! @IBOutlet weak var nameLabel: UILabel! @IBOutlet weak var avatarImage: UIImageView! @IBOutlet weak var notificationBtn: UIButton! var vm = ThemeTwoVM() deinit{ NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue: K.NotificationCenterReloads.reloadTheme), object: nil) } override func viewDidLoad() { super.viewDidLoad() vm.vc = self vm.initView() liveTvView.addTapGesture { [weak self] in guard let self else{return} self.vm.playLiveTV() } } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() vm.setData() } @IBAction func sideBarBtnTapped(_ sender: UIButton) { self.sideMenuController?.revealMenu() } @IBAction func notificationBtnTapped(_ sender: UIButton) { CommonNwCall.shareInstance.getUserNotification(vc: self) { isDone in if isDone{ let sb = UIStoryboard(name: K.StoryBoard.theme, bundle: nil) let vcPush = sb.instantiateViewController(withIdentifier: K.StoryBoardID.Home.userNotificationVC) as! UserNotificationVC self.navigationController?.pushViewController(vcPush, animated: true) } } } } // MARK: - CollectionView DataSource Delegate extension ThemeTwoVC : CollectionViewSRC{ func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { vm.cellData.count } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: K.CellIdentifier.Theme.homeExploreCell, for: indexPath) as! HomeExploreCell cell.setData(data : vm.cellData[indexPath.row]) return cell } func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { print(indexPath.row) switch indexPath.row{ case 0: let sb = UIStoryboard(name: K.StoryBoard.theme, bundle: nil) let vcPush = sb.instantiateViewController(withIdentifier: K.StoryBoardID.Theme.radioVC) as! RadioVC vcPush.modalPresentationStyle = .overCurrentContext vcPush.modalTransitionStyle = .crossDissolve self.present(vcPush, animated: true) case 1: vm.playLiveTV() case 2: break default: break } } } // MARK: - Collection Flow Layout extension ThemeTwoVC : UICollectionViewDelegateFlowLayout{ func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { return 5 } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { return 5 } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { return UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 5) } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { let itemsPerRow: CGFloat = 3 let paddingSpace = 5 * (itemsPerRow + 1) let availableWidth = collectionView.frame.width - paddingSpace let widthPerItem = availableWidth / itemsPerRow return CGSize(width: widthPerItem, height: widthPerItem + (widthPerItem / 6)) } // func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { // return UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 5) // } }