From 41b7bc80c48cdc0b12c127f090f61621cd3a47c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BE=9C=E5=A3=B0=E4=B8=96=E7=BA=AA?= <> Date: Mon, 8 Dec 2025 17:06:30 +0800 Subject: [PATCH] =?UTF-8?q?1.vip=E6=8C=BD=E7=95=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Podfile | 6 + SynthReel.xcodeproj/project.pbxproj | 6 +- SynthReel/Base/API/SRStoreAPI.swift | 9 + .../Player/VM/SRShortPlayerViewModel.swift | 22 +- .../Player/VM/V/SRDetailRecommendCell.swift | 79 +++++ .../Player/VM/V/SRDetailRecommendview.swift | 175 ++++++++++ .../Class/Player/VM/V/SREpSelectorCell.swift | 99 ++++++ .../Class/Player/VM/V/SREpSelectorView.swift | 211 ++++++++++++ .../Class/Player/VM/V/SRProgressView.swift | 216 ++++++++++++ .../Player/VM/V/SRRecommendPlayerCell.swift | 26 ++ .../VM/V/SRRecommendPlayerControlView.swift | 226 +++++++++++++ .../VM/V/SRShortDetailControlView.swift | 240 +++++++++++++ .../Player/VM/V/SRShortDetailPlayerCell.swift | 88 +++++ .../Class/Player/VM/V/SRVideoLockView.swift | 120 +++++++ .../Player/VM/V/SRVideoRechargeView.swift | 320 ++++++++++++++++++ .../Class/Player/VM/V/SRVipRetainAlert.swift | 313 +++++++++++++++++ .../Libs/SRAppstore/SRPayDataRequest.swift | 20 ++ .../vipRetainBg.imageset/Contents.json | 22 ++ .../vipRetainBg.imageset/vipRetainBg@2x.png | Bin 0 -> 60255 bytes .../vipRetainBg.imageset/vipRetainBg@3x.png | Bin 0 -> 119669 bytes SynthReel/Source/en.lproj/Localizable.strings | 3 +- 21 files changed, 2198 insertions(+), 3 deletions(-) create mode 100644 SynthReel/Class/Player/VM/V/SRDetailRecommendCell.swift create mode 100644 SynthReel/Class/Player/VM/V/SRDetailRecommendview.swift create mode 100644 SynthReel/Class/Player/VM/V/SREpSelectorCell.swift create mode 100644 SynthReel/Class/Player/VM/V/SREpSelectorView.swift create mode 100644 SynthReel/Class/Player/VM/V/SRProgressView.swift create mode 100644 SynthReel/Class/Player/VM/V/SRRecommendPlayerCell.swift create mode 100644 SynthReel/Class/Player/VM/V/SRRecommendPlayerControlView.swift create mode 100644 SynthReel/Class/Player/VM/V/SRShortDetailControlView.swift create mode 100644 SynthReel/Class/Player/VM/V/SRShortDetailPlayerCell.swift create mode 100644 SynthReel/Class/Player/VM/V/SRVideoLockView.swift create mode 100644 SynthReel/Class/Player/VM/V/SRVideoRechargeView.swift create mode 100644 SynthReel/Class/Player/VM/V/SRVipRetainAlert.swift create mode 100644 SynthReel/Source/Assets.xcassets/myShort/vipRetainBg.imageset/Contents.json create mode 100644 SynthReel/Source/Assets.xcassets/myShort/vipRetainBg.imageset/vipRetainBg@2x.png create mode 100644 SynthReel/Source/Assets.xcassets/myShort/vipRetainBg.imageset/vipRetainBg@3x.png diff --git a/Podfile b/Podfile index 6cf9cae..cc03db5 100644 --- a/Podfile +++ b/Podfile @@ -33,4 +33,10 @@ target 'SynthReel' do pod 'HWPanModal' pod 'LYEmptyView' pod 'ZLPhotoBrowser' + + # AdMob SDK + pod 'Google-Mobile-Ads-SDK' + + # AppLovin SDK + pod 'AppLovinSDK' end diff --git a/SynthReel.xcodeproj/project.pbxproj b/SynthReel.xcodeproj/project.pbxproj index 99b0fc8..ecdf632 100644 --- a/SynthReel.xcodeproj/project.pbxproj +++ b/SynthReel.xcodeproj/project.pbxproj @@ -195,6 +195,7 @@ 3779D0612ECF1CB8006B1698 /* SRShortHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3779D0602ECF1CB8006B1698 /* SRShortHeaderView.swift */; }; 47BB39E2DD30787FA591F8EB /* Pods_SynthReel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9255BF4D4B1CFDDB5CFFB43 /* Pods_SynthReel.framework */; }; 85ACDA2F2EE6B3760009B306 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 85ACDA2E2EE6B3760009B306 /* GoogleService-Info.plist */; }; + 85ACDA312EE6C3640009B306 /* SRVipRetainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85ACDA302EE6C3640009B306 /* SRVipRetainAlert.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -499,6 +500,7 @@ 85ACDA292EE69CD90009B306 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 85ACDA2B2EE69CD90009B306 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; 85ACDA2E2EE6B3760009B306 /* GoogleService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; + 85ACDA302EE6C3640009B306 /* SRVipRetainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SRVipRetainAlert.swift; sourceTree = ""; }; AA88214030574193B51DE563 /* Pods-SynthReel.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SynthReel.release.xcconfig"; path = "Target Support Files/Pods-SynthReel/Pods-SynthReel.release.xcconfig"; sourceTree = ""; }; F9255BF4D4B1CFDDB5CFFB43 /* Pods_SynthReel.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SynthReel.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -684,7 +686,6 @@ isa = PBXGroup; children = ( 03B1A9202ECB2F25006C353F /* VC */, - 03B1A9242ECBFF03006C353F /* V */, 03B1A8EB2EC72C0E006C353F /* M */, 03B1A9232ECBFEF9006C353F /* VM */, ); @@ -714,6 +715,7 @@ isa = PBXGroup; children = ( 03B1A9252ECBFF31006C353F /* SRShortPlayerViewModel.swift */, + 03B1A9242ECBFF03006C353F /* V */, 03980F4E2ECEB91C0006E317 /* SRRecommendPlayerViewModel.swift */, ); path = VM; @@ -733,6 +735,7 @@ 3754ACD62ED82774009EBCAD /* SRDetailRecommendCell.swift */, 3754AD192EDD745A009EBCAD /* SRVideoLockView.swift */, 3754B0302EE2C9D4009EBCAD /* SRVideoRechargeView.swift */, + 85ACDA302EE6C3640009B306 /* SRVipRetainAlert.swift */, ); path = V; sourceTree = ""; @@ -1773,6 +1776,7 @@ 03B1A9302ECC10D1006C353F /* SRSearchViewController.swift in Sources */, 03B1A8432EC5CB99006C353F /* SRTabBarController.swift in Sources */, 3754AD3E2EDD9C88009EBCAD /* SRLogin+FB.swift in Sources */, + 85ACDA312EE6C3640009B306 /* SRVipRetainAlert.swift in Sources */, 03B1A8EF2EC72C78006C353F /* SRShortModel.swift in Sources */, 03B1A8ED2EC72C1F006C353F /* SRHomeModuleItem.swift in Sources */, 370D2F102ED4534500571E77 /* SRUserViewController.swift in Sources */, diff --git a/SynthReel/Base/API/SRStoreAPI.swift b/SynthReel/Base/API/SRStoreAPI.swift index 9c50331..f29a01c 100644 --- a/SynthReel/Base/API/SRStoreAPI.swift +++ b/SynthReel/Base/API/SRStoreAPI.swift @@ -89,5 +89,14 @@ class SRStoreAPI: NSObject { } } + static func requestVipRetainPayInfo() async -> SRPayAlertModel? { + await withCheckedContinuation { continuation in + var param = SRNetwork.Parameters(path: "/getRetainVipPaySetting") + param.method = .get + SRNetwork.request(parameters: param) { (response: SRNetwork.Response) in + continuation.resume(returning: response.data) + } + } + } } diff --git a/SynthReel/Class/Player/VM/SRShortPlayerViewModel.swift b/SynthReel/Class/Player/VM/SRShortPlayerViewModel.swift index 1c9ae9c..c8ad3e7 100644 --- a/SynthReel/Class/Player/VM/SRShortPlayerViewModel.swift +++ b/SynthReel/Class/Player/VM/SRShortPlayerViewModel.swift @@ -203,12 +203,32 @@ extension SRShortPlayerViewModel { } view.didDismissHandle = { [weak self] in guard let self = self else { return } -// self._showVipRetainAlert(videoInfo) + self._showVipRetainAlert(videoInfo) } view.present(in: nil) self.popView = view } + private func _showVipRetainAlert(_ videoInfo: SRVideoInfoModel) { + + + payDataRequest = SRPayDataRequest() + + payDataRequest?.requestVipRetainPayInfo { [weak self] model in + guard let self = self else { return } + guard let model = model else { return } + let view = SRVipRetainAlert() + view.model = model + view.videoInfo = videoInfo + view.buyFinishHandle = { [weak self] in + guard let self = self else { return } + Task { + await self.requestShortDetail(indexPath: self.currentIndexPath) + } + } + view.show(in: SRTool.keyWindow) + } + } @objc private func handleRecommandTimer() { self.isShowRecommand = true diff --git a/SynthReel/Class/Player/VM/V/SRDetailRecommendCell.swift b/SynthReel/Class/Player/VM/V/SRDetailRecommendCell.swift new file mode 100644 index 0000000..4fdd924 --- /dev/null +++ b/SynthReel/Class/Player/VM/V/SRDetailRecommendCell.swift @@ -0,0 +1,79 @@ +// +// SRDetailRecommendCell.swift +// SynthReel +// +// Created by CSGY on 2025/11/27. +// Copyright © 2025 SR. All rights reserved. +// + +import UIKit +import FSPagerView +import JXPlayer + +class SRDetailRecommendCell: FSPagerViewCell { + + var model: SRShortModel? { + didSet { + player.coverImageView?.sr_setImage(model?.image_url) + player.setPlayUrl(url: model?.video_url ?? "") + } + } + + /// ① 新增背景图 + private lazy var bgImageView: UIImageView = { + let iv = UIImageView() + iv.image = .homeViralHitsCell + iv.contentMode = .scaleAspectFill + iv.clipsToBounds = true + return iv + }() + + + private lazy var player: JXPlayer = { + let player = JXPlayer(controlView: nil) + player.playerView = self.playerView + player.isLoop = true + return player + }() + + private lazy var playerView: UIView = { + let view = UIView() + view.isUserInteractionEnabled = false + return view + }() + + + + override init(frame: CGRect) { + super.init(frame: frame) + contentView.addSubview(bgImageView) + bgImageView.snp.makeConstraints { make in + make.edges.equalToSuperview() + } + + // 播放器画面 + contentView.addSubview(playerView) + playerView.snp.makeConstraints { make in +// make.edges.equalToSuperview() + make.edges.equalTo(UIEdgeInsets(top: 15, left: 8, bottom: 15, right: 8)) + } +// addSubview(playerView) +// +// playerView.snp.makeConstraints { make in +// make.edges.equalToSuperview() +// } + } + + @MainActor required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func play() { + self.player.start() + } + + func pause() { + self.player.pause() + } + +} diff --git a/SynthReel/Class/Player/VM/V/SRDetailRecommendview.swift b/SynthReel/Class/Player/VM/V/SRDetailRecommendview.swift new file mode 100644 index 0000000..31eac76 --- /dev/null +++ b/SynthReel/Class/Player/VM/V/SRDetailRecommendview.swift @@ -0,0 +1,175 @@ +// +// SRDetailRecommendview.swift +// SynthReel +// +// Created by CSGY on 2025/11/27. +// Copyright © 2025 SR. All rights reserved. +// + +import UIKit +import FSPagerView + +class SRDetailRecommendview: SRBaseAlert { + + var clickCloseButton: (() -> Void)? + var didSelectedVideo: ((_ model: SRShortModel) -> Void)? + + var dataArr: [SRShortModel] = [] { + didSet { + self.pagerView.reloadData() + + DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) { [weak self] in + self?.updateCurrentData() + } + } + } + + private weak var currentCell: SRDetailRecommendCell? { + didSet { + oldValue?.pause() + + currentCell?.play() + } + } + + private lazy var titleLabel: SRLabel = { + let label = SRLabel() + label.font = .font(ofSize: 16, weight: .init(900)) + label.textColors = [UIColor._4_CFFD_4.cgColor, UIColor._51_D_4_FF.cgColor] + label.textStartPoint = .init(x: 0.5, y: 0) + label.textEndPoint = .init(x: 0.5, y: 1) + label.text = "Keep the Drama Going".localized + return label + }() + + private lazy var bgView: UIImageView = { + let view = UIImageView(image: UIImage(named: "recommendBg")) + view.isUserInteractionEnabled = true + return view + }() + + private lazy var cancelButton: UIButton = { + let button = UIButton(type: .custom) + button.setImage(UIImage(named: "Close"), for: .normal) + button.addTarget(self, action: #selector(handleCancelButton), for: .touchUpInside) + return button + }() + + private lazy var pagerView: FSPagerView = { + let transformer = SRPagerViewTransformer(type: .linear) + transformer.minimumScale = 1 + + let view = FSPagerView() + view.itemSize = .init(width: 132, height: 185) + view.transformer = transformer + view.delegate = self + view.dataSource = self + view.isInfinite = true + view.interitemSpacing = 8 + view.register(SRDetailRecommendCell.self, forCellWithReuseIdentifier: "cell") + return view + }() + + override init(frame: CGRect) { + super.init(frame: frame) + contentWidth = UIScreen.width + self.closeButton.isHidden = true + + self.contentView.backgroundColor = .clear + self.contentView.layer.cornerRadius = 0 + self.contentView.layer.masksToBounds = false + + fa_setupLayout() + } + + @MainActor required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + @objc private func handleCancelButton() { + self.dismiss() + self.clickCloseButton?() + } + + ///更新当前数据 + private func updateCurrentData() { + guard let cell = self.pagerView.cellForItem(at: self.pagerView.currentIndex) as? SRDetailRecommendCell else { return } + + self.currentCell = cell +// let model = cell.model +// self.videoNameLabel.text = model?.name + } + +} + +extension SRDetailRecommendview { + + private func fa_setupLayout() { + contentView.addSubview(bgView) + contentView.addSubview(cancelButton) + bgView.addSubview(titleLabel) + bgView.addSubview(pagerView) + + + bgView.snp.makeConstraints { make in + make.left.right.equalToSuperview().inset(15) + make.top.equalToSuperview().offset(-25) +// make.bottom.e() + } + + titleLabel.snp.makeConstraints { make in + make.top.equalTo(17) + make.centerX.equalToSuperview() + } + + pagerView.snp.makeConstraints { make in + make.left.right.equalToSuperview().inset(10) + make.bottom.equalTo(-17) + make.top.equalTo(titleLabel.snp.bottom).offset(10) + } + + cancelButton.snp.makeConstraints { make in + make.centerX.equalToSuperview() + make.top.equalTo(bgView.snp.bottom).offset(30) + make.bottom.equalToSuperview() + } + + + } + +} + +//MARK: FSPagerViewDelegate FSPagerViewDataSource +extension SRDetailRecommendview: FSPagerViewDelegate, FSPagerViewDataSource { + + func pagerView(_ pagerView: FSPagerView, cellForItemAt index: Int) -> FSPagerViewCell { + let cell = pagerView.dequeueReusableCell(withReuseIdentifier: "cell", at: index) as! SRDetailRecommendCell + cell.model = self.dataArr[index] + return cell + } + + func numberOfItems(in pagerView: FSPagerView) -> Int { + return self.dataArr.count + } + + func pagerView(_ pagerView: FSPagerView, didSelectItemAt index: Int) { + didSelectedVideo?(self.dataArr[index]) + self.dismiss() + } + + func pagerViewDidEndDecelerating(_ pagerView: FSPagerView) { + self.updateCurrentData() + } + +} + +extension SRDetailRecommendview { + + class PageControl: UIPageControl{ + override func size(forNumberOfPages pageCount: Int) -> CGSize { + return .init(width: 4, height: 4) + } + } + +} diff --git a/SynthReel/Class/Player/VM/V/SREpSelectorCell.swift b/SynthReel/Class/Player/VM/V/SREpSelectorCell.swift new file mode 100644 index 0000000..bb17e5f --- /dev/null +++ b/SynthReel/Class/Player/VM/V/SREpSelectorCell.swift @@ -0,0 +1,99 @@ +// +// SREpSelectorCell.swift +// SynthReel +// +// Created by 湖北秦九 on 2025/11/19. +// Copyright © 2025 SR. All rights reserved. +// + +import UIKit +import SnapKit + +class SREpSelectorCell: UICollectionViewCell { + + + var model: SRVideoInfoModel? { + didSet { + numLabel.text = model?.episode + lockImageview.isHidden = !(model?.is_lock ?? true) + } + } + + var sr_isSelected: Bool = false { + didSet { + if sr_isSelected { + numLabel.textColors = [UIColor.srGreen.cgColor, UIColor.srBlue.cgColor] + boderView.isHidden = false + } else { + numLabel.textColors = [UIColor.white.cgColor, UIColor.white.cgColor] + boderView.isHidden = true + } + } + } + + lazy var numLabel: SRLabel = { + let label = SRLabel() + label.font = .font(ofSize: 14, weight: .regular) + label.textStartPoint = .init(x: 0.5, y: 0) + label.textEndPoint = .init(x: 0.5, y: 1) + return label + }() + + lazy var boderView: SRGradientView = { + let view = SRGradientView() + view.colors = [UIColor.srGreen.cgColor, UIColor.srBlue.cgColor] + view.startPoint = .init(x: 0.5, y: 0) + view.endPoint = .init(x: 0.5, y: 1) + view.layer.cornerRadius = 10 + view.layer.masksToBounds = true + return view + }() + + lazy var lockImageview = UIImageView.init(image: .lock) + + lazy var boderLayer: CAShapeLayer = { + let layer = CAShapeLayer() + return layer + }() + + override init(frame: CGRect) { + super.init(frame: frame) + contentView.layer.cornerRadius = 10 + contentView.layer.masksToBounds = true + contentView.backgroundColor = ._1_B_1_B_1_B + boderLayer.fillColor = contentView.backgroundColor?.cgColor // 设置为透明填充,实现镂空效果 + + + contentView.addSubview(boderView) + boderView.layer.addSublayer(boderLayer) + contentView.addSubview(numLabel) + contentView.addSubview(lockImageview) + + numLabel.snp.makeConstraints { make in + make.center.equalToSuperview() + } + + boderView.snp.makeConstraints { make in + make.edges.equalToSuperview() + } + + lockImageview.snp.makeConstraints { make in + make.right.top.equalToSuperview().inset(4) + make.width.height.equalTo(12) + } + } + + + override func layoutSubviews() { + super.layoutSubviews() + let size = self.bounds.size + let boderWidth: CGFloat = 1 + + boderLayer.path = UIBezierPath(roundedRect: .init(x: boderWidth, y: boderWidth, width: size.width - boderWidth * 2, height: size.height - boderWidth * 2), cornerRadius: 9.5).cgPath + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + +} diff --git a/SynthReel/Class/Player/VM/V/SREpSelectorView.swift b/SynthReel/Class/Player/VM/V/SREpSelectorView.swift new file mode 100644 index 0000000..5ca7123 --- /dev/null +++ b/SynthReel/Class/Player/VM/V/SREpSelectorView.swift @@ -0,0 +1,211 @@ +// +// SREpSelectorView.swift +// SynthReel +// +// Created by 湖北秦九 on 2025/11/18. +// Copyright © 2025 SR. All rights reserved. +// + +import UIKit +import HWPanModal +import SnapKit + +class SREpSelectorView: SRPanModalContentView { + + var didSelected: ((_ index: Int) -> Void)? + + var model: SRShortDetailModel? { + didSet { + coverImageView.sr_setImage(model?.shortPlayInfo?.image_url) + shortNameLabel.text = model?.shortPlayInfo?.name + desLabel.text = model?.shortPlayInfo?.sr_description + + subtitleLabel.text = "all_episodes_text".localizedReplace(text: "\(model?.shortPlayInfo?.episode_total ?? 0)") + + if let text = model?.shortPlayInfo?.category?.first, text.count > 0 { + cagetoryLabel.text = "#" + text + } else { + cagetoryLabel.text = "" + } + self.collectionView.reloadData() + } + } + var selectedIndex: Int = 0 { + didSet { + self.collectionView.reloadData() + } + } + + lazy var coverBgView = UIImageView(image: UIImage(named: "ep_cover_bg_image")) + lazy var coverImageView: UIImageView = { + let imageView = SRImageView() + imageView.layer.cornerRadius = 2 + return imageView + }() + + lazy var shortNameLabel: UILabel = { + let label = UILabel() + label.font = .font(ofSize: 15, weight: .semibold) + label.textColor = .srBlue + return label + }() + + lazy var cagetoryLabel: SRLabel = { + let label = SRLabel() + label.font = .font(ofSize: 12, weight: .regular) + label.textColors = [UIColor.srGreen.cgColor, UIColor.srBlue.cgColor] + label.textStartPoint = .init(x: 0.5, y: 0) + label.textEndPoint = .init(x: 0.5, y: 1) + return label + }() + + lazy var desLabel: UILabel = { + let label = UILabel() + label.font = .font(ofSize: 12, weight: .regular) + label.textColor = .A_6_A_6_A_6 + label.numberOfLines = 3 + return label + }() + + lazy var titleLabel: UILabel = { + let label = UILabel() + label.font = .font(ofSize: 15, weight: .medium) + label.textColor = .white + label.text = "Select Episode".localized + return label + }() + + lazy var subtitleLabel: UILabel = { + let label = UILabel() + label.font = .font(ofSize: 12, weight: .regular) + label.textColor = .CCCCCC + return label + }() + + lazy var collectionViewLayout: UICollectionViewFlowLayout = { + let itemWidth = (UIScreen.width - 30 - 40) / 5 + + let layout = UICollectionViewFlowLayout() + layout.minimumLineSpacing = 10 + layout.minimumInteritemSpacing = 10 + layout.sectionInset = .init(top: 0, left: 15, bottom: 0, right: 15) + layout.itemSize = .init(width: floor(itemWidth), height: 50) + return layout + }() + + lazy var collectionView: SRCollectionView = { + let collectionView = SRCollectionView(frame: .zero, collectionViewLayout: collectionViewLayout) + collectionView.delegate = self + collectionView.dataSource = self + collectionView.showsVerticalScrollIndicator = false + collectionView.contentInset = .init(top: 0, left: 0, bottom: UIScreen.safeBottom + 10, right: 0) + collectionView.register(SREpSelectorCell.self, forCellWithReuseIdentifier: "cell") + return collectionView + }() + + override init(frame: CGRect) { + super.init(frame: frame) + sr_setupUI() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + +} + + +extension SREpSelectorView { + + private func sr_setupUI() { + addSubview(coverBgView) + addSubview(coverImageView) + addSubview(shortNameLabel) + addSubview(cagetoryLabel) + addSubview(desLabel) + addSubview(titleLabel) + addSubview(subtitleLabel) + addSubview(collectionView) + + coverBgView.snp.makeConstraints { make in + make.left.equalToSuperview().offset(15) + make.top.equalToSuperview().offset(18) + } + + coverImageView.snp.makeConstraints { make in + make.center.equalTo(coverBgView) + make.width.equalTo(63) + make.height.equalTo(84) + } + + shortNameLabel.snp.makeConstraints { make in + make.left.equalTo(coverImageView.snp.right).offset(10) + make.top.equalToSuperview().offset(24) + make.right.lessThanOrEqualToSuperview().offset(-15) + } + + cagetoryLabel.snp.makeConstraints { make in + make.left.equalTo(shortNameLabel) + make.top.equalTo(shortNameLabel.snp.bottom).offset(8) + } + + desLabel.snp.makeConstraints { make in + make.left.equalTo(shortNameLabel) + make.right.lessThanOrEqualToSuperview().offset(-15) + make.top.equalTo(shortNameLabel.snp.bottom).offset(32) + } + + titleLabel.snp.makeConstraints { make in + make.left.equalToSuperview().offset(15) + make.top.equalTo(coverBgView.snp.bottom).offset(16) + } + + subtitleLabel.snp.makeConstraints { make in + make.centerY.equalTo(titleLabel) + make.left.equalTo(titleLabel.snp.right).offset(3) + } + + collectionView.snp.makeConstraints { make in + make.left.right.equalToSuperview() + make.top.equalToSuperview().offset(166) + make.bottom.equalToSuperview() + } + } + +} + +//MARK: UICollectionViewDelegate UICollectionViewDataSource +extension SREpSelectorView: UICollectionViewDelegate, UICollectionViewDataSource { + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { + let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! SREpSelectorCell + cell.model = self.model?.episodeList?[indexPath.row] + cell.sr_isSelected = indexPath.row == self.selectedIndex + return cell + } + + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { + return self.model?.episodeList?.count ?? 0 + } + + func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { + + guard let epList = self.model?.episodeList else { return } + if self.selectedIndex == indexPath.row { return } + + let lastIndex = indexPath.row - 1 + var lastIsLock = false + if lastIndex > 0 && lastIndex < epList.count { + let lastModel = epList[lastIndex] + lastIsLock = lastModel.is_lock ?? false + } + if lastIsLock { + SRToast.show(text: "buy_fail_toast_02".localized) + return + } + + self.didSelected?(indexPath.row) + Task { + await self.dismiss(animated: true) + } + } +} diff --git a/SynthReel/Class/Player/VM/V/SRProgressView.swift b/SynthReel/Class/Player/VM/V/SRProgressView.swift new file mode 100644 index 0000000..6e9976b --- /dev/null +++ b/SynthReel/Class/Player/VM/V/SRProgressView.swift @@ -0,0 +1,216 @@ +// +// SRProgressView.swift +// SynthReel +// +// Created by 湖北秦九 on 2025/11/18. +// Copyright © 2025 SR. All rights reserved. +// + +import UIKit +import YYText +import YYCategories + +class SRProgressView: UIView { + + ///滑动开始 + var panStart: (() -> Void)? + + ///滑动中 + var panChange: ((_ progress: CGFloat) -> Void)? + + ///滑动完成回调 + var panFinish: ((_ progress: CGFloat) -> Void)? + + var progress: CGFloat = 0 { + didSet { + if !isPaning { + setNeedsDisplay() + } + } + } + + ///用来记录滑动时的当前进度 + private var tempProgress: CGFloat = 0 + + ///滑动进度 + private var panProgress: CGFloat = 0 + + var progressColor = UIColor.white.withAlphaComponent(0.2) + var currentProgress = UIColor.white + + var lineWidth: CGFloat = 3 + + ///加载中状态 + var isLoading = false { + didSet { + if isLoading { + if gradientTimer == nil { + gradientTimer = Timer.scheduledTimer(timeInterval: 0.05, target: YYTextWeakProxy(target: self), selector: #selector(handleGradientTimer), userInfo: nil, repeats: true) + } + } else { + gradientTimer?.invalidate() + gradientTimer = nil + } + } + } + + var insets: UIEdgeInsets = .init(top: 0, left: 0, bottom: 0, right: 0) { + didSet { + self.invalidateIntrinsicContentSize() + setNeedsDisplay() + } + } + + private(set) lazy var panGesture: UIPanGestureRecognizer = { + let pan = UIPanGestureRecognizer(target: self, action: #selector(handlePanGesture(sender:))) + return pan + }() + + private(set) lazy var tagGesture: UITapGestureRecognizer = { + let tap = UITapGestureRecognizer(target: self, action: #selector(handleTapGesture(sender:))) + return tap + }() + + ///是否在滑动中 + private var isPaning: Bool = false + + private var gradientTimer: Timer? + + private var gradientValue: CGFloat = 0 + + override var intrinsicContentSize: CGSize { + return .init(width: UIScreen.width, height: lineWidth + insets.top + insets.bottom) + } + + override init(frame: CGRect) { + super.init(frame: frame) +// self.backgroundColor = progressColor + self.backgroundColor = .clear + + self.addGestureRecognizer(panGesture) + self.addGestureRecognizer(tagGesture) + + + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { + super.traitCollectionDidChange(previousTraitCollection) + setNeedsDisplay() + } + + @objc private func handleGradientTimer() { + gradientValue += 0.1 + if gradientValue > 1 { + gradientValue = 0 + } + setNeedsDisplay() + } + + override func draw(_ rect: CGRect) { + super.draw(rect) + guard let context = UIGraphicsGetCurrentContext() else { return } + let width = rect.width + + let progressX = insets.left + let progressY = insets.top + let progressWidth = width - insets.left - insets.right + + if isLoading, !isPaning { + // 定义颜色空间 + let colorSpace = CGColorSpaceCreateDeviceRGB() + let colors: [CGColor] = [ + UIColor.clear.cgColor, + UIColor.white.cgColor, + UIColor.clear.cgColor + ] + let locations: [CGFloat] = [0.0, gradientValue, 1.0] + + guard let gradient = CGGradient(colorsSpace: colorSpace, colors: colors as CFArray, locations: locations) else { + return + } + + let gradientRect = CGRect(x: progressX, + y: progressY, + width: progressWidth, + height: lineWidth) + + // 定义渐变的起点和终点 + let startPoint = CGPoint(x: rect.minX, y: rect.minY) + let endPoint = CGPoint(x: rect.maxX, y: rect.maxY) + + // 裁剪到渐变区域 + context.saveGState() + context.clip(to: gradientRect) + + // 绘制渐变 + context.drawLinearGradient(gradient, start: startPoint, end: endPoint, options: []) + } else { + var progress = self.progress + if self.isPaning { + progress = self.panProgress + } + let currentProgressWidth = progressWidth * progress + + ///绘制进度 + let progressPath = UIBezierPath(roundedRect: CGRect(x: progressX, y: progressY, width: progressWidth, height: lineWidth), cornerRadius: lineWidth / 2) + context.addPath(progressPath.cgPath) + context.setFillColor(progressColor.cgColor) + context.fillPath() + + ///绘制当前进度 + let currentPath = UIBezierPath(roundedRect: CGRect(x: progressX, y: progressY, width: progressWidth * progress, height: lineWidth), cornerRadius: lineWidth / 2) + context.addPath(currentPath.cgPath) + context.setFillColor(currentProgress.cgColor) + context.fillPath() + + ///绘制一个点 + let path = UIBezierPath(arcCenter: .init(x: currentProgressWidth + progressX, y: progressY + lineWidth / 2), radius: 3, startAngle: 0, endAngle: CGFloat.pi * 2, clockwise: true) + context.addPath(path.cgPath) + context.setFillColor(currentProgress.cgColor) + context.fillPath() + } + + + } + +} + +extension SRProgressView { + @objc func handlePanGesture(sender: UIPanGestureRecognizer) { + + switch sender.state { + case .began: + self.isPaning = true + self.tempProgress = self.progress + sender.setTranslation(CGPoint(x: 0, y: 0), in: self) + self.panStart?() + + case .changed: + let point = sender.translation(in: self) + let offsetX = point.x / (self.width - self.insets.left - self.insets.right) + self.panProgress = self.tempProgress + offsetX + if self.panProgress < 0 { + self.panProgress = 0 + } + self.panChange?(self.panProgress) + setNeedsDisplay() + + default: + self.isPaning = false + self.panFinish?(self.panProgress) + + self.panProgress = 0 + } + } + + @objc func handleTapGesture(sender: UITapGestureRecognizer) { + let point = sender.location(in: self) + let offsetX = (point.x - self.insets.left) / (self.width - self.insets.left - self.insets.right) + self.panFinish?(offsetX) + } +} diff --git a/SynthReel/Class/Player/VM/V/SRRecommendPlayerCell.swift b/SynthReel/Class/Player/VM/V/SRRecommendPlayerCell.swift new file mode 100644 index 0000000..3b77847 --- /dev/null +++ b/SynthReel/Class/Player/VM/V/SRRecommendPlayerCell.swift @@ -0,0 +1,26 @@ +// +// SRRecommendPlayerCell.swift +// SynthReel +// +// Created by 湖北秦九 on 2025/11/20. +// Copyright © 2025 SR. All rights reserved. +// + +import UIKit +import JXPlayer + +class SRRecommendPlayerCell: JXPlayerListCell { + + override var ControlViewClass: JXPlayerListControlView.Type { + return SRRecommendPlayerControlView.self + } + + override var model: Any? { + didSet { + let model = self.model as? SRShortModel + let videoInfo = model?.video_info + self.player.setPlayUrl(url: videoInfo?.video_url ?? "") + self.player.coverImageView?.sr_setImage(model?.image_url) + } + } +} diff --git a/SynthReel/Class/Player/VM/V/SRRecommendPlayerControlView.swift b/SynthReel/Class/Player/VM/V/SRRecommendPlayerControlView.swift new file mode 100644 index 0000000..3eec91e --- /dev/null +++ b/SynthReel/Class/Player/VM/V/SRRecommendPlayerControlView.swift @@ -0,0 +1,226 @@ +// +// SRRecommendPlayerControlView.swift +// SynthReel +// +// Created by 湖北秦九 on 2025/11/20. +// Copyright © 2025 SR. All rights reserved. +// + +import UIKit +import JXPlayer +import SnapKit +import YYCategories + +class SRRecommendPlayerControlView: JXPlayerListControlView { + + override var viewModel: JXPlayerListViewModel? { + didSet { + self.viewModel?.addObserver(self, forKeyPath: "isPlaying", context: nil) + } + } + + override var model: Any? { + didSet { + let model = model as! SRShortModel + + shortNameLabel.text = model.name + + stackView.sr_removeAllArrangedSubview() + if let text = model.category?.first, text.count > 0 { + categoryLabel.text = "#" + text + stackView.addArrangedSubview(categoryLabel) + } + + if let text = model.sr_description, text.count > 0 { + desLabel.text = text + stackView.addArrangedSubview(desLabel) + } + + } + } + + override var isCurrent: Bool { + didSet { + updatePlayerViewStatus() + } + } + + lazy var controlerView: UIImageView = { + let imageView = UIImageView(image: UIImage(named: "short_progress_bg_image")) + imageView.isUserInteractionEnabled = true + return imageView + }() + + lazy var shortNameLabel: UILabel = { + let label = UILabel() + label.font = .font(ofSize: 14, weight: .semibold) + label.textColor = .srBlue + return label + }() + + lazy var stackView: UIStackView = { + let view = UIStackView() + view.axis = .vertical + view.spacing = 8 + return view + }() + + lazy var categoryLabel: SRLabel = { + let label = SRLabel() + label.font = .font(ofSize: 11, weight: .regular) + label.textColors = [UIColor.srGreen.cgColor, UIColor.srBlue.cgColor] + label.textStartPoint = .init(x: 0.5, y: 0) + label.textEndPoint = .init(x: 0.5, y: 1) + return label + }() + + lazy var desLabel: UILabel = { + let label = UILabel() + label.font = .font(ofSize: 11, weight: .regular) + label.textColor = .A_6_A_6_A_6 + label.numberOfLines = 2 + return label + }() + + lazy var epBgView: UIView = { + let view = SRGradientView() + view.colors = [UIColor._51_D_4_FF.withAlphaComponent(0.5).cgColor, UIColor._4_CFFD_4.withAlphaComponent(0.1).cgColor] + view.startPoint = .init(x: 0, y: 0.5) + view.endPoint = .init(x: 1, y: 0.5) + view.layer.cornerRadius = 2 + view.layer.masksToBounds = true + let tap = UITapGestureRecognizer { [weak self] _ in + guard let self = self else { return } + let vc = SRDetailPlayerViewController() + vc.shortId = (self.model as? SRShortModel)?.short_play_id + self.viewController?.navigationController?.pushViewController(vc, animated: true) + } + view.addGestureRecognizer(tap) + return view + }() + + lazy var epIconImageView: UIImageView = { + let imageView = UIImageView(image: UIImage(named: "ep_icon_02")) + imageView.setContentHuggingPriority(.required, for: .horizontal) + imageView.setContentCompressionResistancePriority(.required, for: .horizontal) + return imageView + }() + + lazy var epTextLabel: UILabel = { + let label = UILabel() + label.font = .font(ofSize: 12, weight: .regular) + label.textColor = .white + label.text = "recommend_ep_text".localized + return label + }() + + lazy var indicatorImageView: UIImageView = { + let imageView = UIImageView(image: UIImage(named: "arrow_right_icon_02")) + imageView.setContentHuggingPriority(.required, for: .horizontal) + imageView.setContentCompressionResistancePriority(.required, for: .horizontal) + return imageView + }() + + lazy var playerImageView: UIImageView = { + let imageView = UIImageView(image: UIImage(named: "play_icon_02")) + imageView.isHidden = true + return imageView + }() + + deinit { + self.viewModel?.removeObserver(self, forKeyPath: "isPlaying") + } + + override init(frame: CGRect) { + super.init(frame: frame) + sr_setupUI() + + let tap = UITapGestureRecognizer { [weak self] _ in + guard let self = self else { return } + self.viewModel?.userSwitchPlayAndPause() + } + self.addGestureRecognizer(tap) + } + + @MainActor required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { + if keyPath == "isPlaying" { + updatePlayerViewStatus() + } + } + + + func updatePlayerViewStatus() { + if self.viewModel?.isPlaying == true || !isCurrent { + playerImageView.isHidden = true + } else { + playerImageView.isHidden = false + } + + } + +} + +extension SRRecommendPlayerControlView { + + private func sr_setupUI() { + addSubview(controlerView) + controlerView.addSubview(shortNameLabel) + controlerView.addSubview(stackView) + controlerView.addSubview(epBgView) + epBgView.addSubview(epIconImageView) + epBgView.addSubview(epTextLabel) + epBgView.addSubview(indicatorImageView) + addSubview(playerImageView) + + controlerView.snp.makeConstraints { make in + make.left.equalToSuperview().offset(15) + make.centerX.equalToSuperview() + make.bottom.equalToSuperview().offset(-10) + } + + shortNameLabel.snp.makeConstraints { make in + make.left.equalToSuperview().offset(12) + make.right.lessThanOrEqualToSuperview().offset(-12) + make.top.equalToSuperview().offset(13) + } + + stackView.snp.makeConstraints { make in + make.left.equalToSuperview().offset(12) + make.right.lessThanOrEqualToSuperview().offset(-12) + make.top.equalTo(shortNameLabel.snp.bottom).offset(8) + make.bottom.equalToSuperview().offset(-52) + } + + epBgView.snp.makeConstraints { make in + make.left.equalToSuperview().offset(12) + make.right.equalToSuperview().offset(-12) + make.bottom.equalToSuperview().offset(-18) + make.height.equalTo(26) + } + + epIconImageView.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.left.equalToSuperview().offset(8) + } + + epTextLabel.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.left.equalTo(epIconImageView.snp.right).offset(4) + make.right.lessThanOrEqualTo(self.indicatorImageView.snp.left).offset(-5) + } + + indicatorImageView.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.right.equalToSuperview().offset(-12) + } + + playerImageView.snp.makeConstraints { make in + make.center.equalToSuperview() + } + } + +} diff --git a/SynthReel/Class/Player/VM/V/SRShortDetailControlView.swift b/SynthReel/Class/Player/VM/V/SRShortDetailControlView.swift new file mode 100644 index 0000000..d2f0f9b --- /dev/null +++ b/SynthReel/Class/Player/VM/V/SRShortDetailControlView.swift @@ -0,0 +1,240 @@ +// +// SRShortDetailControlView.swift +// SynthReel +// +// Created by 湖北秦九 on 2025/11/18. +// Copyright © 2025 SR. All rights reserved. +// + +import UIKit +import JXPlayer +import SnapKit + +class SRShortDetailControlView: JXPlayerListControlView { + + var sr_viewModel: SRShortPlayerViewModel? { + return self.viewModel as? SRShortPlayerViewModel + } + + override var viewModel: JXPlayerListViewModel? { + didSet { + self.viewModel?.addObserver(self, forKeyPath: "isPlaying", context: nil) + } + } + + var shortModel: SRShortModel? { + didSet { + titleLabel.text = shortModel?.name + collectButton.isSelected = shortModel?.is_collect == true + } + } + + override var durationTime: TimeInterval { + didSet { + updateProgress() + let (_, m, s) = Int(durationTime).formatTimeGroup() + totalTimeLabel.text = "\(m):\(s)" + } + } + + override var currentTime: TimeInterval { + didSet { + updateProgress() + let (_, m, s) = Int(currentTime).formatTimeGroup() + currentTimeLabel.text = "\(m):\(s)" + } + } + + override var isLoading: Bool { + didSet { + progressView.isLoading = isLoading + } + } + + lazy var progressBgView: UIImageView = { + let imageView = UIImageView(image: UIImage(named: "short_progress_bg_image")) + imageView.isUserInteractionEnabled = true + return imageView + }() + + lazy var titleLabel: UILabel = { + let label = UILabel() + label.font = .font(ofSize: 14, weight: .medium) + label.textColor = .srBlue + return label + }() + + lazy var progressView: SRProgressView = { + let view = SRProgressView() + view.insets = .init(top: 10, left: 5, bottom: 10, right: 5) + view.panFinish = { [weak self] progress in + guard let self = self else { return } + self.viewModel?.seekTo(Float(progress)) + } + return view + }() + + lazy var totalTimeLabel: UILabel = { + let label = UILabel() + label.font = .font(ofSize: 10, weight: .regular) + label.textColor = .DFDFDF + label.text = "00:00" + return label + }() + + lazy var currentTimeLabel: UILabel = { + let label = UILabel() + label.font = .font(ofSize: 10, weight: .regular) + label.textColor = .DFDFDF + label.text = "00:00" + return label + }() + + lazy var epButton: UIButton = { + let button = UIButton(type: .custom, primaryAction: UIAction(handler: { [weak self] _ in + guard let self = self else { return } + self.sr_viewModel?.onEpSelectorView() + })) + button.setImage(UIImage(named: "ep_icon_01"), for: .normal) + return button + }() + + lazy var collectButton: UIButton = { + let button = UIButton(type: .custom, primaryAction: UIAction(handler: { [weak self] _ in + guard let self = self else { return } + guard let shortId = self.shortModel?.short_play_id else { return } + let videoId = (self.model as? SRVideoInfoModel)?.short_play_video_id + let isCollect = !(self.shortModel?.is_collect ?? false) + + Task { + await SRShortApi.requestShortCollect(shortId: shortId, videoId: videoId, isCollect: isCollect) + } + })) + button.setImage(UIImage(named: "collect_icon_01"), for: .normal) + button.setImage(UIImage(named: "collect_icon_01_selected"), for: .selected) + button.setImage(UIImage(named: "collect_icon_01_selected"), for: [.selected, .highlighted]) + return button + }() + + + lazy var playerImageView: UIImageView = { + let imageView = UIImageView(image: UIImage(named: "play_icon_02")) + imageView.isHidden = true + return imageView + }() + + deinit { + self.viewModel?.removeObserver(self, forKeyPath: "isPlaying") + NotificationCenter.default.removeObserver(self) + } + + override init(frame: CGRect) { + super.init(frame: frame) + NotificationCenter.default.addObserver(self, selector: #selector(updateShortCollectStateNotification), name: SRShortApi.updateShortCollectStateNotification, object: nil) + + let tap = UITapGestureRecognizer { [weak self] _ in + guard let self = self else { return } + self.viewModel?.userSwitchPlayAndPause() + } + self.addGestureRecognizer(tap) + + sr_setupUI() + } + + @MainActor required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + @objc private func updateShortCollectStateNotification(sender: Notification) { + guard let userInfo = sender.userInfo else { return } + guard let shortId = userInfo["id"] as? String else { return } + guard let state = userInfo["state"] as? Bool else { return } + guard shortId == self.shortModel?.short_play_id else { return } + self.shortModel?.is_collect = state + + collectButton.isSelected = state + } + + private func updateProgress() { + guard durationTime > 0 else { + progressView.progress = 0 + return + } + progressView.progress = currentTime / durationTime + } + + override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { + if keyPath == "isPlaying" { + updatePlayerViewStatus() + } + } + + + func updatePlayerViewStatus() { + if self.viewModel?.isPlaying == true || !isCurrent { + playerImageView.isHidden = true + } else { + playerImageView.isHidden = false + } + + } + +} + +extension SRShortDetailControlView { + + private func sr_setupUI() { + addSubview(progressBgView) + progressBgView.addSubview(titleLabel) + progressBgView.addSubview(progressView) + progressBgView.addSubview(totalTimeLabel) + progressBgView.addSubview(currentTimeLabel) + addSubview(epButton) + addSubview(collectButton) + addSubview(playerImageView) + + progressBgView.snp.makeConstraints { make in + make.left.equalToSuperview().offset(15) + make.centerX.equalToSuperview() + make.bottom.equalToSuperview().offset(-(UIScreen.safeBottom + 5)) + make.height.equalTo(88) + } + + titleLabel.snp.makeConstraints { make in + make.centerY.equalTo(progressBgView.snp.top).offset(23) + make.left.equalToSuperview().offset(9) + make.right.lessThanOrEqualToSuperview().offset(-9) + } + + progressView.snp.makeConstraints { make in + make.left.equalToSuperview().offset(4) + make.right.equalToSuperview().offset(-6) + make.bottom.equalToSuperview().offset(-30) + } + + totalTimeLabel.snp.makeConstraints { make in + make.right.equalToSuperview().offset(-11) + make.bottom.equalToSuperview().offset(-24) + } + + currentTimeLabel.snp.makeConstraints { make in + make.left.equalToSuperview().offset(9) + make.bottom.equalToSuperview().offset(-24) + } + + epButton.snp.makeConstraints { make in + make.right.equalToSuperview().offset(-15) + make.bottom.equalTo(progressBgView.snp.top).offset(-44) + } + + collectButton.snp.makeConstraints { make in + make.centerX.equalTo(epButton) + make.bottom.equalTo(epButton.snp.top).offset(-25) + } + + playerImageView.snp.makeConstraints { make in + make.center.equalToSuperview() + } + } + +} diff --git a/SynthReel/Class/Player/VM/V/SRShortDetailPlayerCell.swift b/SynthReel/Class/Player/VM/V/SRShortDetailPlayerCell.swift new file mode 100644 index 0000000..c9e553e --- /dev/null +++ b/SynthReel/Class/Player/VM/V/SRShortDetailPlayerCell.swift @@ -0,0 +1,88 @@ +// +// SRShortDetailPlayerCell.swift +// SynthReel +// +// Created by 湖北秦九 on 2025/11/18. +// Copyright © 2025 SR. All rights reserved. +// + +import UIKit +import JXPlayer + +class SRShortDetailPlayerCell: JXPlayerListCell { + + override var ControlViewClass: JXPlayerListControlView.Type { + return SRShortDetailControlView.self + } + + var sr_controlView: SRShortDetailControlView { + return self.controlView as! SRShortDetailControlView + } + + var sr_viewModel: SRShortPlayerViewModel? { + return self.viewModel as? SRShortPlayerViewModel + } + + var hasLastEpisodeUnlocked: Bool = false { + didSet { + self.lockView.hasLastEpisodeUnlocked = hasLastEpisodeUnlocked + } + } + + private lazy var lockView: SRVideoLockView = { + let view = SRVideoLockView() + view.clickUnlockButton = { [weak self] in + Task { + await self?.sr_viewModel?.handleUnlockVideo() + } + } + + view.adUnlockButton = { [weak self] in + Task { + await self?.sr_viewModel?.handleAdUnlockVideo() + } + } + return view + }() + + override var model: Any? { + didSet { + let model = self.model as? SRVideoInfoModel + self.player.setPlayUrl(url: model?.video_url ?? "") + + self.lockView.isHidden = !(model?.is_lock ?? true) + lockView.videoInfo = model + } + } + + override init(frame: CGRect) { + super.init(frame: frame) + + sr_setupLayout() + } + + @MainActor required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + var shortModel: SRShortModel? { + didSet { + self.sr_controlView.shortModel = shortModel + self.player.coverImageView?.sr_setImage(shortModel?.image_url) + } + } + +} + + +extension SRShortDetailPlayerCell { + + private func sr_setupLayout() { + addSubview(lockView) + + lockView.snp.makeConstraints { make in + make.edges.equalToSuperview() + } + } + +} diff --git a/SynthReel/Class/Player/VM/V/SRVideoLockView.swift b/SynthReel/Class/Player/VM/V/SRVideoLockView.swift new file mode 100644 index 0000000..c90f6d2 --- /dev/null +++ b/SynthReel/Class/Player/VM/V/SRVideoLockView.swift @@ -0,0 +1,120 @@ +// +// SRVideoLockView.swift +// SynthReel +// +// Created by CSGY on 2025/12/1. +// Copyright © 2025 SR. All rights reserved. +// + +import UIKit + +class SRVideoLockView: UIView { + + var clickUnlockButton: (() -> Void)? + + var adUnlockButton: (() -> Void)? + + var videoInfo: SRVideoInfoModel? { + didSet { + unlockButton.setNeedsUpdateConfiguration() + } + } + + var hasLastEpisodeUnlocked = false { + didSet { + unlockButton.setNeedsUpdateConfiguration() + } + } + + lazy var unlockStackView: UIStackView = { + let stack = UIStackView() + stack.axis = .vertical + stack.spacing = 12 + stack.distribution = .fillEqually + return stack + }() + + private lazy var unlockButton: UIButton = { + var config = UIButton.Configuration.plain() + config.image = UIImage(named: "lock") + config.imagePadding = 6 + // 设置背景图片(使用 UIImage 作为背景) + config.background.image = UIImage(named: "unlockButtonBg") + config.background.imageContentMode = .scaleToFill // 让背景图铺满按钮 + + let button = UIButton(configuration: config, primaryAction: UIAction(handler: { [weak self] _ in + guard let self = self else { return } + self.clickUnlockButton?() + })) + button.configurationUpdateHandler = { [weak self] button in + guard let self = self else { return } + let attributeContainer = AttributeContainer([ + .font : UIFont.font(ofSize: 14, weight: .medium), + .foregroundColor : UIColor._51_D_4_FF + ]) + if hasLastEpisodeUnlocked { + button.configuration?.attributedTitle = .init("video_lock_tip_text".localized, attributes: attributeContainer) + } else { + button.configuration?.attributedTitle = .init("synthreel_unlocking_coins_notice".localizedReplace(text: "\(videoInfo?.coins ?? 0)"), attributes: attributeContainer) + } + } + return button + }() + + private lazy var adlockButton: UIButton = { + var config = UIButton.Configuration.plain() + config.image = UIImage(named: "adlock") + config.imagePadding = 6 + // 设置背景图片(使用 UIImage 作为背景) + config.background.image = UIImage(named: "unlockButtonBg") + config.background.imageContentMode = .scaleToFill // 让背景图铺满按钮 + let attr = AttributeContainer([ + .font: UIFont.font(ofSize: 14, weight: .medium), + .foregroundColor: UIColor.white + ]) + config.attributedTitle = AttributedString("Watch 2ads to unlock".localized, attributes: attr) + + let button = UIButton(configuration: config, primaryAction: UIAction(handler: { [weak self] _ in + guard let self = self else { return } + self.adUnlockButton?() + })) + return button + }() + + override init(frame: CGRect) { + super.init(frame: frame) + backgroundColor = ._000000.withAlphaComponent(0.6) + sr_setupLayout() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + +} + +extension SRVideoLockView { + + private func sr_setupLayout() { + addSubview(unlockStackView) + + unlockStackView.addArrangedSubview(unlockButton) + unlockStackView.addArrangedSubview(adlockButton) + + + unlockStackView.snp.makeConstraints { make in + make.left.equalToSuperview().offset(45) + make.right.equalToSuperview().offset(-45) + make.height.equalTo(43 * 2 + 30) // 两个按钮 + 间距 + make.centerY.equalToSuperview() // 可自定义 + } + + unlockButton.snp.makeConstraints { make in + make.height.equalTo(43) + } + + adlockButton.snp.makeConstraints { make in + make.height.equalTo(43) + } + } +} diff --git a/SynthReel/Class/Player/VM/V/SRVideoRechargeView.swift b/SynthReel/Class/Player/VM/V/SRVideoRechargeView.swift new file mode 100644 index 0000000..9730eb9 --- /dev/null +++ b/SynthReel/Class/Player/VM/V/SRVideoRechargeView.swift @@ -0,0 +1,320 @@ +// +// SRVideoRechargeView.swift +// SynthReel +// +// Created by CSGY on 2025/12/5. +// Copyright © 2025 SR. All rights reserved. +// + +import UIKit + +class SRVideoRechargeView: SRPanModalContentView { + + var buyFinishHandle: (() -> Void)? + var didDismissHandle: (() -> Void)? + + var model: SRPayDateModel? { + didSet { + self.stackView.sr_removeAllArrangedSubview() + self.vipView.dataArr = model?.list_sub_vip ?? [] + self.coinsView.setDataArr(model?.list_coins ?? []) + + if let sort = model?.sort, sort.count > 0 { + sort.forEach { + if $0 == .vip, model?.list_sub_vip?.isEmpty == false { + self.stackView.addArrangedSubview(self.vipView) + } else if $0 == .coin, model?.list_coins?.isEmpty == false { + self.stackView.addArrangedSubview(self.coinsView) + } + } + } else { + if model?.list_sub_vip?.isEmpty == false { + self.stackView.addArrangedSubview(self.vipView) + } + if model?.list_coins?.isEmpty == false { + self.stackView.addArrangedSubview(self.coinsView) + } + } + + self.stackView.addArrangedSubview(self.tipView) + + self.setNeedsLayoutUpdate() + } + } + + var videoInfo: SRVideoInfoModel? { + didSet { + self.coinsView.videoId = videoInfo?.short_play_video_id + self.coinsView.shortPlayId = videoInfo?.short_play_id + self.vipView.videoId = videoInfo?.short_play_video_id + self.vipView.shortPlayId = videoInfo?.short_play_id + videoCoinsView.coins = videoInfo?.coins ?? 0 + + self.requestRestore() + } + } + + private lazy var closeButton: UIButton = { + let button = UIButton(type: .custom, primaryAction: UIAction(handler: { [weak self] _ in + guard let self = self else { return } +// FAStatAPI.requestEventStat(orderCode: nil, shortPlayId: self.videoInfo?.short_play_id, videoId: self.videoInfo?.short_play_video_id, eventKey: .payTemplateDialog, errorMsg: nil, otherParamenters: [ +// "event_name" : "pay cancel" +// ]) + Task { + await self.dismiss(animated: true) + } + self.didDismissHandle?() + })) + button.setImage(UIImage(named: "Close"), for: .normal) + return button + }() + + private lazy var scrollView: SRScrollView = { + let scrollView = SRScrollView() +// scrollView.clipsToBounds = false + return scrollView + }() + + private lazy var stackView: UIStackView = { + let view = UIStackView() + view.axis = .vertical + view.spacing = 18 + return view + }() + + private lazy var coinsView: SRStoreCoinsView = { + let view = SRStoreCoinsView() + view.buyFinishHandle = { [weak self] in + self?.buyFinishHandle?() + Task { + await self?.dismiss(animated: true) + } + } + return view + }() + + private lazy var vipView: SRStoreVipView = { + let view = SRStoreVipView() + view.buyFinishHandle = { [weak self] in + self?.buyFinishHandle?() + Task { + await self?.dismiss(animated: true) + } + } + return view + }() + + private lazy var videoCoinsView: SRVideoRechargeView.CoinsView = { + let view = SRVideoRechargeView.CoinsView() + view.title = "synthreel_price".localized + ":" + return view + }() + + private lazy var totalCoinsView: SRVideoRechargeView.CoinsView = { + let view = SRVideoRechargeView.CoinsView() + view.title = "synthreel_balance".localized + ":" + view.coins = SRLogin.manager.userInfo?.totalCoins ?? 0 + return view + }() + + private lazy var tipView: UIView = { + let view = UIView() + view.addSubview(tipTitleLabel) + view.addSubview(tipTextLabel) + + tipTitleLabel.snp.makeConstraints { make in + make.top.equalToSuperview().offset(7) + make.left.equalToSuperview().offset(16) + } + + tipTextLabel.snp.makeConstraints { make in + make.left.equalToSuperview().offset(16) + make.right.lessThanOrEqualToSuperview().offset(-16) + make.top.equalTo(tipTitleLabel.snp.bottom).offset(4) + make.bottom.equalToSuperview() + } + return view + }() + + private lazy var tipTitleLabel: UILabel = { + let label = UILabel() + label.font = .font(ofSize: 12, weight: .medium) + label.textColor = .white + label.text = "synthreel_tips".localized + return label + }() + + private lazy var tipTextLabel: UILabel = { + let label = UILabel() + label.font = .font(ofSize: 10, weight: .regular) + label.textColor = .white + label.text = "store_tips".localized + label.numberOfLines = 0 + return label + }() + + deinit { + NotificationCenter.default.removeObserver(self) + } + + override init(frame: CGRect) { + super.init(frame: frame) + NotificationCenter.default.addObserver(self, selector: #selector(userInfoUpdateNotification), name: SRLogin.userInfoUpdateNotification, object: nil) + self.contentHeight = UIScreen.height - UIScreen.safeTop +// self.backgroundColor = ._000000.withAlphaComponent(0.6) + self.backgroundColor = .clear + self.mainScrollView = self.scrollView + fa_setupLayout() + } + + @MainActor required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + @objc private func userInfoUpdateNotification() { + totalCoinsView.coins = SRLogin.manager.userInfo?.totalCoins ?? 0 + } + + override func present(in view: UIView?) { + super.present(in: view) +// self.hw_contentView.sr_addEffectView(style: .dark) +// self.hw_contentView.sr_setRoundedCorner(topLeft: 24, topRight: 24, bottomLeft: 0, bottomRight: 0) + } + + override func allowsTapBackgroundToDismiss() -> Bool { + return false + } +} + +extension SRVideoRechargeView { + + private func fa_setupLayout() { + addSubview(closeButton) + addSubview(videoCoinsView) + addSubview(totalCoinsView) +// addSubview(titleLabel) + addSubview(scrollView) + scrollView.addSubview(stackView) + + closeButton.snp.makeConstraints { make in + make.right.equalToSuperview().offset(-16) + make.top.equalToSuperview().offset(12) + } + + videoCoinsView.snp.makeConstraints { make in + make.centerY.equalTo(closeButton) + make.left.equalToSuperview().offset(16) + } + + totalCoinsView.snp.makeConstraints { make in + make.centerY.equalTo(closeButton) + make.left.equalTo(videoCoinsView.snp.right).offset(15) + } + +// titleLabel.snp.makeConstraints { make in +// make.left.equalToSuperview().offset(16) +// make.top.equalToSuperview().offset(39) +// } + + scrollView.snp.makeConstraints { make in + make.left.right.equalToSuperview() + make.top.equalToSuperview().offset(74) + make.bottom.equalToSuperview() + } + + stackView.snp.makeConstraints { make in + make.left.centerX.equalToSuperview() + make.top.equalToSuperview() + make.bottom.equalToSuperview().offset(-(UIScreen.safeBottom + 10)) + } + } + +} + +extension SRVideoRechargeView { + + @objc private func requestRestore() { + guard let shortPlayId = self.videoInfo?.short_play_id, let videoId = self.videoInfo?.short_play_video_id else { return } + + SRIapManager.manager.restore(isLoding: false, shortPlayId: shortPlayId, videoId: videoId) { [weak self] isFinish, buyType in + if isFinish { + Task { + await SRLogin.manager.requestUserInfo(completer: nil) + self?.buyFinishHandle?() + await self?.dismiss(animated: true) + } + } + } + } + +} + + +extension SRVideoRechargeView { + + class CoinsView: UIView { + var title: String? { + didSet { + titleLabel.text = title + } + } + + var coins: Int = 0 { + didSet { + coinsLabel.text = "\(coins)" + } + } + + private lazy var titleLabel: UILabel = { + let label = UILabel() + label.font = .font(ofSize: 14, weight: .regular) + label.textColor = .white + return label + }() + + private lazy var iconImageView: UIImageView = { + let imageView = UIImageView(image: UIImage(named: "bigCoins")) + return imageView + }() + + private lazy var coinsLabel: UILabel = { + let label = UILabel() + label.font = .font(ofSize: 14, weight: .bold) + label.textColor = .white + return label + }() + + override init(frame: CGRect) { + super.init(frame: frame) + + addSubview(titleLabel) + addSubview(iconImageView) + addSubview(coinsLabel) + + titleLabel.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.bottom.lessThanOrEqualToSuperview() + make.left.equalToSuperview() + } + + iconImageView.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.bottom.lessThanOrEqualToSuperview() + make.left.equalTo(titleLabel.snp.right).offset(6) + } + + coinsLabel.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.bottom.lessThanOrEqualToSuperview() + make.left.equalTo(iconImageView.snp.right).offset(4) + make.right.equalToSuperview() + } + } + + @MainActor required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + } + +} diff --git a/SynthReel/Class/Player/VM/V/SRVipRetainAlert.swift b/SynthReel/Class/Player/VM/V/SRVipRetainAlert.swift new file mode 100644 index 0000000..060a167 --- /dev/null +++ b/SynthReel/Class/Player/VM/V/SRVipRetainAlert.swift @@ -0,0 +1,313 @@ +// +// SRVipRetainAlert.swift +// SynthReel +// +// Created by 澜声世纪 on 2025/12/8. +// Copyright © 2025 SR. All rights reserved. +// + +import UIKit + +class SRVipRetainAlert: SRBaseAlert { + + var buyFinishHandle: (() -> Void)? + + var model: SRPayAlertModel? { + didSet { + let payItem = model?.info + titleView.text = payItem?.getVipTitle() + itemView.payItem = payItem + } + } + + var videoInfo: SRVideoInfoModel? + + + private lazy var titleView: SRLabel = { + let label = SRLabel() + label.font = .font(ofSize: 24, weight: .init(900)) + label.text = "fableo_weekly_refill".localized.uppercased() + label.textColors = [UIColor._4_CFFD_4.cgColor, UIColor._51_D_4_FF.cgColor] + label.textStartPoint = .init(x: 0.5, y: 0) + label.textEndPoint = .init(x: 0.5, y: 1) + return label + }() + + private lazy var itemView: ItemView = { + let view = ItemView() + return view + }() + + private lazy var textLabel: UILabel = { + let label = UILabel() + label.font = .font(ofSize: 18, weight: .bold).withBoldItalic() + label.textColor = .white + label.text = "vip_retain_alert_text".localized + label.textAlignment = .center + label.numberOfLines = 0 + return label + }() + + private lazy var buyButton: UIButton = { + let button = UIButton(type: .custom, primaryAction: UIAction(handler: { [weak self] _ in + guard let self = self else { return } + guard let payItem = self.model?.info else { return } + SRIapManager.manager.start(model: payItem, shortPlayId: self.videoInfo?.short_play_id, videoId: self.videoInfo?.short_play_video_id) { [weak self] finish in + guard let self = self else { return } + if finish { + Task { + await SRAccountManager.manager.updateUserInfo() + self.dismiss() + self.buyFinishHandle?() + } + } + } + + })) + + button.setTitle("synthreel_buy_now".localized, for: .normal) + button.setTitleColor(.white, for: .normal) + button.titleLabel?.font = .font(ofSize: 14, weight: .bold) + button.setBackgroundImage(.vipRetainBg, for: .normal) + return button + }() + + override init(frame: CGRect) { + super.init(frame: frame) + contentWidth = UIScreen.width - 55 + contentView.backgroundColor = .clear + + fa_setupLayout() + } + + @MainActor required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + +} + +extension SRVipRetainAlert { + + private func fa_setupLayout() { + contentView.addSubview(titleView) + contentView.addSubview(itemView) + contentView.addSubview(textLabel) + contentView.addSubview(buyButton) + + titleView.snp.makeConstraints { make in + make.top.equalToSuperview() + make.centerX.equalToSuperview() + } + + itemView.snp.makeConstraints { make in + make.left.right.equalToSuperview() + make.top.equalTo(titleView.snp.bottom).offset(12) + make.height.equalTo(84) + } + + textLabel.snp.makeConstraints { make in + make.centerX.equalToSuperview() + make.right.lessThanOrEqualToSuperview().offset(-10) + make.top.equalTo(itemView.snp.bottom).offset(12) + } + + buyButton.snp.makeConstraints { make in + make.left.equalToSuperview().offset(20) + make.centerX.equalToSuperview() + make.top.equalTo(textLabel.snp.bottom).offset(12) + make.height.equalTo(48) + make.bottom.equalToSuperview() + } + + } + +} + +extension SRVipRetainAlert { + + + + class ItemView: UIView { + + var payItem: SRPayItem? { + didSet { + nameLabel.text = payItem?.getVipTitle() + textLabel.text = "vip_tip_01".localized + + priceView.setNeedsUpdateConfiguration() + } + } + + private lazy var bgView: UIImageView = { + let imageView = UIImageView(image: UIImage(named: "coinPackCell")) + return imageView + }() +// private lazy var bgView: FAGradientView = { +// let view = FAGradientView() +// view.fa_colors = [UIColor._524_B_8_E.cgColor, UIColor._303265.cgColor] +// view.fa_locations = [0, 1] +// view.fa_startPoint = .init(x: 0, y: 0.5) +// view.fa_endPoint = .init(x: 1, y: 0.5) +// view.layer.cornerRadius = 12 +// view.layer.masksToBounds = true +// view.layer.borderWidth = 1 +// view.layer.borderColor = UIColor.E_5_E_5_E_5.cgColor +// return view +// }() + + private lazy var bgIconImageView1: UIImageView = { + let imageView = UIImageView(image: UIImage(named: "coin_attachment_01")) + return imageView + }() + + private lazy var bgIconImageView2: UIImageView = { + let imageView = UIImageView(image: UIImage(named: "coin_attachment_02")) + return imageView + }() + private lazy var bgIconImageView3 = UIImageView(image: UIImage(named: "coin_attachment_04")) + private lazy var bgIconImageView4 = UIImageView(image: UIImage(named: "coin_attachment_05")) + + private lazy var vipIconImageView = UIImageView(image: UIImage(named: "皇冠-金")) + + private lazy var nameLabel: UILabel = { + let label = UILabel() + label.font = .font(ofSize: 18, weight: .bold) + label.textColor = .white + return label + }() + + private lazy var textLabel: UILabel = { + let label = SRLabel() + label.textColor = .white + label.font = .font(ofSize: 12, weight: .regular) + return label + }() + + private lazy var priceView: UIButton = { + var config = UIButton.Configuration.plain() + config.titleAlignment = .center + config.titlePadding = 0 + config.contentInsets = .init(top: 0, leading: 10, bottom: 0, trailing: 10) + config.background.image = .coinStackBg + let button = UIButton(configuration: config) + button.isUserInteractionEnabled = false + button.configurationUpdateHandler = { [weak self] button in + guard let self = self else { return } + + let currency = self.payItem?.currency ?? "" + let timeText = payItem?.getTimeString() ?? "" + let oldPrice = self.payItem?.price ?? "" + var discountPrice: String? = nil + + if self.payItem?.discount_type == 1, let introductoryPrice = self.payItem?.introductionaryOffer { + discountPrice = introductoryPrice.price.stringValue + } else if self.payItem?.discount_type == 2, let discount = self.payItem?.promotionalOffers?.first { + discountPrice = discount.price.stringValue + } + + if let discountPrice = discountPrice { + + let priceString = AttributedString("\(currency)\(discountPrice)", attributes: AttributeContainer([ + .font : UIFont.font(ofSize: 18, weight: .bold), + .foregroundColor : UIColor(hexString: "#FFE600") + ])) + + + button.configuration?.attributedTitle = priceString + + var subtitle = AttributedString("\(currency)\(oldPrice)", attributes: AttributeContainer([ + .font : UIFont.font(ofSize: 12, weight: .regular), + .foregroundColor : UIColor.white.withAlphaComponent(0.05), + .strikethroughStyle: NSUnderlineStyle.double.rawValue, + .strikethroughColor: UIColor.white.withAlphaComponent(0.05) + ])) + + button.configuration?.attributedSubtitle = subtitle + + } else { + + button.configuration?.attributedTitle = AttributedString("\(currency)\(oldPrice)", attributes: AttributeContainer([ + .font : UIFont.font(ofSize: 18, weight: .bold), + .foregroundColor : UIColor(hexString: "#FFE600") + ])) + + button.configuration?.attributedSubtitle = AttributedString("/\(timeText)", attributes: AttributeContainer([ + .font : UIFont.font(ofSize: 12, weight: .regular), + .foregroundColor : UIColor.black.withAlphaComponent(0.5) + ])) + } + + } + + return button + }() + + override init(frame: CGRect) { + super.init(frame: frame) + nameLabel.text = "Weekly VIP" + + + addSubview(bgView) + bgView.addSubview(bgIconImageView4) + bgView.addSubview(bgIconImageView3) + bgView.addSubview(bgIconImageView1) + bgView.addSubview(bgIconImageView2) + bgView.addSubview(vipIconImageView) + bgView.addSubview(nameLabel) + bgView.addSubview(textLabel) + bgView.addSubview(priceView) + + bgView.snp.makeConstraints { make in + make.edges.equalToSuperview() + } + + bgIconImageView1.snp.makeConstraints { make in + make.left.equalToSuperview().offset(0) + make.top.equalToSuperview().offset(0) + } + + bgIconImageView2.snp.makeConstraints { make in + make.right.equalToSuperview().offset(-26) + make.centerY.equalToSuperview() + } + + bgIconImageView3.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.centerX.equalTo(bgIconImageView2) + } + + bgIconImageView4.snp.makeConstraints { make in + make.left.bottom.equalToSuperview() + } + + vipIconImageView.snp.makeConstraints { make in + make.left.equalToSuperview().offset(16) + make.top.equalToSuperview().offset(18) + } + + nameLabel.snp.makeConstraints { make in + make.centerY.equalTo(vipIconImageView) + make.left.equalTo(vipIconImageView.snp.right).offset(4) + } + + textLabel.snp.makeConstraints { make in + make.left.equalTo(vipIconImageView) + make.bottom.equalToSuperview().offset(-18) + } + + priceView.snp.makeConstraints { make in + make.right.equalToSuperview().offset(-12) + make.height.equalTo(48) + make.bottom.equalTo(-8) + make.width.greaterThanOrEqualTo(88) + } + + } + + @MainActor required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + } + +} diff --git a/SynthReel/Libs/SRAppstore/SRPayDataRequest.swift b/SynthReel/Libs/SRAppstore/SRPayDataRequest.swift index 961c538..411ca8b 100644 --- a/SynthReel/Libs/SRAppstore/SRPayDataRequest.swift +++ b/SynthReel/Libs/SRAppstore/SRPayDataRequest.swift @@ -58,6 +58,26 @@ class SRPayDataRequest: NSObject { } } + + ///挽留信息 + func requestVipRetainPayInfo(completer: ((_ model: SRPayAlertModel?) -> Void)?) { + self.completerBlock = nil + self.payAlertBlock = completer + + Task { + guard let model = await SRStoreAPI.requestVipRetainPayInfo() else { + self.payAlertBlock?(nil) + return + } + self.payAlertModel = model + let productId = SRIapManager.manager.getProductId(templateId: model.info?.ios_template_id) ?? "" + + let set = Set([productId]) + let productsRequest = SKProductsRequest(productIdentifiers: set) + productsRequest.delegate = self + productsRequest.start() + } + } } diff --git a/SynthReel/Source/Assets.xcassets/myShort/vipRetainBg.imageset/Contents.json b/SynthReel/Source/Assets.xcassets/myShort/vipRetainBg.imageset/Contents.json new file mode 100644 index 0000000..c629f58 --- /dev/null +++ b/SynthReel/Source/Assets.xcassets/myShort/vipRetainBg.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "vipRetainBg@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "vipRetainBg@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SynthReel/Source/Assets.xcassets/myShort/vipRetainBg.imageset/vipRetainBg@2x.png b/SynthReel/Source/Assets.xcassets/myShort/vipRetainBg.imageset/vipRetainBg@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e73c39128ec4b6b37b603b3230df23a1c4c706c0 GIT binary patch literal 60255 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 M07*qoM6N<$g7{|^(f|Me literal 0 HcmV?d00001 diff --git a/SynthReel/Source/Assets.xcassets/myShort/vipRetainBg.imageset/vipRetainBg@3x.png b/SynthReel/Source/Assets.xcassets/myShort/vipRetainBg.imageset/vipRetainBg@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..c331dd7f227a6b1393d371fa0e0ae40909245c0e GIT binary patch literal 119669 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

