| | |
| | | private var titleItems = [TitleItem]() |
| | | private var viewModel = HomeViewModel() |
| | | private var timer:Timer? |
| | | private var needPopToTree:Bool = false //是否需要跳转到树苗 |
| | | private var needPopToTree:Bool = false //是否需跳转到树苗 |
| | | |
| | | private var cellularData:CTCellularData! |
| | | |
| | |
| | | |
| | | |
| | | @objc func autoUpdate(){ |
| | | guard !(viewModel.todyModel?.endPlayTime.isEmpty ?? true) else {return} |
| | | guard let endPlayTime = viewModel.todyModel?.endPlayTime, !endPlayTime.isEmpty else { return } |
| | | |
| | | let todayEndDay = Date().jq_format("yyyy-MM-dd") + " \(viewModel.todyModel!.endPlayTime)" |
| | | let todayEndDay = Date().jq_format("yyyy-MM-dd") + " \(endPlayTime)" |
| | | let endDayInterval = Date.jq_StringToTimeInterval(todayEndDay,"yyyy-MM-dd HH:mm:ss") |
| | | |
| | | if Date().timeIntervalSince1970 > endDayInterval{ |
| | | Services.getTopdayMedita().subscribe(onNext: { data in |
| | | Services.getTopdayMedita().subscribe(onNext: { [weak self] data in |
| | | guard let self = self else { return } |
| | | self.viewModel.todyModel = data.data |
| | | self.tableView.reloadRows(at: [IndexPath(row: 0, section: 0)], with: .none) |
| | | }).disposed(by: disposeBag) |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | deinit { |
| | | // 使定时器失效 |
| | | timer?.invalidate() |
| | | |
| | | // 移除通知中心观察者 |
| | | NotificationCenter.default.removeObserver(self) |
| | | } |
| | | |
| | | } |
| | | |
| | | extension HomeVC:UITableViewDelegate & UITableViewDataSource{ |
| | |
| | | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { |
| | | |
| | | if indexPath.section == 0{ |
| | | if let m = viewModel.todyModel,let detailId = m.clientMeditationVO?.id{ |
| | | if AudioPlayer.getSharedInstance().meditationModel?.id == m.meditationId{ |
| | | if AudioPlayer.getSharedInstance().bgmPlayer?.timeControlStatus == .paused{ |
| | | AudioPlayer.getSharedInstance().bgmPlayer?.play() |
| | | AudioPlayer.getSharedInstance().masterPlayer?.play() |
| | | PayMusicVC.updateStatus(.playing) |
| | | self.viewModel.todyModel?.playAtMe = true |
| | | }else{ |
| | | AudioPlayer.getSharedInstance().bgmPlayer?.pause() |
| | | AudioPlayer.getSharedInstance().masterPlayer?.pause() |
| | | PayMusicVC.updateStatus(.pause) |
| | | self.viewModel.todyModel?.playAtMe = false |
| | | guard let m = viewModel.todyModel, let detailId = m.clientMeditationVO?.id else { |
| | | alert(msg: "平台暂未设置今日疗愈") |
| | | return |
| | | } |
| | | DispatchQueue.main.asyncAfter(delay: 0.4) { |
| | | |
| | | let audioPlayer = AudioPlayer.getSharedInstance() |
| | | let isSameMeditation = audioPlayer.meditationModel?.id == m.meditationId |
| | | let isPaused = audioPlayer.bgmPlayer?.timeControlStatus == .paused |
| | | |
| | | if isSameMeditation { |
| | | if isPaused { |
| | | audioPlayer.bgmPlayer?.play() |
| | | audioPlayer.masterPlayer?.play() |
| | | PayMusicVC.updateStatus(.playing) |
| | | viewModel.todyModel?.playAtMe = true |
| | | } else { |
| | | audioPlayer.bgmPlayer?.pause() |
| | | audioPlayer.masterPlayer?.pause() |
| | | PayMusicVC.updateStatus(.pause) |
| | | viewModel.todyModel?.playAtMe = false |
| | | } |
| | | DispatchQueue.main.asyncAfter(deadline: .now() + 0.4) { |
| | | self.tableView.reloadData() |
| | | } |
| | | }else{ |
| | | //游客模式都能播放 |
| | | Services.getMeditationDetail(id: detailId).subscribe(onNext: {[weak self]data in |
| | | if let m = data.data{ |
| | | guard let self = self, let m = data.data else { return } |
| | | |
| | | if AudioPlayer.getSharedInstance().meditationModel?.id == m.id && AudioPlayer.getSharedInstance().bgmPlayer?.timeControlStatus == .playing{ |
| | | if audioPlayer.meditationModel?.id == m.id && audioPlayer.bgmPlayer?.timeControlStatus == .playing { |
| | | return |
| | | } |
| | | AudioPlayer.getSharedInstance().playBGMAt(firstPlayIndex: 0, model: m, delegate: self) |
| | | audioPlayer.playBGMAt(firstPlayIndex: 0, model: m, delegate: self) |
| | | PayMusicVC.show(model: m,isHidden: false) |
| | | self?.viewModel.todyModel?.playAtMe = true |
| | | DispatchQueue.main.asyncAfter(delay: 1.0) { |
| | | self?.tableView.reloadData() |
| | | } |
| | | self.viewModel.todyModel?.playAtMe = true |
| | | DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { |
| | | self.tableView.reloadData() |
| | | } |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | }else{ |
| | | alert(msg: "平台暂未设置今日疗愈") |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | return headerView |
| | | } |
| | | |
| | | |
| | | } |
| | | |