Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
P
PhoneManager
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Yang
PhoneManager
Commits
06ce2ebf
Commit
06ce2ebf
authored
Apr 15, 2025
by
CZ1004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化
parent
ee053e70
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
74 additions
and
45 deletions
+74
-45
HomeInfoViewController.swift
...lass/Session/Home/Controller/HomeInfoViewController.swift
+11
-4
HomeViewController.swift
...er/Class/Session/Home/Controller/HomeViewController.swift
+44
-35
HomePhotosModel .swift
...ager/Class/Session/Home/View/Model/HomePhotosModel .swift
+16
-4
PhotoAndVideoMananger.swift
...l/Class/PhotoAndVideoMananger/PhotoAndVideoMananger.swift
+3
-2
No files found.
PhoneManager/Class/Session/Home/Controller/HomeInfoViewController.swift
View file @
06ce2ebf
...
...
@@ -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
...
...
PhoneManager/Class/Session/Home/Controller/HomeViewController.swift
View file @
06ce2ebf
...
...
@@ -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("接收到数据更新通知,但没有携带额外信息")
// }
}
}
PhoneManager/Class/Session/Home/View/Model/HomePhotosModel .swift
View file @
06ce2ebf
...
...
@@ -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
(
"处理截图结束"
)
})
}
...
...
PhoneManager/Class/Tool/Class/PhotoAndVideoMananger/PhotoAndVideoMananger.swift
View file @
06ce2ebf
...
...
@@ -751,11 +751,12 @@ class PhotoAndVideoMananger {
}
let
isSamilar
:
Double
=
OpenCVWrapper
.
compareImageSimilarity
(
image1
,
withImage2
:
image2
)
if
isSamilar
>
0.999
{
if
isSamilar
>
0.999
9
{
currentDuplicateGroup
.
append
(
AssetModel
(
localIdentifier
:
changeAsset
.
localIdentifier
,
assetSize
:
self
.
findAssetSize
(
asset
:
changeAsset
),
createDate
:
changeAsset
.
creationDate
!
))
saveFinisedArray
.
append
(
currentAsset
.
localIdentifier
)
continue
}
if
isSamilar
>
0.99
5
&&
isSamilar
<
0.996
{
if
isSamilar
>
0.99
95
&&
isSamilar
<
0.9999
{
currentSimilarGroup
.
append
(
AssetModel
(
localIdentifier
:
changeAsset
.
localIdentifier
,
assetSize
:
self
.
findAssetSize
(
asset
:
changeAsset
),
createDate
:
changeAsset
.
creationDate
!
))
saveFinisedArray
.
append
(
currentAsset
.
localIdentifier
)
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment