Commit 06ce2ebf authored by CZ1004's avatar CZ1004

优化

parent ee053e70
......@@ -60,16 +60,21 @@ class HomeInfoViewController:BaseViewController {
guard let self = self else { return }
let deleteOp:((Any)->Void) = {[weak self] imgs in
if let cA = imgs as? [String] {
PhotoAndVideoMananger.deleteAssets(localIdentifiers: cA) {[weak self] in
if let cA = imgs as? [AssetModel] {
var tempStringArray : [String] = []
for item in cA {
tempStringArray.append(item.localIdentifier)
}
PhotoAndVideoMananger.deleteAssets(localIdentifiers: tempStringArray) {[weak self] in
guard let self else {return}
// 删除缓存数据
PhotoDataManager.manager.removeDataWhenDeleteInPage(data: array as! [AssetModel])
self.tablewView.deleteModel()
}
}
}
// 删除缓存数据
PhotoDataManager.manager.removeDataWhenDeleteInPage(data: array as! [AssetModel])
if HomePayModel.share.isNoAd == false {
if self.type == .duplicates { // 重复
......@@ -88,6 +93,8 @@ class HomeInfoViewController:BaseViewController {
}else {
deleteOp(array)
}
}
return sview
......
......@@ -353,43 +353,52 @@ class HomeViewController:BaseViewController {
@objc func handleDataUpdated(_ notification: Notification) {
if let userInfo = notification.userInfo {
let type : PhotsFileType = userInfo["type"] as! PhotsFileType
let deleteIndex : [Int] = (userInfo["deleteIndex"] as? [Int])!
for item in deleteIndex {
switch type {
case .duplicates :
self.homeView?.model?.titleModelArray.first?.assets.remove(at: item)
break
case .similar :
self.homeView?.model?.titleModelArray[1].assets.remove(at: item)
break
case .similarScreenshots:
self.homeView?.model?.otherModelArray[1].assets.remove(at: item)
break
case .SimilarVideos:
self.homeView?.model?.titleModelArray[3].assets.remove(at: item)
break
case .videos:
break
case .screenshots:
break
case .Other:
break
}
}
// 更新缓存数据
if self.homeView?.model != nil{
PhotoDataManager.manager.saveToFileSystem(model: (self.homeView?.model)!)
}
// 首页这里要重新获取下数据
PhotoDataManager.manager.loadFromFileSystem(resultModel: {[weak self] model in
DispatchQueue.main.async {
self.homeView?.collectionView.reloadData()
self?.homeView?.model = model
self?.homeView?.collectionView.reloadData()
}
} else {
print("接收到数据更新通知,但没有携带额外信息")
}
})
// if let userInfo = notification.userInfo {
// let type : PhotsFileType = userInfo["type"] as! PhotsFileType
// let deleteIndex : [Int] = (userInfo["deleteIndex"] as? [Int])!
// for item in deleteIndex {
// switch type {
// case .duplicates :
// self.homeView?.model?.titleModelArray.first?.assets.remove(at: item)
// break
// case .similar :
// self.homeView?.model?.titleModelArray[1].assets.remove(at: item)
// break
// case .similarScreenshots:
// self.homeView?.model?.otherModelArray[1].assets.remove(at: item)
// break
// case .SimilarVideos:
// self.homeView?.model?.titleModelArray[3].assets.remove(at: item)
// break
// case .videos:
// break
// case .screenshots:
// break
// case .Other:
// break
// }
// }
// // 更新缓存数据
// if self.homeView?.model != nil{
// PhotoDataManager.manager.saveToFileSystem(model: (self.homeView?.model)!)
// }
// DispatchQueue.main.async {
// self.homeView?.collectionView.reloadData()
// }
//
//
// } else {
// print("接收到数据更新通知,但没有携带额外信息")
// }
}
}
......@@ -49,7 +49,7 @@ class PhotoDataManager {
}else{
// 删除相似截图和相似视频的缓存
var finalyVideoData : [[AssetModel]] = []
var array = model.otherModelArray[index].assets
let array = model.otherModelArray[index].assets
for item in data {
for modelData in array {
var tempArray = modelData
......@@ -60,24 +60,31 @@ class PhotoDataManager {
}
}
model.otherModelArray[index].assets = finalyVideoData
}
}
for index in 0..<model.titleModelArray.count {
// 删除相似截图和相似视频的缓存
var size :Double = 0.0
var finalyVideoData : [[AssetModel]] = []
var array = model.titleModelArray[index].assets
let array = model.titleModelArray[index].assets
for item in data {
for modelData in array {
var tempArray = modelData
tempArray = tempArray.filter { $0.localIdentifier != item.localIdentifier }
if tempArray.count >= 2 {
finalyVideoData.append(tempArray)
}else{
// 计算下size
for assModel in tempArray {
size = size + Double(assModel.assetSize)
}
}
}
}
model.otherModelArray[index].assets = finalyVideoData
model.titleModelArray[index].assets = finalyVideoData
model.titleModelArray[index].allFileSize = size
// 计算size
}
self?.saveToFileSystem(model: model)
......@@ -145,9 +152,11 @@ class PhotoDataManager {
let group = DispatchGroup()
Print("正在处理重复和相似图片")
group.enter()
PhotoAndVideoMananger.mananger.dealSimilarPhotos(assets: PhotoAndVideoMananger.mananger.allAssets, type: 0, threshold: 0.99) { data1,data2 in
var dataArray1 : [AssetModel] = []
var dataArray2 : [AssetModel] = []
......@@ -204,6 +213,7 @@ class PhotoDataManager {
NotificationCenter.default.post(name: dataUpdated, object: nil)
})
group.leave()
Print("处理重复和相似图片结束")
}
......@@ -262,6 +272,7 @@ class PhotoDataManager {
// 截图数据
Print("正在处理截图")
group.enter()
PhotoAndVideoMananger.mananger.dealScreenShotData { data in
var dataArray : [AssetModel] = []
for item in data {
......@@ -275,6 +286,7 @@ class PhotoDataManager {
PhotoDataManager.manager.saveToFileSystem(model: allModel)
let dataUpdated = Notification.Name("HomeScreenShotResourceUpdate")
NotificationCenter.default.post(name: dataUpdated, object: nil)
group.leave()
Print("处理截图结束")
})
}
......
......@@ -751,11 +751,12 @@ class PhotoAndVideoMananger {
}
let isSamilar : Double = OpenCVWrapper.compareImageSimilarity(image1, withImage2: image2)
if isSamilar > 0.999 {
if isSamilar > 0.9999 {
currentDuplicateGroup.append(AssetModel(localIdentifier: changeAsset.localIdentifier, assetSize: self.findAssetSize(asset: changeAsset), createDate: changeAsset.creationDate!))
saveFinisedArray.append(currentAsset.localIdentifier)
continue
}
if isSamilar > 0.995 && isSamilar < 0.996{
if isSamilar > 0.9995 && isSamilar < 0.9999{
currentSimilarGroup.append(AssetModel(localIdentifier: changeAsset.localIdentifier, assetSize: self.findAssetSize(asset: changeAsset), createDate: changeAsset.creationDate!))
saveFinisedArray.append(currentAsset.localIdentifier)
}
......
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