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
701a5e31
Commit
701a5e31
authored
May 14, 2025
by
CZ1004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【优化】处理部分逻辑
parent
e667bf42
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
117 additions
and
31 deletions
+117
-31
AppDelegate.swift
PhoneManager/AppDelegate.swift
+21
-7
Contents.json
...nager/Assets.xcassets/Home/Frame 3.imageset/Contents.json
+23
-0
Frame.png
PhoneManager/Assets.xcassets/Home/Frame 3.imageset/Frame.png
+0
-0
Frame@2x.png
...anager/Assets.xcassets/Home/Frame 3.imageset/Frame@2x.png
+0
-0
Frame@3x.png
...anager/Assets.xcassets/Home/Frame 3.imageset/Frame@3x.png
+0
-0
PhotoRemoveViewController.swift
...lass/Page/Home/Controller/PhotoRemoveViewController.swift
+48
-20
PhotoRemoveNavView.swift
PhoneManager/Class/Page/Home/View/PhotoRemoveNavView.swift
+1
-1
HomeInfoTableViewCell.swift
...ger/Class/Page/Home/View/cell/HomeInfoTableViewCell.swift
+18
-3
ImageSeletedCollectionCell.swift
...lass/Page/Home/View/cell/ImageSeletedCollectionCell.swift
+4
-0
Singleton.swift
PhoneManager/Class/Tool/Singleton/Singleton.swift
+2
-0
No files found.
PhoneManager/AppDelegate.swift
View file @
701a5e31
...
...
@@ -53,22 +53,36 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
func
applicationWillTerminate
(
_
application
:
UIApplication
)
{
// 保存单利中所有垃圾桶的数据
saveDataToTrashDB
()
saveDataToTrashDB
(
data
:
Singleton
.
shared
.
trashData
)
// 保存单利中所有垃圾桶的数据
saveDataToKeepListhDB
(
data
:
Singleton
.
shared
.
keepList
)
}
func
saveDataToTrashDB
(){
let
data
=
Singleton
.
shared
.
trashData
var
count
=
0
func
saveDataToTrashDB
(
data
:
[
TrashTypeEnum
:
[
AssetModel
]]){
for
(
key
,
value
)
in
data
{
for
item
in
value
{
let
success
=
TrashDatabase
.
shared
.
insert
(
localIdentifier
:
item
.
localIdentifier
,
assetSize
:
item
.
assetSize
,
createDate
:
item
.
createDate
,
mediaType
:
key
.
dbType
)
if
success
{
count
=
count
+
1
if
!
success
{
Print
(
"保存单利数据到数据库失败"
)
}
}
}
Singleton
.
shared
.
trashData
=
[:]
Print
(
"保留单利数据到数据库--
\(
count
)
条"
)
}
func
saveDataToKeepListhDB
(
data
:
[
TrashTypeEnum
:
[
AssetModel
]]){
for
(
key
,
value
)
in
data
{
let
uniqueId
=
UUID
()
.
uuidString
for
item
in
value
{
let
success
=
GroupDatabase
.
shared
.
insert
(
localIdentifier
:
item
.
localIdentifier
,
assetSize
:
item
.
assetSize
,
createDate
:
item
.
createDate
,
mediaType
:
key
.
dbType
,
groupId
:
uniqueId
)
if
!
success
{
Print
(
"保存保留列表数据失败"
)
}
}
}
Singleton
.
shared
.
keepList
=
[:]
}
func
applicationDidBecomeActive
(
_
application
:
UIApplication
)
{
...
...
PhoneManager/Assets.xcassets/Home/Frame 3.imageset/Contents.json
0 → 100644
View file @
701a5e31
{
"images"
:
[
{
"filename"
:
"Frame.png"
,
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"Frame@2x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"filename"
:
"Frame@3x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
PhoneManager/Assets.xcassets/Home/Frame 3.imageset/Frame.png
0 → 100644
View file @
701a5e31
749 Bytes
PhoneManager/Assets.xcassets/Home/Frame 3.imageset/Frame@2x.png
0 → 100644
View file @
701a5e31
1.38 KB
PhoneManager/Assets.xcassets/Home/Frame 3.imageset/Frame@3x.png
0 → 100644
View file @
701a5e31
1.76 KB
PhoneManager/Class/Page/Home/Controller/PhotoRemoveViewController.swift
View file @
701a5e31
...
...
@@ -50,8 +50,11 @@ class PhotoRemoveViewController: BaseViewController {
// MARK: - 初始化
init
(
data
:
[
AssetModel
],
currentIndex
:
Int
,
mediaType
:
TrashTypeEnum
)
{
self
.
mediaType
=
mediaType
self
.
currentIndex
=
currentIndex
self
.
dataModel
=
data
let
tempData
=
data
// 从currentIndex截断拼接在末尾,设置currentIndex为0
let
result
=
Array
(
tempData
[
currentIndex
...
])
+
Array
(
tempData
[
..<
currentIndex
])
self
.
currentIndex
=
0
self
.
dataModel
=
result
super
.
init
(
nibName
:
nil
,
bundle
:
nil
)
}
...
...
@@ -101,6 +104,13 @@ class PhotoRemoveViewController: BaseViewController {
}
override
func
viewDidDisappear
(
_
animated
:
Bool
)
{
super
.
viewDidDisappear
(
animated
)
// 视图消失的时候存到数据库
saveDataToKeepListDB
()
}
func
changeDateToString
()
->
String
{
let
model
=
self
.
dataModel
[
self
.
currentIndex
]
return
formatter
.
string
(
from
:
model
.
createDate
)
...
...
@@ -184,7 +194,7 @@ class PhotoRemoveViewController: BaseViewController {
bringCurrentViewToFront
()
}
//
当保留的时候存数据
//
存垃圾桶数据到单利
func
saveDataToSigtonTrash
(){
// 拿到单利数据
if
let
type
=
self
.
mediaType
{
...
...
@@ -198,6 +208,21 @@ class PhotoRemoveViewController: BaseViewController {
}
self
.
showCurrentPageUIWhenTashDataChanged
()
}
// 存保留数据到单利
func
saveDataToSigtonKeepList
(){
// 拿到单利数据
if
let
type
=
self
.
mediaType
{
if
let
dataSg
=
Singleton
.
shared
.
keepList
[
type
]{
var
tempArray
=
dataSg
tempArray
.
append
(
self
.
dataModel
[
currentIndex
])
Singleton
.
shared
.
keepList
[
type
]
=
tempArray
}
else
{
Singleton
.
shared
.
keepList
[
type
]
=
[
self
.
dataModel
[
currentIndex
]]
}
}
}
func
saveDataToTrashDB
(){
if
let
type
=
self
.
mediaType
{
if
let
dataSg
=
Singleton
.
shared
.
trashData
[
type
]{
...
...
@@ -213,26 +238,22 @@ class PhotoRemoveViewController: BaseViewController {
showCurrentPageUIWhenTashDataChanged
()
}
// 将数据存到保留列表
func
saveDataToKeepLib
(){
// 如果单利中有数据,那么先把单利中的数据存到数据库
saveDataToTrashDB
()
// 保留当前图片到保留列表
/// 将保留列表单利数据存到数据库
func
saveDataToKeepListDB
(){
let
uinqueId
=
UUID
()
.
uuidString
if
let
type
=
self
.
mediaType
{
let
item
=
self
.
dataModel
[
currentIndex
]
let
success
=
GroupDatabase
.
shared
.
insert
(
localIdentifier
:
item
.
localIdentifier
,
assetSize
:
item
.
assetSize
,
createDate
:
item
.
createDate
,
mediaType
:
type
.
dbType
,
groupId
:
UUID
()
.
uuidString
)
if
success
{
Print
(
"存入保留列表成功"
)
}
else
{
Print
(
"存入保留列表失败"
)
if
let
dataSg
=
Singleton
.
shared
.
keepList
[
type
]{
for
item
in
dataSg
{
let
success
=
GroupDatabase
.
shared
.
insert
(
localIdentifier
:
item
.
localIdentifier
,
assetSize
:
item
.
assetSize
,
createDate
:
item
.
createDate
,
mediaType
:
type
.
dbType
,
groupId
:
uinqueId
)
if
success
==
false
{
Print
(
"保留单利数据到数据库保留列表失败"
)
}
}
Singleton
.
shared
.
keepList
[
type
]
=
[]
}
}
}
// MARK: - 手势处理
@objc
private
func
handlePan
(
_
gesture
:
UIPanGestureRecognizer
)
{
...
...
@@ -267,8 +288,10 @@ class PhotoRemoveViewController: BaseViewController {
if
abs
(
actualTranslation
.
x
)
>
actionMargin
||
abs
(
velocity
.
x
)
>
500
{
removeCurrentView
(
translation
:
actualTranslation
,
velocity
:
velocity
)
if
actualTranslation
.
x
>
0
{
// 保存垃圾桶数据到数据库
saveDataToTrashDB
()
// 保留操作
saveDataTo
KeepLib
()
saveDataTo
SigtonKeepList
()
}
if
actualTranslation
.
x
<
0
{
// 删除操作,先存到单利
...
...
@@ -346,6 +369,11 @@ class PhotoRemoveViewController: BaseViewController {
let
removedView
=
photoViews
.
removeFirst
()
removedView
.
removeFromSuperview
()
// 当划到最后一张的时候就不再滑动了
if
currentIndex
==
dataModel
.
count
{
return
}
// 创建新视图并更新内容
let
newView
=
PhotosRemoveBaseView
()
newView
.
frame
=
CGRectMake
(
15
,
statusBarHeight
+
44
,
self
.
view
.
width
-
30
,
self
.
view
.
height
-
78
-
safeHeight
-
statusBarHeight
-
44
)
...
...
PhoneManager/Class/Page/Home/View/PhotoRemoveNavView.swift
View file @
701a5e31
...
...
@@ -82,7 +82,7 @@ class PhotoRemoveNavView: UIView {
}
resetButton
=
UIButton
()
resetButton
.
setImage
(
UIImage
(
named
:
"
nav_back
"
),
for
:
.
normal
)
resetButton
.
setImage
(
UIImage
(
named
:
"
Frame 3
"
),
for
:
.
normal
)
resetButton
.
addTarget
(
self
,
action
:
#selector(
resetButtonAction
)
,
for
:
.
touchUpInside
)
resetButton
.
isHidden
=
true
self
.
addSubview
(
resetButton
)
...
...
PhoneManager/Class/Page/Home/View/cell/HomeInfoTableViewCell.swift
View file @
701a5e31
...
...
@@ -217,11 +217,26 @@ extension HomeInfoTableViewCell:UICollectionViewDelegate,UICollectionViewDataSou
// 显示保留按钮或者最佳匹配结果按钮
cell
.
allKeepButton
.
isHidden
=
indexPath
.
item
!=
0
||
self
.
type
==
.
duplicates
cell
.
bestResultButton
.
isHidden
=
indexPath
.
item
!=
0
||
self
.
type
==
.
duplicates
cell
.
model
=
model
?
.
smodels
?[
indexPath
.
row
]
cell
.
photsFileType
=
model
?
.
type
cell
.
keepAllCallBack
=
{
//存到保留列表
saveAllDataToKeepList
()
}
// 存全部数据到保留列表
func
saveAllDataToKeepList
(){
let
uniqueId
=
UUID
()
.
uuidString
if
let
tempModel
=
self
.
model
?
.
smodels
{
for
item
in
tempModel
{
if
let
assetModel
=
item
.
id
{
let
success
=
GroupDatabase
.
shared
.
insert
(
localIdentifier
:
assetModel
.
localIdentifier
,
assetSize
:
assetModel
.
assetSize
,
createDate
:
assetModel
.
createDate
,
mediaType
:
self
.
type
==
.
SimilarVideos
?
2
:
1
,
groupId
:
uniqueId
)
if
success
==
false
{
Print
(
"存入当前数据到保留列表失败"
)
}
}
}
}
}
cell
.
callBack
=
{[
weak
self
]
_
in
guard
let
self
else
{
return
}
...
...
PhoneManager/Class/Page/Home/View/cell/ImageSeletedCollectionCell.swift
View file @
701a5e31
...
...
@@ -19,6 +19,8 @@ class ImageSeletedCollectionCell:UICollectionViewCell {
var
callBack
:
callBack
<
Any
>
=
{
text
in
}
var
keepAllCallBack
:
()
->
Void
=
{}
lazy
var
allKeepButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
...
...
@@ -222,6 +224,8 @@ class ImageSeletedCollectionCell:UICollectionViewCell {
extension
ImageSeletedCollectionCell
{
@objc
func
allKeepButtonAction
(){
Print
(
"点击了全部保留按钮"
)
self
.
keepAllCallBack
()
}
}
PhoneManager/Class/Tool/Singleton/Singleton.swift
View file @
701a5e31
...
...
@@ -21,6 +21,8 @@ class Singleton {
var
trashData
:
[
TrashTypeEnum
:
[
AssetModel
]]
=
[:]
var
keepList
:
[
TrashTypeEnum
:
[
AssetModel
]]
=
[:]
var
photoPermission
:
PrivacyType
?
...
...
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