CTJSSH0-@aGTfomS4QynDSfl#`-KVB2|3(7fB;d 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 KMNUMnLSTY;onKo3 literal 0 HcmV?d00001 diff --git a/SynthReel/Source/en.lproj/Localizable.strings b/SynthReel/Source/en.lproj/Localizable.strings index af0926b..a54326b 100644 --- a/SynthReel/Source/en.lproj/Localizable.strings +++ b/SynthReel/Source/en.lproj/Localizable.strings @@ -84,6 +84,7 @@ "synthreel_dailu_bonuses" = "Daily Bonuses"; "synthreel_coin_bag_buy_tip_title" = "How Do I Receive Coins?"; "synthreel_continue" = "Claim Now"; +"vip_retain_alert_text" = "Unlock every show you love!"; "coins_pack_tips" = "1.Coins are delivered instantly upon purchase.
2.Daily bonus coins available from the next day.
3.All coins will be revoked when the subscription expires, including both initial and daily coins."; @@ -91,7 +92,7 @@ "synthreel_balance" = "balance"; "synthreel_continue" = "Claim Now"; "synthreel_success" = "success"; - +"synthreel_buy_now" = "Buy Now"; "pay_error_1" = "You are already a member!"; "pay_error_2" = "Invalid in-app purchase"; "pay_error_3" = "Payment has been cancelled";