//
//  WA_LIVEVC.swift
//  wallpaper_project
//
//  Created by 忆海16 on 2024/3/11.
//

import UIKit
import JXSegmentedView
import MJRefresh
import FirebaseAnalytics


class WA_LIVEVC: WA_RootVC {
    
    
    @IBOutlet weak var collectionView: UICollectionView!
    
    var wallpapers = [WA_3DModel]()
    
    var currentPage: Int = 1 // 当前页数
    let pageSize: Int = 10 // 每页加载的数量
    
    // 顶部刷新
    let header = MJRefreshNormalHeader()
    // 底部刷新
    let footer = MJRefreshAutoNormalFooter()
    
    
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        self.view.backgroundColor = .white
        setCollectionView()
     
        Analytics.logEvent("in_live", parameters: nil)
        setRefresh()
    }
    
    
    @IBAction func back(_ sender: Any) {
        navigationController?.popViewController(animated: true)
    }
    
    
    
    @objc func setRefresh(){
        refreshData()
 
        header.setRefreshingTarget(self, refreshingAction: #selector(WA_LIVEVC.setRefresh))
        // 现在的版本要用mj_header
        
        header.setTitle("pull-to-refresh", for: .idle)
        header.setTitle("Release updates", for: .pulling)
        header.setTitle("Refreshing...", for: .refreshing)
        self.collectionView.mj_header = header
        
        
        // 上拉刷新
        footer.setRefreshingTarget(self, refreshingAction: #selector(WA_LIVEVC.loadMoreData))
        footer.setTitle("Pull up loading", for: .idle)
        footer.setTitle("Release Load", for: .pulling)
        footer.setTitle("Loading...", for: .refreshing)
        self.collectionView.mj_footer = footer
  
        
        header.beginRefreshing()
//        footer.beginRefreshing()
    }
    func setCollectionView(){
        collectionView.delegate = self
        collectionView.dataSource = self
        
        // 设置 collection view 的布局
               let layout = CustomCollectionViewFlowLayout()
               collectionView.collectionViewLayout = layout
            layout.scrollDirection = .vertical
        
        collectionView.register(UINib(nibName: "WA_WallpaperCollectionCell", bundle: nil), forCellWithReuseIdentifier: "WA_WallpaperCollectionCell")
        
    }
    
    // 下拉刷新
       @objc func refreshData() {
           currentPage = 1
           setJsondata()
       }
       
       // 上拉加载更多
       @objc func loadMoreData() {
           currentPage += 1
           setJsondata()
       }
    func setJsondata(){
        // 读取 JSON 文件并解析
        if let path = Bundle.main.path(forResource: "live", ofType: "json") {
            do {
                let data = try Data(contentsOf: URL(fileURLWithPath: path), options: .mappedIfSafe)
                
                // 使用 MJExtension 解析 JSON 数据
                let jsonArray = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [[String: Any]]
                
                if let jsonArray = jsonArray {
                    // 使用 MJExtension 将 JSON 数组转换为模型数组
                    
                   let wallpapersarr = (WA_3DModel.mj_objectArray(withKeyValuesArray: jsonArray) as? [WA_3DModel])!
                    
                    if currentPage == 1 {
                                // 只取前10条数据
                                let firstTenWallpapers = Array(wallpapersarr.prefix(10))
                        self.wallpapers = firstTenWallpapers
                                collectionView.reloadData()
                                collectionView.mj_header?.endRefreshing()
                            } else {
                                // 上拉加载更多
                                let startIndex = currentPage * pageSize
                                let moreWallpapers = Array(wallpapersarr.prefix(startIndex))
                                DispatchQueue.main.asyncAfter(deadline: .now() + 1.5){
                                    self.wallpapers = moreWallpapers
                                    self.collectionView.reloadData()
                                    self.collectionView.mj_footer?.endRefreshing()

                                        }
                            }
                }
            } catch {
                print("Error reading JSON file:", error.localizedDescription)
            }
        } else {
            print("JSON file not found.")
        }

    }
    
    

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        navigationController?.navigationBar.isHidden = true
    }
}
//extension WA_LIVEVC:JXSegmentedListContainerViewListDelegate{
//    func listView() -> UIView {
//        return view
//    }
//}
extension WA_LIVEVC:UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout{
    
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        
    
        return self.wallpapers.count
    }
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "WA_WallpaperCollectionCell", for: indexPath)as!WA_WallpaperCollectionCell
        cell.model = self.wallpapers[indexPath.row]

        return cell
    } 
    
    
    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        let vc = WA_LiveVideoVC()
        vc.model = self.wallpapers[indexPath.row]
        navigationController?.pushViewController(vc, animated: true)
        
    }
}
