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
f935e637
Commit
f935e637
authored
May 16, 2025
by
CZ1004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【优化】垃圾桶逻辑优化
parent
d9f0c377
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
262 additions
and
189 deletions
+262
-189
CompressController.swift
...r/Class/Page/Compress/Controller/CompressController.swift
+2
-2
HomePhotosDetailViewController.swift
...Page/Home/Controller/HomePhotosDetailViewController.swift
+69
-50
HomeVideoDetailController.swift
...lass/Page/Home/Controller/HomeVideoDetailController.swift
+45
-27
HomeViewController.swift
...nager/Class/Page/Home/Controller/HomeViewController.swift
+2
-10
PhotoRemoveViewController.swift
...lass/Page/Home/Controller/PhotoRemoveViewController.swift
+55
-46
HomeInfoView.swift
PhoneManager/Class/Page/Home/View/HomeInfoView.swift
+39
-35
ResourceFilterBoxView.swift
...eManager/Class/Page/Home/View/ResourceFilterBoxView.swift
+3
-0
ImageSeletedCollectionCell.swift
...lass/Page/Home/View/cell/ImageSeletedCollectionCell.swift
+14
-13
KeepListManager.swift
...Manager/Class/Page/Keep/DataManager/KeepListManager.swift
+33
-0
TrashDataManager.swift
...nager/Class/Page/Trash/DataManager/TrashDataManager.swift
+0
-6
No files found.
PhoneManager/Class/Page/Compress/Controller/CompressController.swift
View file @
f935e637
...
@@ -132,12 +132,12 @@ class CompressController : BaseViewController {
...
@@ -132,12 +132,12 @@ class CompressController : BaseViewController {
self
.
resourceData
=
datas
.
sorted
{
$0
.
createDate
<
$1
.
createDate
}
self
.
resourceData
=
datas
.
sorted
{
$0
.
createDate
<
$1
.
createDate
}
}
}
}
else
{
}
else
{
SVProgressHUD
.
show
()
PMLoadingHUD
.
share
.
show
()
CompressViewModel
()
.
getAllPhotosToAssets
(
sortType
:
self
.
currentSort
,
assetType
:
self
.
currentResourceType
)
{
[
weak
self
]
models
in
CompressViewModel
()
.
getAllPhotosToAssets
(
sortType
:
self
.
currentSort
,
assetType
:
self
.
currentResourceType
)
{
[
weak
self
]
models
in
guard
let
self
else
{
return
}
guard
let
self
else
{
return
}
self
.
resourceData
=
models
self
.
resourceData
=
models
Singleton
.
shared
.
resourceModel
=
self
.
resourceData
Singleton
.
shared
.
resourceModel
=
self
.
resourceData
SVProgressHUD
.
dism
iss
()
PMLoadingHUD
.
share
.
disM
iss
()
}
}
}
}
}
}
...
...
PhoneManager/Class/Page/Home/Controller/HomePhotosDetailViewController.swift
View file @
f935e637
...
@@ -20,34 +20,10 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -20,34 +20,10 @@ class HomePhotosDetailViewController : BaseViewController {
var
imageCache
=
NSCache
<
NSString
,
UIImage
>
()
var
imageCache
=
NSCache
<
NSString
,
UIImage
>
()
@MainActor
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
required
init
(
model
:
HomePhotosModel
)
{
self
.
model
=
model
super
.
init
(
nibName
:
nil
,
bundle
:
nil
)
}
private
var
videoDetailNavView
:
VideoDetaiNavView
?
private
var
videoDetailNavView
:
VideoDetaiNavView
?
var
resourceData
:
[
AssetModel
]
=
[]
var
resourceData
:
[
AssetModel
]
=
[]
func
dealData
(){
var
dataArray
:
[
AssetModel
]
=
[]
for
item
in
self
.
model
.
assets
{
dataArray
=
dataArray
+
item
}
self
.
resourceData
=
self
.
filterTrashData
(
array
:
dataArray
)
self
.
selectedModel
=
self
.
filterTrashData
(
array
:
self
.
selectedModel
)
self
.
sortByType
(
sortType
:
self
.
currentSort
)
}
var
model
:
HomePhotosModel
var
datas
:
[
AssetModel
]
=
[]
// 排序
// 排序
var
currentSort
:
Int
=
0
var
currentSort
:
Int
=
0
...
@@ -64,6 +40,8 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -64,6 +40,8 @@ class HomePhotosDetailViewController : BaseViewController {
}
}
}
}
lazy
var
defaultImageView
:
UIImageView
=
{
lazy
var
defaultImageView
:
UIImageView
=
{
let
defaultImageView
=
UIImageView
()
let
defaultImageView
=
UIImageView
()
defaultImageView
.
image
=
UIImage
(
named
:
"img_photo__home_defpage"
)
defaultImageView
.
image
=
UIImage
(
named
:
"img_photo__home_defpage"
)
...
@@ -114,15 +92,6 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -114,15 +92,6 @@ class HomePhotosDetailViewController : BaseViewController {
}()
}()
/// 过滤垃圾桶数据
/// - Parameter array: 当前数据
/// - Returns: 过滤后的数据
func
filterTrashData
(
array
:
[
AssetModel
])
->
[
AssetModel
]{
let
data
=
TrashDataManager
.
getCurrentMediaTypeTrashData
(
mediaType
:
self
.
mediaType
==
PhotsFileType
.
Other
?
TrashTypeEnum
.
other
:
TrashTypeEnum
.
shot
)
return
array
.
filter
({
!
data
.
map
({
$0
.
localIdentifier
})
.
contains
(
$0
.
localIdentifier
)})
}
func
setUI
(){
func
setUI
(){
...
@@ -269,16 +238,78 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -269,16 +238,78 @@ class HomePhotosDetailViewController : BaseViewController {
}
}
// MARK:系统方法
@MainActor
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
required
init
(
mediaType
:
PhotsFileType
)
{
self
.
mediaType
=
mediaType
super
.
init
(
nibName
:
nil
,
bundle
:
nil
)
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
super
.
viewWillAppear
(
animated
)
super
.
viewWillAppear
(
animated
)
// 目的是为了消除cell 的选择按钮状态
// 重新设置下数据源
if
self
.
selectedModel
.
count
==
0
{
self
.
getCurrentPageData
{
self
.
collectionView
.
reloadData
()
DispatchQueue
.
main
.
async
{
self
.
collectionView
.
reloadData
()
}
}
}
}
// MARK: 数据操作 - 主要方法
/// 获取当前页面数据
/// - Parameter completed: 完成回调
func
getCurrentPageData
(
completed
:
@escaping
()
->
Void
){
// FIXME: 从新获取数据
var
data
=
self
.
mediaType
==
.
Other
?
PhotoManager
.
shared
.
filterOtherModels
:
PhotoManager
.
shared
.
filterScreenShotModels
// 过滤掉垃圾桶数据
data
=
self
.
filterSigtonTrashData
(
array
:
data
)
self
.
selectedModel
=
self
.
filterSigtonTrashData
(
array
:
self
.
selectedModel
)
// 过滤掉保留列表数据
data
=
self
.
filterKeepListData
(
array
:
data
)
self
.
selectedModel
=
self
.
filterKeepListData
(
array
:
self
.
selectedModel
)
self
.
resourceData
=
data
self
.
sortByType
(
sortType
:
self
.
currentSort
)
completed
()
}
}
// MARK: 数据操作 - 辅助方法
/// 过滤垃圾桶数据 - 当前页面数据本身就是已经过滤了垃圾桶数据库的数据了,所以只需要过滤掉单利中的数据
/// - Parameter array: 当前数据
/// - Returns: 过滤后的数据
func
filterSigtonTrashData
(
array
:
[
AssetModel
])
->
[
AssetModel
]{
let
type
=
self
.
mediaType
==
PhotsFileType
.
Other
?
TrashTypeEnum
.
other
:
TrashTypeEnum
.
shot
// 从单利拿数据
let
data
:
[
AssetModel
]
=
Singleton
.
shared
.
trashData
[
type
]
??
[]
return
array
.
filter
({
!
data
.
map
({
$0
.
localIdentifier
})
.
contains
(
$0
.
localIdentifier
)})
}
/// 过滤保留列表数据
/// - Parameter array: 原数据
/// - Returns: 过滤后的数据
func
filterKeepListData
(
array
:
[
AssetModel
])
->
[
AssetModel
]{
let
data
=
KeepListManager
.
getAllKeepListData
()
if
data
.
count
>
0
{
return
array
.
filter
({
!
data
.
map
({
$0
.
localIdentifier
})
.
contains
(
$0
.
localIdentifier
)})
}
return
array
}
func
getImageFromCache
(
model
:
AssetModel
,
completed
:
@escaping
(
UIImage
)
->
Void
){
func
getImageFromCache
(
model
:
AssetModel
,
completed
:
@escaping
(
UIImage
)
->
Void
){
let
cachedImage
=
self
.
imageCache
.
object
(
forKey
:
model
.
localIdentifier
as
NSString
)
let
cachedImage
=
self
.
imageCache
.
object
(
forKey
:
model
.
localIdentifier
as
NSString
)
if
cachedImage
!=
nil
{
if
cachedImage
!=
nil
{
...
@@ -342,22 +373,10 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
...
@@ -342,22 +373,10 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
// 点击之后跳转详情页面
// 点击之后跳转详情页面
if
self
.
mediaType
==
.
screenshots
{
if
self
.
mediaType
==
.
screenshots
{
let
vc
=
PhotoRemoveViewController
(
data
:
self
.
resourceData
,
currentIndex
:
indexPath
.
row
,
mediaType
:
.
shot
)
let
vc
=
PhotoRemoveViewController
(
data
:
self
.
resourceData
,
currentIndex
:
indexPath
.
row
,
mediaType
:
.
shot
)
vc
.
dismissCallback
=
{
self
.
dealData
()
UIView
.
transition
(
with
:
self
.
collectionView
,
duration
:
0.3
,
options
:
.
transitionCrossDissolve
,
animations
:
{
self
.
collectionView
.
reloadData
()
},
completion
:
nil
)
}
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
}
if
self
.
mediaType
==
.
Other
{
if
self
.
mediaType
==
.
Other
{
let
vc
=
PhotoRemoveViewController
(
data
:
self
.
resourceData
,
currentIndex
:
indexPath
.
row
,
mediaType
:
.
other
)
let
vc
=
PhotoRemoveViewController
(
data
:
self
.
resourceData
,
currentIndex
:
indexPath
.
row
,
mediaType
:
.
other
)
vc
.
dismissCallback
=
{
self
.
dealData
()
UIView
.
transition
(
with
:
self
.
collectionView
,
duration
:
0.3
,
options
:
.
transitionCrossDissolve
,
animations
:
{
self
.
collectionView
.
reloadData
()
},
completion
:
nil
)
}
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
}
}
}
...
@@ -418,7 +437,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
...
@@ -418,7 +437,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
let
header
=
collectionView
.
dequeueReusableSupplementaryView
(
ofKind
:
kind
,
withReuseIdentifier
:
"HomePhotosDetailCustomHeaderView"
,
for
:
indexPath
)
as!
HomePhotosDetailCustomHeaderView
let
header
=
collectionView
.
dequeueReusableSupplementaryView
(
ofKind
:
kind
,
withReuseIdentifier
:
"HomePhotosDetailCustomHeaderView"
,
for
:
indexPath
)
as!
HomePhotosDetailCustomHeaderView
// 记录当前的 headerView
// 记录当前的 headerView
header
.
countLabel
.
text
=
"
\(
self
.
resourceData
.
count
)
Photos"
header
.
countLabel
.
text
=
"
\(
self
.
resourceData
.
count
)
Photos"
header
.
modelTitlelabel
.
text
=
self
.
m
odel
.
folderNam
e
header
.
modelTitlelabel
.
text
=
self
.
m
ediaType
?
.
rawValu
e
currentHeaderView
=
header
currentHeaderView
=
header
header
.
sortCallback
=
{[
weak
self
]
in
header
.
sortCallback
=
{[
weak
self
]
in
...
...
PhoneManager/Class/Page/Home/Controller/HomeVideoDetailController.swift
View file @
f935e637
...
@@ -18,8 +18,7 @@ class HomeVideoDetailController :BaseViewController {
...
@@ -18,8 +18,7 @@ class HomeVideoDetailController :BaseViewController {
fatalError
(
"init(coder:) has not been implemented"
)
fatalError
(
"init(coder:) has not been implemented"
)
}
}
required
init
(
model
:
HomePhotosModel
)
{
required
init
()
{
self
.
model
=
model
super
.
init
(
nibName
:
nil
,
bundle
:
nil
)
super
.
init
(
nibName
:
nil
,
bundle
:
nil
)
}
}
...
@@ -27,18 +26,6 @@ class HomeVideoDetailController :BaseViewController {
...
@@ -27,18 +26,6 @@ class HomeVideoDetailController :BaseViewController {
var
resourceData
:
[
AssetModel
]
=
[]
var
resourceData
:
[
AssetModel
]
=
[]
func
dealData
(){
var
dataArray
:
[
AssetModel
]
=
[]
for
item
in
self
.
model
.
assets
{
dataArray
=
dataArray
+
item
}
self
.
resourceData
=
self
.
filterTrashData
(
array
:
dataArray
)
self
.
selectedModel
=
self
.
filterTrashData
(
array
:
self
.
selectedModel
)
self
.
sortByType
(
sortType
:
self
.
currentSort
)
}
var
model
:
HomePhotosModel
// 排序
// 排序
var
currentSort
:
Int
=
0
var
currentSort
:
Int
=
0
...
@@ -65,7 +52,7 @@ class HomeVideoDetailController :BaseViewController {
...
@@ -65,7 +52,7 @@ class HomeVideoDetailController :BaseViewController {
let
layout
=
WaterfallMutiSectionFlowLayout
()
let
layout
=
WaterfallMutiSectionFlowLayout
()
layout
.
delegate
=
self
layout
.
delegate
=
self
let
sview
:
UICollectionView
=
UICollectionView
.
init
(
frame
:
CGRect
(
x
:
marginLR
,
y
:
s
elf
.
videoDetailNavView
!.
height
,
width
:
self
.
view
.
width
-
2
*
marginLR
,
height
:
self
.
view
.
height
-
self
.
videoDetailNavView
!.
height
-
102
),
collectionViewLayout
:
layout
)
let
sview
:
UICollectionView
=
UICollectionView
.
init
(
frame
:
CGRect
(
x
:
marginLR
,
y
:
s
tatusBarHeight
+
44
,
width
:
self
.
view
.
width
-
2
*
marginLR
,
height
:
self
.
view
.
height
-
(
statusBarHeight
+
44
)
-
102
),
collectionViewLayout
:
layout
)
sview
.
register
(
HomeVideoDetailCell
.
self
,
forCellWithReuseIdentifier
:
"HomeVideoDetailCell"
)
sview
.
register
(
HomeVideoDetailCell
.
self
,
forCellWithReuseIdentifier
:
"HomeVideoDetailCell"
)
sview
.
register
(
HomeVideoDetailCustomHeaderView
.
self
,
forSupplementaryViewOfKind
:
UICollectionView
.
elementKindSectionHeader
,
withReuseIdentifier
:
"HomeVideoDetailCustomHeaderView"
)
sview
.
register
(
HomeVideoDetailCustomHeaderView
.
self
,
forSupplementaryViewOfKind
:
UICollectionView
.
elementKindSectionHeader
,
withReuseIdentifier
:
"HomeVideoDetailCustomHeaderView"
)
...
@@ -109,15 +96,50 @@ class HomeVideoDetailController :BaseViewController {
...
@@ -109,15 +96,50 @@ class HomeVideoDetailController :BaseViewController {
return
label
return
label
}()
}()
/// 过滤垃圾桶数据
// MARK: 数据操作 - 主要方法
/// 获取当前页面数据
/// - Parameter completed: 完成回调
func
getCurrentPageData
(
completed
:
@escaping
()
->
Void
){
var
data
=
PhotoManager
.
shared
.
filterVideoModels
// 过滤掉垃圾桶数据
data
=
self
.
filterSigtonTrashData
(
array
:
data
)
self
.
selectedModel
=
self
.
filterSigtonTrashData
(
array
:
self
.
selectedModel
)
// 过滤掉保留列表数据
data
=
self
.
filterKeepListData
(
array
:
data
)
self
.
selectedModel
=
self
.
filterKeepListData
(
array
:
self
.
selectedModel
)
self
.
resourceData
=
data
self
.
sortByType
(
sortType
:
self
.
currentSort
)
completed
()
}
// MARK: 数据操作 - 辅助方法
/// 过滤垃圾桶数据 - 当前页面数据本身就是已经过滤了垃圾桶数据库的数据了,所以只需要过滤掉单利中的数据
/// - Parameter array: 当前数据
/// - Parameter array: 当前数据
/// - Returns: 过滤后的数据
/// - Returns: 过滤后的数据
func
filterTrashData
(
array
:
[
AssetModel
])
->
[
AssetModel
]{
func
filterSigtonTrashData
(
array
:
[
AssetModel
])
->
[
AssetModel
]{
let
data
=
TrashDataManager
.
getCurrentMediaTypeTrashData
(
mediaType
:
.
video
)
// 从单利拿数据
let
data
=
Singleton
.
shared
.
trashData
[
TrashTypeEnum
.
video
]
??
[]
return
array
.
filter
({
!
data
.
map
({
$0
.
localIdentifier
})
.
contains
(
$0
.
localIdentifier
)})
return
array
.
filter
({
!
data
.
map
({
$0
.
localIdentifier
})
.
contains
(
$0
.
localIdentifier
)})
}
}
/// 过滤保留列表数据
/// - Parameter array: 原数据
/// - Returns: 过滤后的数据
func
filterKeepListData
(
array
:
[
AssetModel
])
->
[
AssetModel
]{
let
data
=
KeepListManager
.
getAllKeepListData
()
if
data
.
count
>
0
{
return
array
.
filter
({
!
data
.
map
({
$0
.
localIdentifier
})
.
contains
(
$0
.
localIdentifier
)})
}
return
array
}
func
setUI
(){
func
setUI
(){
videoDetailNavView
=
VideoDetaiNavView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
self
.
view
.
width
,
height
:
statusBarHeight
+
44
))
videoDetailNavView
=
VideoDetaiNavView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
self
.
view
.
width
,
height
:
statusBarHeight
+
44
))
self
.
view
.
addSubview
(
videoDetailNavView
!
)
self
.
view
.
addSubview
(
videoDetailNavView
!
)
...
@@ -210,9 +232,11 @@ class HomeVideoDetailController :BaseViewController {
...
@@ -210,9 +232,11 @@ class HomeVideoDetailController :BaseViewController {
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
super
.
viewWillAppear
(
animated
)
super
.
viewWillAppear
(
animated
)
// 目的是为了消除cell 的选择按钮状态
// 重新设置下数据源
if
self
.
selectedModel
.
count
==
0
{
self
.
getCurrentPageData
{
self
.
collectionView
.
reloadData
()
DispatchQueue
.
main
.
async
{
self
.
collectionView
.
reloadData
()
}
}
}
}
}
...
@@ -285,12 +309,6 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
...
@@ -285,12 +309,6 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
PhotoAndVideoMananger
.
mananger
.
getVideoImageByIdent
(
ident
:
ident
)
{
image
in
PhotoAndVideoMananger
.
mananger
.
getVideoImageByIdent
(
ident
:
ident
)
{
image
in
// 点击之后跳转详情页面
// 点击之后跳转详情页面
let
vc
=
PhotoRemoveViewController
(
data
:
self
.
resourceData
,
currentIndex
:
indexPath
.
row
,
mediaType
:
.
video
)
let
vc
=
PhotoRemoveViewController
(
data
:
self
.
resourceData
,
currentIndex
:
indexPath
.
row
,
mediaType
:
.
video
)
vc
.
dismissCallback
=
{
self
.
dealData
()
UIView
.
transition
(
with
:
self
.
collectionView
,
duration
:
0.3
,
options
:
.
transitionCrossDissolve
,
animations
:
{
self
.
collectionView
.
reloadData
()
},
completion
:
nil
)
}
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
errorHandler
:
{
}
errorHandler
:
{
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
...
...
PhoneManager/Class/Page/Home/Controller/HomeViewController.swift
View file @
f935e637
...
@@ -130,8 +130,7 @@ class HomeViewController:BaseViewController {
...
@@ -130,8 +130,7 @@ class HomeViewController:BaseViewController {
guard
let
self
else
{
return
}
guard
let
self
else
{
return
}
if
otherItemRow
==
0
{
if
otherItemRow
==
0
{
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
let
vc
:
HomeVideoDetailController
=
HomeVideoDetailController
(
model
:
model
)
let
vc
:
HomeVideoDetailController
=
HomeVideoDetailController
()
vc
.
dealData
()
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
}
}
}
...
@@ -149,16 +148,9 @@ class HomeViewController:BaseViewController {
...
@@ -149,16 +148,9 @@ class HomeViewController:BaseViewController {
}
}
}
}
if
otherItemRow
==
2
||
otherItemRow
==
4
{
if
otherItemRow
==
2
||
otherItemRow
==
4
{
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
let
vc
:
HomePhotosDetailViewController
=
HomePhotosDetailViewController
(
model
:
model
)
let
vc
=
HomePhotosDetailViewController
(
mediaType
:
otherItemRow
==
2
?
.
screenshots
:
.
Other
)
if
otherItemRow
==
2
{
vc
.
mediaType
=
.
screenshots
}
else
{
vc
.
mediaType
=
.
Other
}
vc
.
dealData
()
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
}
}
}
...
...
PhoneManager/Class/Page/Home/Controller/PhotoRemoveViewController.swift
View file @
f935e637
...
@@ -11,9 +11,6 @@ import Photos
...
@@ -11,9 +11,6 @@ import Photos
class
PhotoRemoveViewController
:
BaseViewController
{
class
PhotoRemoveViewController
:
BaseViewController
{
var
dismissCallback
:
()
->
Void
=
{}
var
mediaType
:
TrashTypeEnum
?
{
var
mediaType
:
TrashTypeEnum
?
{
didSet
{
didSet
{
if
mediaType
==
.
video
{
if
mediaType
==
.
video
{
...
@@ -121,24 +118,28 @@ class PhotoRemoveViewController: BaseViewController {
...
@@ -121,24 +118,28 @@ class PhotoRemoveViewController: BaseViewController {
}
}
}
}
self
.
navView
.
reSetCallBack
=
{
self
.
navView
.
reSetCallBack
=
{
// 拿到单利中最后一个
if
self
.
currentIndex
>
0
{
if
let
model
=
self
.
getSigtonCurrentMediaTrashLastData
(){
self
.
currentIndex
=
self
.
currentIndex
-
1
// 判断当前数组中有没有这个数据(有的话表示是在当前页面撤销)
if
self
.
dataModel
.
map
({
$0
.
localIdentifier
})
.
contains
(
model
.
localIdentifier
){
if
self
.
currentIndex
>
0
{
self
.
currentIndex
=
self
.
currentIndex
-
1
}
}
else
{
// 没有这个数据表示从外部跳转进这个页面,当前位置插入一个数据
self
.
dataModel
.
insert
(
model
,
at
:
self
.
currentIndex
)
}
// 重新设置下图片
// 重新设置下图片
self
.
updateViewContents
()
self
.
updateViewContents
()
// 视图层级处理
// 视图层级处理
self
.
bringCurrentViewToFront
()
self
.
bringCurrentViewToFront
()
// 移除当前数据
self
.
removeCurrentMediaTypeTrashLastData
()
// 移除完成后 重新设置下按钮状态
self
.
showCurrentPageUIWhenTashDataChanged
()
}
}
// 移除单利中当前类型数组的最后一个数据
self
.
removeCurrentMediaTypeTrashLastData
()
// 移除完成后 重新设置下按钮状态
self
.
showCurrentPageUIWhenTashDataChanged
()
}
}
showCurrentPageUIWhenTashDataChanged
()
showCurrentPageUIWhenTashDataChanged
()
...
@@ -146,6 +147,20 @@ class PhotoRemoveViewController: BaseViewController {
...
@@ -146,6 +147,20 @@ class PhotoRemoveViewController: BaseViewController {
self
.
addListener
()
self
.
addListener
()
}
}
// 拿到当前类型垃圾桶数据的最后一个
func
getSigtonCurrentMediaTrashLastData
()
->
AssetModel
?
{
var
model
:
AssetModel
?
if
let
type
=
self
.
mediaType
{
if
let
dataSg
=
Singleton
.
shared
.
trashData
[
type
]{
let
tempArray
=
dataSg
if
tempArray
.
count
>
0
{
model
=
tempArray
[
tempArray
.
count
-
1
]
}
}
}
return
model
}
// 跳转垃圾桶第几个page
// 跳转垃圾桶第几个page
func
getJumpPageIndex
()
->
Int
{
func
getJumpPageIndex
()
->
Int
{
if
self
.
mediaType
==
.
video
{
if
self
.
mediaType
==
.
video
{
...
@@ -166,25 +181,16 @@ class PhotoRemoveViewController: BaseViewController {
...
@@ -166,25 +181,16 @@ class PhotoRemoveViewController: BaseViewController {
let
type
=
notification
.
userInfo
?[
"type"
]
as?
String
else
{
return
}
let
type
=
notification
.
userInfo
?[
"type"
]
as?
String
else
{
return
}
if
let
targetVC
=
self
.
navigationController
?
.
viewControllers
.
first
(
where
:
{
$0
is
HomeViewController
})
as?
HomeViewController
{
if
let
targetVC
=
self
.
navigationController
?
.
viewControllers
.
first
(
where
:
{
$0
is
HomeViewController
})
as?
HomeViewController
{
self
.
navigationController
?
.
popToViewController
(
targetVC
,
animated
:
false
)
self
.
navigationController
?
.
popToViewController
(
targetVC
,
animated
:
false
)
PhotoDataManager
.
manager
.
loadFromFileSystem
{
model
in
let
vc
:
HomePhotosDetailViewController
=
HomePhotosDetailViewController
(
mediaType
:
type
==
"Other"
?
PhotsFileType
.
Other
:
PhotsFileType
.
screenshots
)
let
data
=
type
==
"Other"
?
model
.
otherModelArray
[
4
]
:
model
.
otherModelArray
[
2
]
targetVC
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
let
vc
:
HomePhotosDetailViewController
=
HomePhotosDetailViewController
(
model
:
data
)
vc
.
mediaType
=
type
==
"Other"
?
.
Other
:
PhotsFileType
.
screenshots
vc
.
dealData
()
targetVC
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
}
}
}
}
NotificationCenter
.
default
.
addObserver
(
forName
:
TrashDefaultView
.
jumpToVideosDetailPageName
,
object
:
nil
,
queue
:
.
main
)
{
[
weak
self
]
notification
in
NotificationCenter
.
default
.
addObserver
(
forName
:
TrashDefaultView
.
jumpToVideosDetailPageName
,
object
:
nil
,
queue
:
.
main
)
{
[
weak
self
]
notification
in
guard
let
self
else
{
return
}
guard
let
self
else
{
return
}
if
let
targetVC
=
self
.
navigationController
?
.
viewControllers
.
first
(
where
:
{
$0
is
HomeViewController
})
as?
HomeViewController
{
if
let
targetVC
=
self
.
navigationController
?
.
viewControllers
.
first
(
where
:
{
$0
is
HomeViewController
})
as?
HomeViewController
{
self
.
navigationController
?
.
popToViewController
(
targetVC
,
animated
:
false
)
self
.
navigationController
?
.
popToViewController
(
targetVC
,
animated
:
false
)
PhotoDataManager
.
manager
.
loadFromFileSystem
{
model
in
let
vc
:
HomeVideoDetailController
=
HomeVideoDetailController
()
let
data
=
model
.
otherModelArray
[
0
]
targetVC
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
let
vc
:
HomeVideoDetailController
=
HomeVideoDetailController
(
model
:
data
)
vc
.
dealData
()
targetVC
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
}
}
}
}
}
}
...
@@ -194,6 +200,12 @@ class PhotoRemoveViewController: BaseViewController {
...
@@ -194,6 +200,12 @@ class PhotoRemoveViewController: BaseViewController {
if
let
dataSg
=
Singleton
.
shared
.
trashData
[
type
]{
if
let
dataSg
=
Singleton
.
shared
.
trashData
[
type
]{
var
tempArray
=
dataSg
var
tempArray
=
dataSg
if
tempArray
.
count
>
0
{
if
tempArray
.
count
>
0
{
// 获取最后一个
let
identifier
=
tempArray
[
tempArray
.
count
-
1
]
.
localIdentifier
let
success
=
TrashDatabase
.
shared
.
delete
(
localIdentifier
:
identifier
)
if
!
success
{
Print
(
"删除失败"
)
}
tempArray
.
removeLast
()
tempArray
.
removeLast
()
}
}
Singleton
.
shared
.
trashData
[
type
]
=
tempArray
Singleton
.
shared
.
trashData
[
type
]
=
tempArray
...
@@ -206,7 +218,6 @@ class PhotoRemoveViewController: BaseViewController {
...
@@ -206,7 +218,6 @@ class PhotoRemoveViewController: BaseViewController {
super
.
viewDidDisappear
(
animated
)
super
.
viewDidDisappear
(
animated
)
// 视图消失的时候存到数据库
// 视图消失的时候存到数据库
saveDataToKeepListDB
()
saveDataToKeepListDB
()
self
.
dismissCallback
()
}
}
...
@@ -252,9 +263,7 @@ class PhotoRemoveViewController: BaseViewController {
...
@@ -252,9 +263,7 @@ class PhotoRemoveViewController: BaseViewController {
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
if
let
type
=
self
.
mediaType
{
if
let
type
=
self
.
mediaType
{
if
let
dataSg
=
Singleton
.
shared
.
trashData
[
type
]{
if
let
dataSg
=
Singleton
.
shared
.
trashData
[
type
]{
assetModel
=
assetModel
+
dataSg
// 如果单利中有当前数据,显示撤回按钮
// 如果单利中有当前数据,显示撤回按钮
if
dataSg
.
count
>
0
{
if
dataSg
.
count
>
0
{
self
.
navView
.
resetButton
.
isHidden
=
false
self
.
navView
.
resetButton
.
isHidden
=
false
}
else
{
}
else
{
...
@@ -265,6 +274,8 @@ class PhotoRemoveViewController: BaseViewController {
...
@@ -265,6 +274,8 @@ class PhotoRemoveViewController: BaseViewController {
self
.
navView
.
resetButton
.
isHidden
=
true
self
.
navView
.
resetButton
.
isHidden
=
true
}
}
}
}
if
assetModel
.
count
>
0
{
if
assetModel
.
count
>
0
{
// 显示垃圾桶
// 显示垃圾桶
self
.
trashSubView
.
resourceCountlabel
.
text
=
String
(
assetModel
.
count
)
self
.
trashSubView
.
resourceCountlabel
.
text
=
String
(
assetModel
.
count
)
...
@@ -294,16 +305,22 @@ class PhotoRemoveViewController: BaseViewController {
...
@@ -294,16 +305,22 @@ class PhotoRemoveViewController: BaseViewController {
}
}
// 存垃圾桶数据到单利
// 存垃圾桶数据到单利
func
saveDataToSigtonTrash
(){
func
saveDataTo
DBAnd
SigtonTrash
(){
// 拿到单利数据
// 拿到单利数据
let
model
=
self
.
dataModel
[
currentIndex
]
if
let
type
=
self
.
mediaType
{
if
let
type
=
self
.
mediaType
{
if
let
dataSg
=
Singleton
.
shared
.
trashData
[
type
]{
if
let
dataSg
=
Singleton
.
shared
.
trashData
[
type
]{
var
tempArray
=
dataSg
var
tempArray
=
dataSg
tempArray
.
append
(
self
.
dataModel
[
currentIndex
]
)
tempArray
.
append
(
model
)
Singleton
.
shared
.
trashData
[
type
]
=
tempArray
Singleton
.
shared
.
trashData
[
type
]
=
tempArray
}
else
{
}
else
{
Singleton
.
shared
.
trashData
[
type
]
=
[
self
.
dataModel
[
currentIndex
]]
Singleton
.
shared
.
trashData
[
type
]
=
[
self
.
dataModel
[
currentIndex
]]
}
}
// 保存当前数据到数据库
let
success
=
TrashDatabase
.
shared
.
insert
(
localIdentifier
:
model
.
localIdentifier
,
assetSize
:
model
.
assetSize
,
createDate
:
model
.
createDate
,
mediaType
:
type
.
dbType
)
if
!
success
{
Print
(
"保存数据失败"
)
}
}
}
self
.
showCurrentPageUIWhenTashDataChanged
()
self
.
showCurrentPageUIWhenTashDataChanged
()
}
}
...
@@ -322,17 +339,9 @@ class PhotoRemoveViewController: BaseViewController {
...
@@ -322,17 +339,9 @@ class PhotoRemoveViewController: BaseViewController {
}
}
}
}
func
saveDataToTrashDB
(){
func
clearSigtonTrashData
(){
if
let
type
=
self
.
mediaType
{
if
let
type
=
self
.
mediaType
{
if
let
dataSg
=
Singleton
.
shared
.
trashData
[
type
]{
Singleton
.
shared
.
trashData
[
type
]
=
[]
for
item
in
dataSg
{
let
success
=
TrashDatabase
.
shared
.
insert
(
localIdentifier
:
item
.
localIdentifier
,
assetSize
:
item
.
assetSize
,
createDate
:
item
.
createDate
,
mediaType
:
type
.
dbType
)
if
success
{
Print
(
"保留单利数据到数据库垃圾桶成功"
)
}
}
Singleton
.
shared
.
trashData
[
type
]
=
[]
}
}
}
showCurrentPageUIWhenTashDataChanged
()
showCurrentPageUIWhenTashDataChanged
()
}
}
...
@@ -387,14 +396,14 @@ class PhotoRemoveViewController: BaseViewController {
...
@@ -387,14 +396,14 @@ class PhotoRemoveViewController: BaseViewController {
if
abs
(
actualTranslation
.
x
)
>
actionMargin
||
abs
(
velocity
.
x
)
>
500
{
if
abs
(
actualTranslation
.
x
)
>
actionMargin
||
abs
(
velocity
.
x
)
>
500
{
removeCurrentView
(
translation
:
actualTranslation
,
velocity
:
velocity
)
removeCurrentView
(
translation
:
actualTranslation
,
velocity
:
velocity
)
if
actualTranslation
.
x
>
0
{
if
actualTranslation
.
x
>
0
{
//
保存垃圾桶数据到数据库
//
清除单利数据
saveDataToTrashDB
()
clearSigtonTrashData
()
// 保留操作
// 保留操作
saveDataToSigtonKeepList
()
saveDataToSigtonKeepList
()
}
}
if
actualTranslation
.
x
<
0
{
if
actualTranslation
.
x
<
0
{
// 删除操作,先存到单利
// 删除操作,先存到单利
saveDataToSigtonTrash
()
saveDataTo
DBAnd
SigtonTrash
()
}
}
}
else
{
}
else
{
resetViewPosition
(
activeView
)
resetViewPosition
(
activeView
)
...
...
PhoneManager/Class/Page/Home/View/HomeInfoView.swift
View file @
f935e637
...
@@ -43,7 +43,6 @@ class HomeInfoView :UIView {
...
@@ -43,7 +43,6 @@ class HomeInfoView :UIView {
let
sview
:
HomeInfoTitleView
=
HomeInfoTitleView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
width
,
height
:
84
))
let
sview
:
HomeInfoTitleView
=
HomeInfoTitleView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
width
,
height
:
84
))
sview
.
titleLabel
.
text
=
self
.
titleText
sview
.
titleLabel
.
text
=
self
.
titleText
sview
.
filterButton
.
isHidden
=
self
.
type
!=
.
similar
&&
self
.
type
!=
.
SimilarVideos
sview
.
filterButton
.
isHidden
=
self
.
type
!=
.
similar
&&
self
.
type
!=
.
SimilarVideos
tableView
.
addSubview
(
sview
)
return
sview
return
sview
}()
}()
...
@@ -114,39 +113,35 @@ class HomeInfoView :UIView {
...
@@ -114,39 +113,35 @@ class HomeInfoView :UIView {
self
.
headerView
.
sortViewSubmitCallBack
=
{[
weak
self
]
filterModel
in
self
.
headerView
.
sortViewSubmitCallBack
=
{[
weak
self
]
filterModel
in
guard
let
self
else
{
return
}
guard
let
self
else
{
return
}
// 从源头获取相似数据
var
dataS
:
[[
AssetModel
]]
=
[]
PhotoDataManager
.
manager
.
loadFromFileSystem
(
resultModel
:
{[
weak
self
]
model
in
if
self
.
type
==
.
SimilarVideos
{
guard
let
self
else
{
return
}
dataS
=
PhotoManager
.
shared
.
filterSimilarVideoModels
var
dataS
:
[[
AssetModel
]]
=
[]
}
else
{
if
self
.
type
==
.
SimilarVideos
{
dataS
=
PhotoManager
.
shared
.
filterSimilarModels
dataS
=
model
.
otherModelArray
[
3
]
.
assets
}
}
else
{
let
tempData
=
self
.
filterDataByDate
(
orgModels
:
dataS
,
startDate
:
filterModel
.
startDate
,
endDate
:
filterModel
.
endDate
)
dataS
=
model
.
titleModelArray
[
1
]
.
assets
// 重新更新下数据源
}
self
.
ids
=
self
.
sortData
(
source
:
tempData
,
type
:
filterModel
.
sortType
)
let
tempData
=
self
.
filterDataByDate
(
orgModels
:
dataS
,
startDate
:
filterModel
.
startDate
,
endDate
:
filterModel
.
endDate
)
var
tempModels
:
[
HomeInfoTableItem
]
=
[]
// 重新更新下数据源
for
array
in
self
.
ids
??
[]
{
self
.
ids
=
self
.
sortData
(
source
:
tempData
,
type
:
filterModel
.
sortType
)
var
smodels
:[
ImageSeletedCollectionItem
]
=
[]
var
tempModels
:
[
HomeInfoTableItem
]
=
[]
for
id
in
array
{
for
array
in
self
.
ids
??
[]
{
let
smodel
=
ImageSeletedCollectionItem
()
var
smodels
:[
ImageSeletedCollectionItem
]
=
[]
smodel
.
id
=
id
for
id
in
array
{
smodel
.
isSeleted
=
false
let
smodel
=
ImageSeletedCollectionItem
()
smodels
.
append
(
smodel
)
smodel
.
id
=
id
smodel
.
isSeleted
=
false
smodels
.
append
(
smodel
)
}
let
smodel
=
HomeInfoTableItem
()
smodel
.
type
=
type
smodel
.
smodels
=
smodels
smodel
.
titleText
=
titleText
tempModels
.
append
(
smodel
)
}
models
=
tempModels
DispatchQueue
.
main
.
async
{
// FIXME: 闪屏
self
.
tableView
.
reloadSections
(
IndexSet
(
integer
:
0
),
with
:
.
automatic
)
}
}
})
let
smodel
=
HomeInfoTableItem
()
smodel
.
type
=
type
smodel
.
smodels
=
smodels
smodel
.
titleText
=
titleText
tempModels
.
append
(
smodel
)
}
models
=
tempModels
DispatchQueue
.
main
.
async
{
self
.
setTitleView
()
self
.
tableView
.
reloadSections
(
IndexSet
(
integer
:
0
),
with
:
.
automatic
)
}
}
}
}
}
...
@@ -372,7 +367,7 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate {
...
@@ -372,7 +367,7 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate {
func
tableView
(
_
tableView
:
UITableView
,
numberOfRowsInSection
section
:
Int
)
->
Int
{
func
tableView
(
_
tableView
:
UITableView
,
numberOfRowsInSection
section
:
Int
)
->
Int
{
return
ids
?
.
count
??
0
return
models
.
count
}
}
func
tableView
(
_
tableView
:
UITableView
,
cellForRowAt
indexPath
:
IndexPath
)
->
UITableViewCell
{
func
tableView
(
_
tableView
:
UITableView
,
cellForRowAt
indexPath
:
IndexPath
)
->
UITableViewCell
{
...
@@ -410,6 +405,12 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate {
...
@@ -410,6 +405,12 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate {
func
tableView
(
_
tableView
:
UITableView
,
viewForHeaderInSection
section
:
Int
)
->
UIView
?
{
func
tableView
(
_
tableView
:
UITableView
,
viewForHeaderInSection
section
:
Int
)
->
UIView
?
{
return
UIView
()
return
UIView
()
}
func
tableView
(
_
tableView
:
UITableView
,
willDisplayHeaderView
view
:
UIView
,
forSection
section
:
Int
)
{
tableView
.
addSubview
(
self
.
headerView
)
tableView
.
bringSubviewToFront
(
self
.
headerView
)
}
}
func
filterDataByDate
(
orgModels
:
[[
AssetModel
]],
startDate
:
Date
?
,
endDate
:
Date
?)
->
[[
AssetModel
]]{
func
filterDataByDate
(
orgModels
:
[[
AssetModel
]],
startDate
:
Date
?
,
endDate
:
Date
?)
->
[[
AssetModel
]]{
...
@@ -423,7 +424,7 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate {
...
@@ -423,7 +424,7 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate {
array
=
array
.
filter
({
$0
.
createDate
<
endDate
!
})
array
=
array
.
filter
({
$0
.
createDate
<
endDate
!
})
}
}
if
array
.
count
>
2
{
if
array
.
count
>
=
2
{
tempArray
.
append
(
item
)
tempArray
.
append
(
item
)
}
}
}
}
...
@@ -573,6 +574,9 @@ class HomeInfoTitleView:UIView {
...
@@ -573,6 +574,9 @@ class HomeInfoTitleView:UIView {
@objc
func
filterButtonAction
(){
@objc
func
filterButtonAction
(){
if
let
cWindow
=
cWindow
{
if
let
cWindow
=
cWindow
{
let
filterView
:
ResourceFilterBoxView
=
ResourceFilterBoxView
.
init
(
frame
:
cWindow
.
bounds
)
let
filterView
:
ResourceFilterBoxView
=
ResourceFilterBoxView
.
init
(
frame
:
cWindow
.
bounds
)
// 添加毛玻璃效果
cWindow
.
showBlur
()
cWindow
.
addSubview
(
filterView
)
cWindow
.
addSubview
(
filterView
)
filterView
.
submitCallBack
=
{
model
in
filterView
.
submitCallBack
=
{
model
in
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
...
...
PhoneManager/Class/Page/Home/View/ResourceFilterBoxView.swift
View file @
f935e637
...
@@ -50,6 +50,7 @@ class ResourceFilterBoxView : UIView {
...
@@ -50,6 +50,7 @@ class ResourceFilterBoxView : UIView {
lazy
var
backView
:
UIView
=
{
lazy
var
backView
:
UIView
=
{
let
view
=
UIView
()
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
red
:
0.07
,
green
:
0.07
,
blue
:
0.07
,
alpha
:
0.8000
)
view
.
backgroundColor
=
UIColor
(
red
:
0.07
,
green
:
0.07
,
blue
:
0.07
,
alpha
:
0.8000
)
view
.
backgroundColor
=
.
clear
view
.
isUserInteractionEnabled
=
true
view
.
isUserInteractionEnabled
=
true
let
tap
=
UITapGestureRecognizer
()
let
tap
=
UITapGestureRecognizer
()
tap
.
addTarget
(
self
,
action
:
#selector(
backViewClick
)
)
tap
.
addTarget
(
self
,
action
:
#selector(
backViewClick
)
)
...
@@ -211,6 +212,7 @@ class ResourceFilterBoxView : UIView {
...
@@ -211,6 +212,7 @@ class ResourceFilterBoxView : UIView {
// 移除自身
// 移除自身
self
.
dismissDatePicker
()
self
.
dismissDatePicker
()
self
.
removeFromSuperview
()
self
.
removeFromSuperview
()
cWindow
?
.
hideBlur
()
self
.
submitCallBack
(
ResourceFilterBoxModel
.
init
(
startDate
:
self
.
startDate
,
endDate
:
self
.
endDate
,
sortType
:
getSortTypeByTag
(
tag
:
self
.
currentIndex
)))
self
.
submitCallBack
(
ResourceFilterBoxModel
.
init
(
startDate
:
self
.
startDate
,
endDate
:
self
.
endDate
,
sortType
:
getSortTypeByTag
(
tag
:
self
.
currentIndex
)))
// 开始排序
// 开始排序
...
@@ -274,6 +276,7 @@ class ResourceFilterBoxView : UIView {
...
@@ -274,6 +276,7 @@ class ResourceFilterBoxView : UIView {
// 移除自身
// 移除自身
self
.
dismissDatePicker
()
self
.
dismissDatePicker
()
self
.
removeFromSuperview
()
self
.
removeFromSuperview
()
cWindow
?
.
hideBlur
()
}
}
...
...
PhoneManager/Class/Page/Home/View/cell/ImageSeletedCollectionCell.swift
View file @
f935e637
...
@@ -25,11 +25,11 @@ class ImageSeletedCollectionCell:UICollectionViewCell {
...
@@ -25,11 +25,11 @@ class ImageSeletedCollectionCell:UICollectionViewCell {
lazy
var
allKeepButton
:
UIButton
=
{
lazy
var
allKeepButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
let
button
=
UIButton
(
type
:
.
custom
)
button
.
backgroundColor
=
UIColor
(
red
:
0.33
,
green
:
0.77
,
blue
:
0.49
,
alpha
:
1
)
button
.
backgroundColor
=
UIColor
(
red
:
0.33
,
green
:
0.77
,
blue
:
0.49
,
alpha
:
1
)
button
.
layer
.
cornerRadius
=
7
button
.
layer
.
cornerRadius
=
12
button
.
clipsToBounds
=
true
button
.
clipsToBounds
=
true
button
.
setTitle
(
"All retained"
,
for
:
.
normal
)
button
.
setTitle
(
"All retained"
,
for
:
.
normal
)
button
.
setTitleColor
(
.
white
,
for
:
.
normal
)
button
.
setTitleColor
(
.
white
,
for
:
.
normal
)
button
.
titleLabel
?
.
font
=
UIFont
.
systemFont
(
ofSize
:
9
,
weight
:
.
semibold
)
button
.
titleLabel
?
.
font
=
UIFont
.
systemFont
(
ofSize
:
12
,
weight
:
.
semibold
)
button
.
addTarget
(
self
,
action
:
#selector(
allKeepButtonAction
)
,
for
:
.
touchUpInside
)
button
.
addTarget
(
self
,
action
:
#selector(
allKeepButtonAction
)
,
for
:
.
touchUpInside
)
button
.
isHidden
=
true
button
.
isHidden
=
true
return
button
return
button
...
@@ -37,14 +37,14 @@ class ImageSeletedCollectionCell:UICollectionViewCell {
...
@@ -37,14 +37,14 @@ class ImageSeletedCollectionCell:UICollectionViewCell {
lazy
var
bestResultButton
:
UIButton
=
{
lazy
var
bestResultButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
let
button
=
UIButton
(
type
:
.
custom
)
button
.
layer
.
cornerRadius
=
8
button
.
layer
.
cornerRadius
=
10
button
.
clipsToBounds
=
true
button
.
clipsToBounds
=
true
button
.
backgroundColor
=
UIColor
(
red
:
1
,
green
:
0.65
,
blue
:
0
,
alpha
:
1
)
button
.
backgroundColor
=
UIColor
(
red
:
1
,
green
:
0.65
,
blue
:
0
,
alpha
:
1
)
button
.
setTitle
(
"Best"
,
for
:
.
normal
)
button
.
setTitle
(
"Best"
,
for
:
.
normal
)
button
.
setImage
(
UIImage
(
named
:
"Frame"
),
for
:
.
normal
)
button
.
setImage
(
UIImage
(
named
:
"Frame"
),
for
:
.
normal
)
button
.
setTitleColor
(
.
white
,
for
:
.
normal
)
button
.
setTitleColor
(
.
white
,
for
:
.
normal
)
button
.
isHidden
=
true
button
.
isHidden
=
true
button
.
titleLabel
?
.
font
=
UIFont
.
systemFont
(
ofSize
:
1
0
,
weight
:
.
semibold
)
button
.
titleLabel
?
.
font
=
UIFont
.
systemFont
(
ofSize
:
1
2
,
weight
:
.
semibold
)
return
button
return
button
}()
}()
...
@@ -174,15 +174,16 @@ class ImageSeletedCollectionCell:UICollectionViewCell {
...
@@ -174,15 +174,16 @@ class ImageSeletedCollectionCell:UICollectionViewCell {
self
.
addSubview
(
self
.
bestResultButton
)
self
.
addSubview
(
self
.
bestResultButton
)
self
.
allKeepButton
.
snp
.
makeConstraints
{
make
in
self
.
allKeepButton
.
snp
.
makeConstraints
{
make
in
make
.
top
.
left
.
equalToSuperview
()
make
.
top
.
left
.
equalToSuperview
()
.
offset
(
4
)
make
.
width
.
equalTo
(
58
)
make
.
width
.
equalTo
(
80
)
make
.
height
.
equalTo
(
1
4
)
make
.
height
.
equalTo
(
2
4
)
}
}
self
.
bestResultButton
.
snp
.
makeConstraints
{
make
in
self
.
bestResultButton
.
snp
.
makeConstraints
{
make
in
make
.
left
.
bottom
.
equalToSuperview
()
make
.
left
.
equalToSuperview
()
.
offset
(
4
)
make
.
width
.
equalTo
(
52
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
4
)
make
.
height
.
equalTo
(
16
)
make
.
width
.
equalTo
(
60
)
make
.
height
.
equalTo
(
20
)
}
}
}
}
...
@@ -207,9 +208,9 @@ class ImageSeletedCollectionCell:UICollectionViewCell {
...
@@ -207,9 +208,9 @@ class ImageSeletedCollectionCell:UICollectionViewCell {
seletedBtn
?
.
snp
.
makeConstraints
({
make
in
seletedBtn
?
.
snp
.
makeConstraints
({
make
in
make
.
width
.
height
.
equalTo
(
24
)
make
.
width
.
height
.
equalTo
(
12
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
12
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
6
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
20
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
6
)
})
})
self
.
extensionView
.
snp
.
makeConstraints
{
make
in
self
.
extensionView
.
snp
.
makeConstraints
{
make
in
...
...
PhoneManager/Class/Page/Keep/DataManager/KeepListManager.swift
0 → 100644
View file @
f935e637
//
// KeepListManager.swift
// PhoneManager
//
// Created by edy on 2025/5/16.
//
import
UIKit
class
KeepListManager
{
/// 获取保留列表所有数据
/// - Returns: 所有列表数据
static
func
getAllKeepListData
()
->
[
AssetModel
]{
var
array
:
[
AssetModel
]
=
[]
// 单利中的数据
for
(
key
,
value
)
in
Singleton
.
shared
.
keepList
{
for
item
in
value
{
array
.
append
(
item
)
}
}
// 数据库中的数据
let
data
=
GroupDatabase
.
shared
.
queryAll
()
for
item
in
data
{
array
.
append
(
AssetModel
(
localIdentifier
:
item
.
localIdentifier
,
assetSize
:
item
.
assetSize
,
createDate
:
item
.
createDate
,
mediaType
:
item
.
mediaType
))
}
return
array
}
}
PhoneManager/Class/Page/Trash/DataManager/TrashDataManager.swift
View file @
f935e637
...
@@ -74,12 +74,6 @@ class TrashDataManager {
...
@@ -74,12 +74,6 @@ class TrashDataManager {
for
item
in
dataDB
{
for
item
in
dataDB
{
assetModel
.
append
(
AssetModel
.
init
(
localIdentifier
:
item
.
localIdentifier
,
assetSize
:
item
.
assetSize
,
createDate
:
item
.
createDate
,
mediaType
:
item
.
mediaType
))
assetModel
.
append
(
AssetModel
.
init
(
localIdentifier
:
item
.
localIdentifier
,
assetSize
:
item
.
assetSize
,
createDate
:
item
.
createDate
,
mediaType
:
item
.
mediaType
))
}
}
// 从单利拿数据
if
let
type
=
mediaType
{
if
let
dataSg
=
Singleton
.
shared
.
trashData
[
type
]{
assetModel
=
assetModel
+
dataSg
}
}
}
}
return
assetModel
return
assetModel
}
}
...
...
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