Commit 06ce2ebf authored by CZ1004's avatar CZ1004

优化

parent ee053e70
...@@ -60,16 +60,21 @@ class HomeInfoViewController:BaseViewController { ...@@ -60,16 +60,21 @@ class HomeInfoViewController:BaseViewController {
guard let self = self else { return } guard let self = self else { return }
let deleteOp:((Any)->Void) = {[weak self] imgs in let deleteOp:((Any)->Void) = {[weak self] imgs in
if let cA = imgs as? [String] { if let cA = imgs as? [AssetModel] {
PhotoAndVideoMananger.deleteAssets(localIdentifiers: cA) {[weak self] in var tempStringArray : [String] = []
for item in cA {
tempStringArray.append(item.localIdentifier)
}
PhotoAndVideoMananger.deleteAssets(localIdentifiers: tempStringArray) {[weak self] in
guard let self else {return} guard let self else {return}
// 删除缓存数据
PhotoDataManager.manager.removeDataWhenDeleteInPage(data: array as! [AssetModel])
self.tablewView.deleteModel() self.tablewView.deleteModel()
} }
} }
} }
// 删除缓存数据
PhotoDataManager.manager.removeDataWhenDeleteInPage(data: array as! [AssetModel])
if HomePayModel.share.isNoAd == false { if HomePayModel.share.isNoAd == false {
if self.type == .duplicates { // 重复 if self.type == .duplicates { // 重复
...@@ -88,6 +93,8 @@ class HomeInfoViewController:BaseViewController { ...@@ -88,6 +93,8 @@ class HomeInfoViewController:BaseViewController {
}else { }else {
deleteOp(array) deleteOp(array)
} }
} }
return sview return sview
......
...@@ -353,43 +353,52 @@ class HomeViewController:BaseViewController { ...@@ -353,43 +353,52 @@ class HomeViewController:BaseViewController {
@objc func handleDataUpdated(_ notification: Notification) { @objc func handleDataUpdated(_ notification: Notification) {
if let userInfo = notification.userInfo { // 首页这里要重新获取下数据
let type : PhotsFileType = userInfo["type"] as! PhotsFileType PhotoDataManager.manager.loadFromFileSystem(resultModel: {[weak self] model in
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 { 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 { ...@@ -49,7 +49,7 @@ class PhotoDataManager {
}else{ }else{
// 删除相似截图和相似视频的缓存 // 删除相似截图和相似视频的缓存
var finalyVideoData : [[AssetModel]] = [] var finalyVideoData : [[AssetModel]] = []
var array = model.otherModelArray[index].assets let array = model.otherModelArray[index].assets
for item in data { for item in data {
for modelData in array { for modelData in array {
var tempArray = modelData var tempArray = modelData
...@@ -60,24 +60,31 @@ class PhotoDataManager { ...@@ -60,24 +60,31 @@ class PhotoDataManager {
} }
} }
model.otherModelArray[index].assets = finalyVideoData model.otherModelArray[index].assets = finalyVideoData
} }
} }
for index in 0..<model.titleModelArray.count { for index in 0..<model.titleModelArray.count {
// 删除相似截图和相似视频的缓存 // 删除相似截图和相似视频的缓存
var size :Double = 0.0
var finalyVideoData : [[AssetModel]] = [] var finalyVideoData : [[AssetModel]] = []
var array = model.titleModelArray[index].assets let array = model.titleModelArray[index].assets
for item in data { for item in data {
for modelData in array { for modelData in array {
var tempArray = modelData var tempArray = modelData
tempArray = tempArray.filter { $0.localIdentifier != item.localIdentifier } tempArray = tempArray.filter { $0.localIdentifier != item.localIdentifier }
if tempArray.count >= 2 { if tempArray.count >= 2 {
finalyVideoData.append(tempArray) 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) self?.saveToFileSystem(model: model)
...@@ -145,9 +152,11 @@ class PhotoDataManager { ...@@ -145,9 +152,11 @@ class PhotoDataManager {
let group = DispatchGroup()
Print("正在处理重复和相似图片") Print("正在处理重复和相似图片")
group.enter()
PhotoAndVideoMananger.mananger.dealSimilarPhotos(assets: PhotoAndVideoMananger.mananger.allAssets, type: 0, threshold: 0.99) { data1,data2 in PhotoAndVideoMananger.mananger.dealSimilarPhotos(assets: PhotoAndVideoMananger.mananger.allAssets, type: 0, threshold: 0.99) { data1,data2 in
var dataArray1 : [AssetModel] = [] var dataArray1 : [AssetModel] = []
var dataArray2 : [AssetModel] = [] var dataArray2 : [AssetModel] = []
...@@ -204,6 +213,7 @@ class PhotoDataManager { ...@@ -204,6 +213,7 @@ class PhotoDataManager {
NotificationCenter.default.post(name: dataUpdated, object: nil) NotificationCenter.default.post(name: dataUpdated, object: nil)
}) })
group.leave()
Print("处理重复和相似图片结束") Print("处理重复和相似图片结束")
} }
...@@ -262,6 +272,7 @@ class PhotoDataManager { ...@@ -262,6 +272,7 @@ class PhotoDataManager {
// 截图数据 // 截图数据
Print("正在处理截图") Print("正在处理截图")
group.enter()
PhotoAndVideoMananger.mananger.dealScreenShotData { data in PhotoAndVideoMananger.mananger.dealScreenShotData { data in
var dataArray : [AssetModel] = [] var dataArray : [AssetModel] = []
for item in data { for item in data {
...@@ -275,6 +286,7 @@ class PhotoDataManager { ...@@ -275,6 +286,7 @@ class PhotoDataManager {
PhotoDataManager.manager.saveToFileSystem(model: allModel) PhotoDataManager.manager.saveToFileSystem(model: allModel)
let dataUpdated = Notification.Name("HomeScreenShotResourceUpdate") let dataUpdated = Notification.Name("HomeScreenShotResourceUpdate")
NotificationCenter.default.post(name: dataUpdated, object: nil) NotificationCenter.default.post(name: dataUpdated, object: nil)
group.leave()
Print("处理截图结束") Print("处理截图结束")
}) })
} }
......
...@@ -751,11 +751,12 @@ class PhotoAndVideoMananger { ...@@ -751,11 +751,12 @@ class PhotoAndVideoMananger {
} }
let isSamilar : Double = OpenCVWrapper.compareImageSimilarity(image1, withImage2: image2) 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!)) currentDuplicateGroup.append(AssetModel(localIdentifier: changeAsset.localIdentifier, assetSize: self.findAssetSize(asset: changeAsset), createDate: changeAsset.creationDate!))
saveFinisedArray.append(currentAsset.localIdentifier) 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!)) currentSimilarGroup.append(AssetModel(localIdentifier: changeAsset.localIdentifier, assetSize: self.findAssetSize(asset: changeAsset), createDate: changeAsset.creationDate!))
saveFinisedArray.append(currentAsset.localIdentifier) 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