Commit eb4c60de authored by yqz's avatar yqz

Merge branch 'dev_main' into yQz0507

* dev_main:
  【优化】压缩图片方法+视频静音
  【优化】广告更新

# Conflicts:
#	PhoneManager/Class/Page/Home/Common/VideoViewController.swift
#	PhoneManager/Class/Page/Home/View/PhotosRemoveBaseView.swift
parents 3c92cedf d8b0a276
......@@ -36,6 +36,9 @@ class AdvManager : NSObject, FullScreenContentDelegate {
// 看完广告的回调
var finisedCallBack:()->Void = {}
// 广告都没播放成功回调
var failueFinishedCallBack : ()->Void = {}
// 激励插页广告
var rewardedInterstitialAd: RewardedInterstitialAd?
......@@ -227,7 +230,9 @@ class AdvManager : NSObject, FullScreenContentDelegate {
vc.present(alert, animated: true, completion: nil)
// 1 秒后关闭弹窗
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
alert.dismiss(animated: true, completion: nil)
alert.dismiss(animated: true) {
self.failueFinishedCallBack()
}
}
return
}
......
......@@ -111,7 +111,6 @@ class CompressCustomHeaderView: UICollectionReusableView{
self.titlelabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(0)
make.top.equalToSuperview().offset(14)
make.width.equalTo(96 * RScreenW())
make.height.equalTo(28)
}
......
......@@ -156,31 +156,101 @@ class CompressViewModel{
}
}
private func compressData(_ data: Data, compressionQuality: CGFloat, progress: @escaping (Float) -> Void, completion: @escaping (Data?, Error?) -> Void) {
guard let originalImage = UIImage(data: data) else {
completion(nil, nil)
private func compressData(_ data: Data,
compressionQuality: CGFloat,
progress: @escaping (Float) -> Void,
completion: @escaping (Data?, Error?) -> Void) {
DispatchQueue.global(qos: .userInitiated).async {
// 错误处理闭包
func completeOnMain(error: Error? = nil, data: Data? = nil) {
DispatchQueue.main.async {
completion(data, error)
}
}
// 验证输入数据
guard let image = UIImage(data: data) else {
completeOnMain(error: NSError(domain: "ImageError", code: -1,
userInfo: [NSLocalizedDescriptionKey: "Invalid image data"]))
return
}
DispatchQueue.global().async {
var progressValue: Float = 0
let step = 0.1
while progressValue < 1 {
progress(progressValue)
progressValue += Float(step)
Thread.sleep(forTimeInterval: 0.1)
let originalSize = data.count
let targetSize = max(Int(CGFloat(originalSize) * compressionQuality), 1024)
var currentImage = image
var currentBestData: Data?
// 进度配置
let maxIterations = 5
let qualitySteps: [CGFloat] = [0.9, 0.7, 0.5, 0.3, 0.2]
var currentIteration = 0
// 递归压缩方法
func tryCompress() {
guard currentIteration < maxIterations else {
// 最终返回最佳结果或最后一次尝试
completeOnMain(data: currentBestData ?? currentImage.jpegData(compressionQuality: 0.1))
return
}
if let compressedData = originalImage.jpegData(compressionQuality: compressionQuality) {
DispatchQueue.main.async {
progress(1.0)
completion(compressedData, nil)
// 当前轮次的压缩质量
let currentQuality = qualitySteps[currentIteration]
var compressedData: Data?
// 尝试生成压缩数据
autoreleasepool {
compressedData = currentImage.jpegData(compressionQuality: currentQuality)
}
} else {
guard let validData = compressedData else {
completeOnMain(error: NSError(domain: "CompressionError", code: -2,
userInfo: [NSLocalizedDescriptionKey: "Compression failed"]))
return
}
// 更新最佳结果
if validData.count <= targetSize && validData.count > (currentBestData?.count ?? 0) {
currentBestData = validData
}
// 更新进度(每轮20%)
DispatchQueue.main.async {
completion(nil, nil)
progress(Float(currentIteration + 1) / Float(maxIterations))
}
// 检查是否达标
if validData.count <= targetSize {
completeOnMain(data: validData)
return
}
// 未达标时调整尺寸
let scaleFactor = sqrt(Double(targetSize) / Double(validData.count))
currentImage = self.resizeImage(currentImage, scaleFactor: CGFloat(scaleFactor))
currentIteration += 1
// 继续下一轮压缩
tryCompress()
}
// 开始压缩流程
tryCompress()
}
}
// 图片尺寸调整方法保持不变
private func resizeImage(_ image: UIImage, scaleFactor: CGFloat) -> UIImage {
let newSize = CGSize(
width: max(image.size.width * scaleFactor, 1),
height: max(image.size.height * scaleFactor, 1)
)
let format = UIGraphicsImageRendererFormat()
format.scale = 1.0
format.opaque = true
let renderer = UIGraphicsImageRenderer(size: newSize, format: format)
return renderer.image { _ in
image.draw(in: CGRect(origin: .zero, size: newSize))
}
}
......
......@@ -60,25 +60,8 @@ class MergeButtonView : UIView {
extension MergeButtonView {
@objc func merge (){
if IAPManager.share.isSubscribed == false {
// 添加的时候需要先弹出广告
if AdvManager.shared.advTimeAfterInAPP <= 0{
if let vc = self.responderViewController() {
AdvManager.shared.showInterstitialAd(vc: vc)
AdvManager.shared.finisedCallBack = {
self.alertWhenMergeContact()
}
}else {
self.alertWhenMergeContact()
}
}else {
self.alertWhenMergeContact()
}
}else {
self.alertWhenMergeContact()
}
}
fileprivate func showMeegeAlert(_ self: MergeButtonView) {
// 直接合并
......
......@@ -56,7 +56,24 @@ class MergePreButtonView : UIView {
}
extension MergePreButtonView {
@objc func mergePre (){
@objc func mergePre(){
if IAPManager.share.isSubscribed == false {
// 添加的时候需要先弹出广告
if AdvManager.shared.advTimeAfterInAPP <= 0{
if let vc = self.responderViewController() {
AdvManager.shared.showInterstitialAd(vc: vc)
AdvManager.shared.finisedCallBack = {
self.mergePreCallBack()
}
}else {
self.mergePreCallBack()
}
}else {
self.mergePreCallBack()
}
}else {
self.mergePreCallBack()
}
}
}
......@@ -29,17 +29,11 @@ class VideoViewController: UIViewController {
// 1. 创建播放器
if let url = self.url {
self.player = AVPlayer(url: url)
self.player?.volume = 0
self.player?.isMuted = true
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
// 2. 配置播放器控制器
self.playerViewController.player = self.player
self.playerViewController.delegate = self
self.playerViewController.showsPlaybackControls = true
self.playerViewController.player?.volume = 0
self.playerViewController.player?.isMuted = true
// 3. 添加到当前视图
self.addChild(self.playerViewController)
self.view.addSubview(self.playerViewController.view)
......@@ -48,9 +42,6 @@ class VideoViewController: UIViewController {
// 4. 自动播放
if self.isAutoPlay {
self.player?.play()
self.playerViewController.player?.volume = 0
self.player?.isMuted = true
}
}
}
}
......
......@@ -233,14 +233,16 @@ class HomePhotosDetailViewController : BaseViewController {
make.bottom.equalToSuperview().offset(0)
make.height.equalTo(78 + safeHeight)
}
self.trashSubView.type = self.mediaType == PhotsFileType.Other ? TrashTypeEnum.other : TrashTypeEnum.shot
// 判断垃圾桶有没有数据
let array = TrashDataManager.getCurrentMediaTypeTrashData(mediaType: self.mediaType == PhotsFileType.Other ? TrashTypeEnum.other : TrashTypeEnum.shot)
self.trashSubView.resourceCountlabel.text = String(array.count)
self.trashSubView.isHidden = array.count <= 0
self.videoDetailNavView?.startSelectButton.isHidden = array.count > 0 || self.resourceData.count <= 0
self.deleteButtonView.isHidden = array.count > 0
self.videoDetailNavView?.startSelectButton.isHidden = array.count > 0
// 改变collection的位置
// if array.count > 0 {
// self.collectionView.frame = CGRect(x: marginLR, y: self.videoDetailNavView!.height, width: self.view.width - 2 * marginLR, height: self.view.height - self.videoDetailNavView!.height - 78 - safeHeight)
// }else{
......@@ -309,11 +311,10 @@ class HomePhotosDetailViewController : BaseViewController {
}
self.trashSubView.clearTashDataCallBack = {[weak self] in
guard let self else {return}
// 清除垃圾桶数据
TrashDataManager.clearTrashData(mediaType: self.mediaType == PhotsFileType.Other ? TrashTypeEnum.other : TrashTypeEnum.shot) {[weak self] in
guard let self else {return}
DispatchQueue.main.async {
self.addTrashView()
}
}
self.addListener()
......
......@@ -103,6 +103,7 @@ class HomeVideoDetailController :BaseViewController {
let view = TrashSubView()
view.backgroundColor = UIColor.colorWithHex(hexStr: "#F2F6FC")
view.tipLabel.text = "The video in the trash can"
view.type = .video
view.isHidden = true
return view
}()
......@@ -284,9 +285,7 @@ class HomeVideoDetailController :BaseViewController {
}
self.trashSubView.clearTashDataCallBack = {[weak self] in
guard let self else {return}
// 清除垃圾桶数据
TrashDataManager.clearTrashData(mediaType: TrashTypeEnum.video) {[weak self] in
guard let self else {return}
DispatchQueue.main.async {
self.addTrashView()
}
}
......@@ -309,7 +308,7 @@ class HomeVideoDetailController :BaseViewController {
self.trashSubView.resourceCountlabel.text = String(array.count)
self.trashSubView.isHidden = array.count <= 0
self.deleteButtonView.isHidden = array.count > 0
self.videoDetailNavView?.startSelectButton.isHidden = array.count > 0
self.videoDetailNavView?.startSelectButton.isHidden = array.count > 0 || self.resourceData.count <= 0
// 改变collection的位置
if array.count > 0 {
......@@ -317,7 +316,6 @@ class HomeVideoDetailController :BaseViewController {
}else{
self.collectionView.frame = CGRect(x: marginLR, y: self.videoDetailNavView!.height, width: self.view.width - 2 * marginLR, height: self.view.height - self.videoDetailNavView!.height)
}
self.videoDetailNavView?.startSelectButton.isHidden = (self.resourceData.count <= 0)
}
}
......
......@@ -192,6 +192,11 @@ class HomeViewController:BaseViewController {
AdvManager.shared.finisedCallBack = {
self.junmToModule(cIndex, self)
}
AdvManager.shared.failueFinishedCallBack = {
// 首页特殊要求广告没准备好也需要跳转
self.junmToModule(cIndex, self)
}
}
}
view.addSubview(homeView!)
......
......@@ -178,19 +178,20 @@ class PhotoRemoveViewController: BaseViewController {
setupViews()
self.view.addSubview(self.trashSubView)
self.trashSubView.type = self.mediaType
self.trashSubView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
self.bottomConstraint = make.bottom.equalToSuperview().offset(78 + safeHeight).constraint
make.height.equalTo(78 + safeHeight)
}
self.trashSubView.clearTashDataCallBack = {[weak self] in
guard let self else {return}
// 清除垃圾桶数据
TrashDataManager.clearTrashData(mediaType: self.mediaType) {[weak self] in
guard let self else {return}
DispatchQueue.main.async {
self.showCurrentPageUIWhenTashDataChanged()
}
}
self.trashSubView.presentTashDetailViewClickCallBack = {[weak self] in
guard let self else {return}
......
......@@ -26,17 +26,15 @@ class PhotosRemoveBaseView: UIView {
vc.isAutoPlay = index == 0
vc.url = url
self.imageView.removeFromSuperview()
self.responderViewController()?.addChild(vc)
self.addSubview(vc.view)
vc.view.snp.makeConstraints { make in
make.left.top.bottom.right.equalToSuperview()
}
vc.setupPlayer()
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
vc.playerViewController.player?.isMuted = true
vc.playerViewController.player?.volume = 0
vc.player?.isMuted = true
vc.player?.volume = 0
}
vc.didMove(toParent: self.responderViewController())
}
}else {
self.innerVideoController?.playerViewController.player?.play()
......
......@@ -103,29 +103,180 @@ class TrashSubView: UIView {
extension TrashSubView {
@objc func emptyButtonAction(){
if let vc = self.responderViewController(){
let data = TrashDataManager.getCurrentMediaTypeTrashData(mediaType: self.type)
if data.count <= 0 {
return
}
// 首先看是否订阅
if IAPManager.share.isSubscribed == false {
// 没有订阅
let view : AdvTipDeleteView = AdvTipDeleteView(frame: vc.view.bounds)
view.dataSource = data
// 获取当前免费次数
let freeCount = AdvManager.shared.defaultFreeTimes
Print("免费次数----\(freeCount)")
// 当免费次数用完以后,无论删除多少都需要弹出广告
if freeCount <= 0 {
HomePayViewController.show {
if IAPManager.share.isSubscribed == false{
// 弹出单个删除类型
view.deleteType = self.type == .video ? .deleteVideoOne : .deletePhotoOne
view.getOtherInfoByType(type: self.type == TrashTypeEnum.video ? PhotsFileType.videos : PhotsFileType.Other)
self.showPopView(popView: view)
}else {
self.delMethod(needUpdateFreeTimes: true)
}
}
}else {
// 获取次数对应的删除照片数量
var freeDeleteCount = AdvManager.shared.advDeleteResouceDic[freeCount]!
let tempArray = data
if freeCount > 1 {
// 如果是前两次,可以免费删除5张照片
if tempArray.count > freeDeleteCount {
// 弹出多个删除类型
HomePayViewController.show {
if IAPManager.share.isSubscribed == false{
view.deleteType = self.type == .video ? .deleteVideosMore : .deletePhotosMore
view.freeDeleteCount = freeDeleteCount
view.getOtherInfoByType(type: self.type == TrashTypeEnum.video ? PhotsFileType.videos : PhotsFileType.Other)
self.showPopView(popView: view)
}else {
self.delMethod(needUpdateFreeTimes: true)
}
}
}else {
// 如果小于直接删除
HomePayViewController.show {
self.delMethod(needUpdateFreeTimes: true)
}
}
}else{
// 如果免费次数等于1,也就是第三次。看照片删除的数量
// 如果当前删除的照片大于5
if tempArray.count > 5 {
freeDeleteCount = 5
// 弹出多个删除类型
HomePayViewController.show {
// 添加的时候需要先弹出广告
if AdvManager.shared.advTimeAfterInAPP <= 0{
if IAPManager.share.isSubscribed == false{
view.deleteType = self.type == .video ? .deleteVideosMore : .deletePhotosMore
view.freeDeleteCount = freeDeleteCount
view.getOtherInfoByType(type: self.type == TrashTypeEnum.video ? PhotsFileType.videos : PhotsFileType.Other)
self.showPopView(popView: view)
}else{
self.delMethod(needUpdateFreeTimes: true)
}
}
}else if tempArray.count > 1 && tempArray.count <= 5 {
// 如果是1张到5张之间,那么免费的张数是当前张数减一
freeDeleteCount = tempArray.count - 1
// 弹出多个删除类型
HomePayViewController.show {
if IAPManager.share.isSubscribed == false{
view.deleteType = self.type == .video ? .deleteVideosMore : .deletePhotosMore
view.freeDeleteCount = freeDeleteCount
view.getOtherInfoByType(type: self.type == TrashTypeEnum.video ? PhotsFileType.videos : PhotsFileType.Other)
self.showPopView(popView: view)
}else{
self.delMethod(needUpdateFreeTimes: true)
}
}
}else{
// 如果只是一张,直接删除
HomePayViewController.show {
self.delMethod(needUpdateFreeTimes: true)
}
}
}
}
view.deleteButtonClickCallback = {isMore,deleteCount in
if let vc = self.responderViewController() {
AdvManager.shared.showInterstitialAd(vc: vc)
vc.view.hideBlur()
}
if deleteCount < 0 {
return
}
let data = TrashDataManager.getCurrentMediaTypeTrashData(mediaType: self.type)
if data.count <= 0 {
return
}
if isMore == true {
if IAPManager.share.isSubscribed == false {
self.popAdverTisement()
// 广告看完再结束
AdvManager.shared.finisedCallBack = {
let tempArray = Array(data.prefix(deleteCount))
TrashDataManager.clearTrashData(mediaType: self.type,data: tempArray) {
self.clearTashDataCallBack()
}
}else {
self.clearTashDataCallBack()
}
}else {
}else{
let tempArray = Array(data.prefix(deleteCount))
TrashDataManager.clearTrashData(mediaType: self.type,data: tempArray) {
self.clearTashDataCallBack()
}
}
}else {
} else {
let tempArray = Array(data.prefix(deleteCount))
TrashDataManager.clearTrashData(mediaType: self.type,data: tempArray) {
self.clearTashDataCallBack()
self.updateFreeTimes()
}
}
}
}else{
self.delMethod(needUpdateFreeTimes: true)
}
}
}
@objc func tapHandle(){
self.presentTashDetailViewClickCallBack()
}
// MARK: 广告相关
func delMethod(needUpdateFreeTimes:Bool){
let data = TrashDataManager.getCurrentMediaTypeTrashData(mediaType: self.type)
if data.count > 0 {
TrashDataManager.clearTrashData(mediaType: self.type,data: []) {
if needUpdateFreeTimes {
self.updateFreeTimes()
}
self.clearTashDataCallBack()
}
}
}
/// 弹出广告
func popAdverTisement(){
if let vc = self.responderViewController() {
AdvManager.shared.showInterstitialAd(vc: vc)
}
}
// 显示弹出框
func showPopView(popView: AdvTipDeleteView){
self.responderViewController()?.view.showBlur()
self.responderViewController()?.view.addSubview(popView)
}
func updateFreeTimes(){
// 删除成功后更新次数
var times = UserDefaults.standard.object(forKey: "saveAdvTimes") as! Int
if times > 0 {
// 如果免费次数大于0
times = times - 1
UserDefaults.standard.set(times, forKey: "saveAdvTimes")
}
}
}
......@@ -388,6 +388,7 @@ extension PMShowImgVideoController : UICollectionViewDelegate,UICollectionViewDa
}else{
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: PMShowVideoCellID, for: indexPath) as! PMShowVideoCell
cell.isCurrent = selectSet.contains(indexPath.row)
cell.bestResultButton.isHidden = true
cell.playURL = showName
cell.reload()
cell.callblock = {[weak self] in
......
......@@ -188,28 +188,166 @@ extension TrashViewController:UIScrollViewDelegate{
@objc func delBtnAction(){
let info = self.getTypeByCurrentPage(pageIndex: currentPage)
let data = TrashDataManager.getCurrentMediaTypeTrashData(mediaType: info.0)
if data.count <= 0 {
return
}
// 首先看是否订阅
if IAPManager.share.isSubscribed == false {
// 没有订阅
let view : AdvTipDeleteView = AdvTipDeleteView(frame: self.view.bounds)
view.dataSource = data
// 获取当前免费次数
let freeCount = AdvManager.shared.defaultFreeTimes
Print("免费次数----\(freeCount)")
// 当免费次数用完以后,无论删除多少都需要弹出广告
if freeCount <= 0 {
HomePayViewController.show {
// 添加的时候需要先弹出广告
if AdvManager.shared.advTimeAfterInAPP <= 0{
AdvManager.shared.showInterstitialAd(vc: self)
AdvManager.shared.finisedCallBack = {
self.delMethod()
if IAPManager.share.isSubscribed == false{
// 弹出单个删除类型
view.deleteType = self.currentType == .video ? .deleteVideoOne : .deletePhotoOne
view.getOtherInfoByType(type: self.currentType == TrashTypeEnum.video ? PhotsFileType.videos : PhotsFileType.Other)
self.showPopView(popView: view)
}else {
self.delMethod(needUpdateFreeTimes: true)
}
}
}else {
self.delMethod()
// 获取次数对应的删除照片数量
var freeDeleteCount = AdvManager.shared.advDeleteResouceDic[freeCount]!
let tempArray = data
if freeCount > 1 {
// 如果是前两次,可以免费删除5张照片
if tempArray.count > freeDeleteCount {
// 弹出多个删除类型
HomePayViewController.show {
if IAPManager.share.isSubscribed == false{
view.deleteType = self.currentType == .video ? .deleteVideosMore : .deletePhotosMore
view.freeDeleteCount = freeDeleteCount
view.getOtherInfoByType(type: self.currentType == TrashTypeEnum.video ? PhotsFileType.videos : PhotsFileType.Other)
self.showPopView(popView: view)
}else {
self.delMethod(needUpdateFreeTimes: true)
}
}
}else {
self.delMethod()
// 如果小于直接删除
HomePayViewController.show {
self.delMethod(needUpdateFreeTimes: true)
}
}
func delMethod(){
}else{
// 如果免费次数等于1,也就是第三次。看照片删除的数量
// 如果当前删除的照片大于5
if tempArray.count > 5 {
freeDeleteCount = 5
// 弹出多个删除类型
HomePayViewController.show {
if IAPManager.share.isSubscribed == false{
view.deleteType = self.currentType == .video ? .deleteVideosMore : .deletePhotosMore
view.freeDeleteCount = freeDeleteCount
view.getOtherInfoByType(type: self.currentType == TrashTypeEnum.video ? PhotsFileType.videos : PhotsFileType.Other)
self.showPopView(popView: view)
}else{
self.delMethod(needUpdateFreeTimes: true)
}
}
}else if tempArray.count > 1 && tempArray.count <= 5 {
// 如果是1张到5张之间,那么免费的张数是当前张数减一
freeDeleteCount = tempArray.count - 1
// 弹出多个删除类型
HomePayViewController.show {
if IAPManager.share.isSubscribed == false{
view.deleteType = self.currentType == .video ? .deleteVideosMore : .deletePhotosMore
view.freeDeleteCount = freeDeleteCount
view.getOtherInfoByType(type: self.currentType == TrashTypeEnum.video ? PhotsFileType.videos : PhotsFileType.Other)
self.showPopView(popView: view)
}else{
self.delMethod(needUpdateFreeTimes: true)
}
}
}else{
// 如果只是一张,直接删除
HomePayViewController.show {
self.delMethod(needUpdateFreeTimes: true)
}
}
}
}
view.deleteButtonClickCallback = {isMore,deleteCount in
self.view.hideBlur()
if deleteCount < 0 {
return
}
let info = self.getTypeByCurrentPage(pageIndex: self.currentPage)
let data = TrashDataManager.getCurrentMediaTypeTrashData(mediaType: info.0)
if data.count <= 0 {
return
}
if isMore == true {
if IAPManager.share.isSubscribed == false {
self.popAdverTisement()
// 广告看完再结束
AdvManager.shared.finisedCallBack = {
let tempArray = Array(data.prefix(deleteCount))
TrashDataManager.clearTrashData(mediaType: info.0,data: tempArray) {
info.1.dataSource.removeAll(where: {tempArray.map({$0.localIdentifier}).contains($0.localIdentifier)})
}
}
}else{
let tempArray = Array(data.prefix(deleteCount))
TrashDataManager.clearTrashData(mediaType: info.0,data: tempArray) {
info.1.dataSource.removeAll(where: {tempArray.map({$0.localIdentifier}).contains($0.localIdentifier)})
}
}
} else {
let tempArray = Array(data.prefix(deleteCount))
TrashDataManager.clearTrashData(mediaType: info.0,data: tempArray) {
self.updateFreeTimes()
info.1.dataSource.removeAll(where: {tempArray.map({$0.localIdentifier}).contains($0.localIdentifier)})
}
}
}
}else{
self.delMethod(needUpdateFreeTimes: true)
}
}
/// 弹出广告
func popAdverTisement(){
AdvManager.shared.showInterstitialAd(vc: self)
}
// 显示弹出框
func showPopView(popView: AdvTipDeleteView){
self.view.showBlur()
self.view.addSubview(popView)
}
func updateFreeTimes(){
// 删除成功后更新次数
var times = UserDefaults.standard.object(forKey: "saveAdvTimes") as! Int
if times > 0 {
// 如果免费次数大于0
times = times - 1
UserDefaults.standard.set(times, forKey: "saveAdvTimes")
}
}
func delMethod(needUpdateFreeTimes:Bool){
let info = self.getTypeByCurrentPage(pageIndex: currentPage)
let data = TrashDataManager.getCurrentMediaTypeTrashData(mediaType: info.0)
if data.count > 0 {
TrashDataManager.clearTrashData(mediaType: info.0) {
TrashDataManager.clearTrashData(mediaType: info.0,data: []) {
if needUpdateFreeTimes {
self.updateFreeTimes()
}
info.1.dataSource.removeAll()
}
}
......
......@@ -17,17 +17,23 @@ class TrashDataManager {
comlete()
}
/// 清除当前类型垃圾桶的所有数据
static func clearTrashData(mediaType: TrashTypeEnum?, comlete:@escaping ()->Void){
static func clearTrashData(mediaType: TrashTypeEnum?,data:[AssetModel], comlete:@escaping ()->Void){
let trashData = self.getCurrentMediaTypeTrashData(mediaType: mediaType)
if trashData.count > 0 {
PhotoAndVideoMananger.deleteAssets(localIdentifiers: trashData.map({$0.localIdentifier})) {
let identifierArray : [String] = data.count == 0 ? trashData.map({$0.localIdentifier}) : data.map({$0.localIdentifier})
PhotoAndVideoMananger.deleteAssets(localIdentifiers: identifierArray) {
// 清空单利和数据库的数据
if data.count > 0 {
for item in data {
clearCurrentMediaTypeTrashSigtonData(mediaType: mediaType,identifier: item.localIdentifier)
clearCurrentMediaTypeTrashDBData(mediaType: mediaType,identifier: item.localIdentifier)
}
}else {
clearCurrentMediaTypeTrashSigtonData(mediaType: mediaType)
clearCurrentMediaTypeTrashDBData(mediaType: mediaType)
}
// 删除完成之后回调
PhotoManager.shared.removeDataWhenDeleteInPage(data: trashData)
comlete()
......
......@@ -162,8 +162,6 @@ extension EmailContentView :UITableViewDelegate,UITableViewDataSource{
if IAPManager.share.isSubscribed == false {
// 弹出内购页面
HomePayViewController.show {
// 再次判断下
if IAPManager.share.isSubscribed == false {
// 弹出提示框
let alertView = AdvTipSelectView()
alertView.selectType = .selectTypeSetAnimation
......@@ -180,9 +178,6 @@ extension EmailContentView :UITableViewDelegate,UITableViewDataSource{
}
}
}
}else{
callblock()
}
}
}else {
callblock()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment