Files
Woka_Native_iOS/WOKA/Home/Controller/ExploreWokaVC.swift
Bilal 210094e65c - finalised theme 2 collection clicks
- worked on homelive tv observers
- addd fav remove fav for audio books will now locally update my list instead reloading
- addd fav remove fav for karaoke will now locally update my list instead reloading
- addd fav remove fav for games will now locally update my list instead reloading
2024-08-02 23:22:06 +05:30

203 lines
9.9 KiB
Swift

//
// ExploreWokaVC.swift
// WOKA
//
// Created by MacBook Pro on 21/05/24.
//
import UIKit
class ExploreWokaVC: UIViewController {
@IBOutlet weak var blurView: UIView!
@IBOutlet weak var extraView: UIView!
@IBOutlet weak var customView: UIView!
@IBOutlet weak var wokaFmBtn: UIButton!
@IBOutlet weak var liveTvBtn: UIButton!
@IBOutlet weak var webSeriesBtn: UIButton!
@IBOutlet weak var gamesBtn: UIButton!
@IBOutlet weak var audioBookBtn: UIButton!
@IBOutlet weak var blogBtn: UIButton!
@IBOutlet weak var karaokeBtn: UIButton!
@IBOutlet weak var shopBtn: UIButton!
@IBOutlet weak var layerView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
drawBackgroundBlur()
}
override func viewDidLayoutSubviews() {
// customView.drawCustomShape()
}
func drawBackgroundBlur() {
let blurEffect = UIBlurEffect(style: .light)
let blurredView = UIVisualEffectView(effect: blurEffect)
blurredView.frame = self.view.bounds
blurredView.alpha = 0.95
self.extraView.addSubview(blurredView)
let vibrancyEffect = UIVibrancyEffect(blurEffect: blurEffect)
let vibrancyView = UIVisualEffectView(effect: vibrancyEffect)
vibrancyView.translatesAutoresizingMaskIntoConstraints = false
vibrancyView.contentView.addSubview(blurView)
blurredView.contentView.addSubview(vibrancyView)
}
@IBAction func btnTapped(_ sender: UIButton) {
switch sender{
case wokaFmBtn:
self.dismiss(animated: true) {
switch K.GVar.topView{
case .theme1:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.themeOnePush), object: nil, userInfo: ["action": TopViewPush.radio])
case .theme2:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.themeTwoPush), object: nil, userInfo: ["action": TopViewPush.radio])
case .myList:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.myListPush), object: nil, userInfo: ["action": TopViewPush.radio])
}
}
case webSeriesBtn:
self.dismiss(animated: true) {
switch K.GVar.topView{
case .theme1:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.themeOnePush), object: nil, userInfo: ["action": TopViewPush.webseries])
case .theme2:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.themeTwoPush), object: nil, userInfo: ["action": TopViewPush.webseries])
case .myList:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.myListPush), object: nil, userInfo: ["action": TopViewPush.webseries])
}
}
case gamesBtn:
self.dismiss(animated: true) {
switch K.GVar.topView{
case .theme1:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.themeOnePush), object: nil, userInfo: ["action": TopViewPush.games])
case .theme2:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.themeTwoPush), object: nil, userInfo: ["action": TopViewPush.games])
case .myList:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.myListPush), object: nil, userInfo: ["action": TopViewPush.games])
}
}
case audioBookBtn:
self.dismiss(animated: true) {
switch K.GVar.topView{
case .theme1:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.themeOnePush), object: nil, userInfo: ["action": TopViewPush.audioBooks])
case .theme2:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.themeTwoPush), object: nil, userInfo: ["action": TopViewPush.audioBooks])
case .myList:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.myListPush), object: nil, userInfo: ["action": TopViewPush.audioBooks])
}
}
case karaokeBtn:
self.dismiss(animated: true) {
switch K.GVar.topView{
case .theme1:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.themeOnePush), object: nil, userInfo: ["action": TopViewPush.karaoke])
case .theme2:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.themeTwoPush), object: nil, userInfo: ["action": TopViewPush.karaoke])
case .myList:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.myListPush), object: nil, userInfo: ["action": TopViewPush.karaoke])
}
}
case shopBtn:
self.dismiss(animated: true) {
switch K.GVar.topView{
case .theme1:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.themeOnePush), object: nil, userInfo: ["action": TopViewPush.shop])
case .theme2:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.themeTwoPush), object: nil, userInfo: ["action": TopViewPush.shop])
case .myList:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.myListPush), object: nil, userInfo: ["action": TopViewPush.shop])
}
}
case liveTvBtn:
self.dismiss(animated: true) {
switch K.GVar.topView{
case .theme1:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.themeOnePush), object: nil, userInfo: ["action": TopViewPush.liveTV])
case .theme2:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.themeTwoPush), object: nil, userInfo: ["action": TopViewPush.liveTV])
case .myList:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.myListPush), object: nil, userInfo: ["action": TopViewPush.liveTV])
}
}
case blogBtn:
self.dismiss(animated: true) {
switch K.GVar.topView{
case .theme1:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.themeOnePush), object: nil, userInfo: ["action": TopViewPush.blogs])
case .theme2:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.themeTwoPush), object: nil, userInfo: ["action": TopViewPush.blogs])
case .myList:
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.myListPush), object: nil, userInfo: ["action": TopViewPush.blogs])
}
}
default:
break
}
}
@IBAction func closeTapped(_ sender: UIButton) {
self.dismiss(animated: true)
}
}
extension UIView{
func drawCustomShape() {
let cornerRadius: CGFloat = 18.0
let shapeOffset = self.frame.size.height * 0.2
let triangleHeight: CGFloat = 20.0 // height of the triangle pointer
let triangleWidth: CGFloat = 40.0 // width of the triangle pointer
// create shape layer
let shapeLayer = CAShapeLayer()
shapeLayer.frame = self.bounds
shapeLayer.lineWidth = 1.0
shapeLayer.fillColor = UIColor.white.cgColor
self.layer.addSublayer(shapeLayer)
// create path
let path = UIBezierPath()
// top left point
path.move(to: CGPoint(x: 0, y: cornerRadius))
// top left corner
path.addQuadCurve(to: CGPoint(x: cornerRadius, y: 0), controlPoint: CGPoint(x: 0, y: 0))
// top right point
path.addLine(to: CGPoint(x: self.frame.size.width - cornerRadius, y: 0))
// top right corner
path.addQuadCurve(to: CGPoint(x: self.frame.size.width, y: cornerRadius), controlPoint: CGPoint(x: self.frame.size.width, y: 0))
// bottom right point before corner
path.addLine(to: CGPoint(x: self.frame.size.width, y: self.frame.size.height - shapeOffset - cornerRadius))
// bottom right corner
path.addQuadCurve(to: CGPoint(x: self.frame.size.width - cornerRadius, y: self.frame.size.height - shapeOffset), controlPoint: CGPoint(x: self.frame.size.width, y: self.frame.size.height - shapeOffset))
// move to bottom center point before the triangle
path.addLine(to: CGPoint(x: self.frame.size.width / 2 + triangleWidth / 2, y: self.frame.size.height - shapeOffset))
// add triangle pointer
path.addLine(to: CGPoint(x: self.frame.size.width / 2, y: self.frame.size.height - shapeOffset + triangleHeight))
path.addLine(to: CGPoint(x: self.frame.size.width / 2 - triangleWidth / 2, y: self.frame.size.height - shapeOffset))
// // bottom left point before corner
// path.addLine(to: CGPoint(x: cornerRadius, y: self.frame.size.height - shapeOffset))
// // bottom left corner
path.addQuadCurve(to: CGPoint(x: 0, y: self.frame.size.height - cornerRadius), controlPoint: CGPoint(x: 0, y: self.frame.size.height))
path.close()
shapeLayer.path = path.cgPath
}
}