Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
D
dz_TZImagePickerController
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
shuijing
dz_TZImagePickerController
Commits
febc6b3f
Commit
febc6b3f
authored
Jul 15, 2020
by
yuzheng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化iCloud同步失败的判断
parent
591c5957
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
31 additions
and
25 deletions
+31
-25
TZImagePickerController/TZImagePickerController/TZAssetCell.m
...agePickerController/TZImagePickerController/TZAssetCell.m
+10
-12
TZImagePickerController/TZImagePickerController/TZImagePickerController.h
...troller/TZImagePickerController/TZImagePickerController.h
+1
-0
TZImagePickerController/TZImagePickerController/TZImagePickerController.m
...troller/TZImagePickerController/TZImagePickerController.m
+8
-0
TZImagePickerController/TZImagePickerController/TZPhotoPreviewCell.m
...erController/TZImagePickerController/TZPhotoPreviewCell.m
+10
-9
TZImagePickerController/TZImagePickerController/TZVideoPlayerController.m
...troller/TZImagePickerController/TZVideoPlayerController.m
+2
-4
No files found.
TZImagePickerController/TZImagePickerController/TZAssetCell.m
View file @
febc6b3f
...
...
@@ -168,12 +168,11 @@
}
_bigImageRequestID
=
[[
TZImageManager
manager
]
requestImageDataForAsset
:
_model
.
asset
completion
:
^
(
NSData
*
imageData
,
NSString
*
dataUTI
,
UIImageOrientation
orientation
,
NSDictionary
*
info
)
{
if
(
!
imageData
&&
[
info
[
PHImageResultIsInCloudKey
]
boolValue
])
{
self
.
model
.
iCloudFailed
=
YES
;
if
(
self
.
didSelectPhotoBlock
)
{
self
.
didSelectPhotoBlock
(
YES
);
self
.
selectImageView
.
image
=
self
.
photoDefImage
;
}
BOOL
iCloudSyncFailed
=
!
imageData
&&
[
TZCommonTools
isICloudSyncError
:
info
[
PHImageErrorKey
]];
self
.
model
.
iCloudFailed
=
iCloudSyncFailed
;
if
(
iCloudSyncFailed
&&
self
.
didSelectPhotoBlock
)
{
self
.
didSelectPhotoBlock
(
YES
);
self
.
selectImageView
.
image
=
self
.
photoDefImage
;
}
[
self
hideProgressView
];
}
progressHandler
:^
(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
)
{
...
...
@@ -194,13 +193,12 @@
}];
if
(
_model
.
type
==
TZAssetCellTypeVideo
)
{
[[
TZImageManager
manager
]
getVideoWithAsset
:
_model
.
asset
completion
:
^
(
AVPlayerItem
*
playerItem
,
NSDictionary
*
info
)
{
if
(
!
playerItem
&&
[
info
[
PHImageResultIsInCloudKey
]
boolValue
])
{
BOOL
iCloudSyncFailed
=
!
playerItem
&&
[
TZCommonTools
isICloudSyncError
:
info
[
PHImageErrorKey
]];
self
.
model
.
iCloudFailed
=
iCloudSyncFailed
;
if
(
iCloudSyncFailed
&&
self
.
didSelectPhotoBlock
)
{
dispatch_async
(
dispatch_get_main_queue
(),
^
{
self
->
_model
.
iCloudFailed
=
YES
;
if
(
self
->
_didSelectPhotoBlock
)
{
self
->
_didSelectPhotoBlock
(
YES
);
self
->
_selectImageView
.
image
=
self
.
photoDefImage
;
}
self
.
didSelectPhotoBlock
(
YES
);
self
.
selectImageView
.
image
=
self
.
photoDefImage
;
});
}
}];
...
...
TZImagePickerController/TZImagePickerController/TZImagePickerController.h
View file @
febc6b3f
...
...
@@ -305,6 +305,7 @@
+
(
NSDictionary
*
)
tz_getInfoDictionary
;
+
(
BOOL
)
tz_isRightToLeftLayout
;
+
(
void
)
configBarButtonItem
:(
UIBarButtonItem
*
)
item
tzImagePickerVc
:(
TZImagePickerController
*
)
tzImagePickerVc
;
+
(
BOOL
)
isICloudSyncError
:(
NSError
*
)
error
;
@end
...
...
TZImagePickerController/TZImagePickerController/TZImagePickerController.m
View file @
febc6b3f
...
...
@@ -913,6 +913,14 @@
[
item
setTitleTextAttributes
:
textAttrs
forState
:
UIControlStateNormal
];
}
+
(
BOOL
)
isICloudSyncError
:(
NSError
*
)
error
{
if
(
!
error
)
return
NO
;
if
([
error
.
domain
isEqualToString
:
@"CKErrorDomain"
]
||
[
error
.
domain
isEqualToString
:
@"CloudPhotoLibraryErrorDomain"
])
{
return
YES
;
}
return
NO
;
}
@end
...
...
TZImagePickerController/TZImagePickerController/TZPhotoPreviewCell.m
View file @
febc6b3f
...
...
@@ -170,12 +170,6 @@
if
(
model
.
type
==
TZAssetModelMediaTypePhotoGif
)
{
// 先显示缩略图
[[
TZImageManager
manager
]
getPhotoWithAsset
:
model
.
asset
completion
:
^
(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
)
{
BOOL
iCloudSyncFailed
=
!
photo
&&
[
info
[
PHImageResultIsInCloudKey
]
boolValue
];
self
.
iCloudErrorLabel
.
hidden
=
!
iCloudSyncFailed
;
self
.
iCloudErrorIcon
.
hidden
=
!
iCloudSyncFailed
;
if
(
self
.
iCloudSyncFailedHandle
)
{
self
.
iCloudSyncFailedHandle
(
model
.
asset
,
iCloudSyncFailed
);
}
if
(
photo
)
{
self
.
imageView
.
image
=
photo
;
}
...
...
@@ -188,6 +182,13 @@
[[
TZImageManager
manager
]
getOriginalPhotoDataWithAsset
:
model
.
asset
progressHandler
:
^
(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
)
{
progress
=
progress
>
0
.
02
?
progress
:
0
.
02
;
dispatch_async
(
dispatch_get_main_queue
(),
^
{
BOOL
iCloudSyncFailed
=
[
TZCommonTools
isICloudSyncError
:
error
];
self
.
iCloudErrorLabel
.
hidden
=
!
iCloudSyncFailed
;
self
.
iCloudErrorIcon
.
hidden
=
!
iCloudSyncFailed
;
if
(
self
.
iCloudSyncFailedHandle
)
{
self
.
iCloudSyncFailedHandle
(
model
.
asset
,
iCloudSyncFailed
);
}
self
.
progressView
.
progress
=
progress
;
if
(
progress
>=
1
)
{
self
.
progressView
.
hidden
=
YES
;
...
...
@@ -223,7 +224,7 @@
_asset
=
asset
;
self
.
imageRequestID
=
[[
TZImageManager
manager
]
getPhotoWithAsset
:
asset
completion
:
^
(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
)
{
BOOL
iCloudSyncFailed
=
!
photo
&&
[
info
[
PHImageResultIsInCloudKey
]
boolValue
];
BOOL
iCloudSyncFailed
=
!
photo
&&
[
TZCommonTools
isICloudSyncError
:
info
[
PHImageErrorKey
]
];
self
.
iCloudErrorLabel
.
hidden
=
!
iCloudSyncFailed
;
self
.
iCloudErrorIcon
.
hidden
=
!
iCloudSyncFailed
;
if
(
self
.
iCloudSyncFailedHandle
)
{
...
...
@@ -442,7 +443,7 @@
if
(
self
.
model
&&
self
.
model
.
asset
)
{
[[
TZImageManager
manager
]
getPhotoWithAsset
:
self
.
model
.
asset
completion
:
^
(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
)
{
BOOL
iCloudSyncFailed
=
!
photo
&&
[
info
[
PHImageResultIsInCloudKey
]
boolValue
];
BOOL
iCloudSyncFailed
=
!
photo
&&
[
TZCommonTools
isICloudSyncError
:
info
[
PHImageErrorKey
]
];
self
.
iCloudErrorLabel
.
hidden
=
!
iCloudSyncFailed
;
self
.
iCloudErrorIcon
.
hidden
=
!
iCloudSyncFailed
;
if
(
self
.
iCloudSyncFailedHandle
)
{
...
...
@@ -454,7 +455,7 @@
}];
[[
TZImageManager
manager
]
getVideoWithAsset
:
self
.
model
.
asset
completion
:
^
(
AVPlayerItem
*
playerItem
,
NSDictionary
*
info
)
{
dispatch_async
(
dispatch_get_main_queue
(),
^
{
BOOL
iCloudSyncFailed
=
!
playerItem
&&
[
info
[
PHImageResultIsInCloudKey
]
boolValue
];
BOOL
iCloudSyncFailed
=
!
playerItem
&&
[
TZCommonTools
isICloudSyncError
:
info
[
PHImageErrorKey
]
];
self
.
iCloudErrorLabel
.
hidden
=
!
iCloudSyncFailed
;
self
.
iCloudErrorIcon
.
hidden
=
!
iCloudSyncFailed
;
if
(
self
.
iCloudSyncFailedHandle
)
{
...
...
TZImagePickerController/TZImagePickerController/TZVideoPlayerController.m
View file @
febc6b3f
...
...
@@ -64,13 +64,11 @@
-
(
void
)
configMoviePlayer
{
[[
TZImageManager
manager
]
getPhotoWithAsset
:
_model
.
asset
completion
:
^
(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
)
{
if
(
!
photo
&&
[
info
[
PHImageResultIsInCloudKey
]
boolValue
])
{
self
.
iCloudErrorView
.
hidden
=
NO
;
}
BOOL
iCloudSyncFailed
=
!
photo
&&
[
TZCommonTools
isICloudSyncError
:
info
[
PHImageErrorKey
]];
self
.
iCloudErrorView
.
hidden
=
!
iCloudSyncFailed
;
if
(
!
isDegraded
&&
photo
)
{
self
->
_cover
=
photo
;
self
->
_doneButton
.
enabled
=
YES
;
self
.
iCloudErrorView
.
hidden
=
YES
;
}
}];
[[
TZImageManager
manager
]
getVideoWithAsset
:
_model
.
asset
completion
:
^
(
AVPlayerItem
*
playerItem
,
NSDictionary
*
info
)
{
...
...
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