Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
c1ac0e4
Replace assetArray with fetchResult to improve performance
gezihuzi Aug 16, 2020
7fe2f09
Added cache for updating pictures when scrolling
gezihuzi Aug 16, 2020
d2027c5
Replace photos with fetchResult
gezihuzi Aug 16, 2020
7248872
Merge branch 'feature/performance_optimization' into develop
gezihuzi Aug 16, 2020
b87d0e0
Merge pull request #84 from gezihuzi/develop
DragonCherry Aug 19, 2020
4c17891
Improve resource caching
gezihuzi Aug 19, 2020
0c39f1f
Improve the view update when the resource library changes
gezihuzi Aug 19, 2020
e95392d
update qos
gezihuzi Aug 19, 2020
460cba5
Merge branch 'develop' of https://github.com/DragonCherry/AssetsPicke…
gezihuzi Aug 19, 2020
9caa9a1
Merge pull request #85 from gezihuzi/develop
DragonCherry Aug 20, 2020
c3ed357
Improved performance when scrolling views
gezihuzi Aug 20, 2020
fd845d1
Album performance optimization
gezihuzi Aug 22, 2020
6fce018
Merge pull request #86 from gezihuzi/develop
DragonCherry Aug 24, 2020
63b77bb
Album asset asynchronous loading support
gezihuzi Sep 18, 2020
48bde8a
Improve album asset asynchronous loading support
gezihuzi Sep 18, 2020
88ea8e3
Improve album asset asynchronous loading support
gezihuzi Sep 18, 2020
7e7cf0b
Refine the display of the loading progress indicator
gezihuzi Sep 18, 2020
53449f8
Merge pull request #90 from gezihuzi/develop
DragonCherry Sep 24, 2020
af34515
fix issue with done button and deselection
ebrenesc Sep 25, 2020
8053205
Add missing UIKit imports
felixbuenemann Sep 26, 2020
f34bf7b
Remove dependency on Device library
felixbuenemann Sep 26, 2020
c23fd76
Add SwiftPM manifest and localized string lookup
felixbuenemann Sep 26, 2020
8b6253a
Merge pull request #92 from ebrenesc/doneButtonIssue
DragonCherry Sep 29, 2020
266ce9b
Merge branch 'master' into develop
DragonCherry Sep 29, 2020
bf3bc7f
Merge branch 'develop' of https://github.com/DragonCherry/AssetsPicke…
DragonCherry Sep 29, 2020
1e01485
Merge pull request #93 from felixbuenemann/swift-package-manager
DragonCherry Sep 29, 2020
6e56c21
Merge branch 'master' into develop
DragonCherry Sep 29, 2020
dcdccf5
Merge branch 'release/2.9.7'
DragonCherry Sep 29, 2020
266797d
Merge tag '2.9.7' into develop
DragonCherry Sep 29, 2020
38e26e3
version up
DragonCherry Sep 29, 2020
288cf07
Merge branch 'release/2.9.7'
DragonCherry Sep 29, 2020
6adb125
Update README.md
DragonCherry Sep 29, 2020
2d0819b
resolves objective-c issues while calling methods from objective-c cl…
ravipromact2306 Nov 26, 2020
14380cb
Merge pull request #96 from ravipromact2306/master
DragonCherry Jun 30, 2021
5e9c504
Fix for crash when requesting permission on iOS 15.2
mikemike396 Mar 8, 2022
12b6cc1
Merge pull request #107 from mikemike396/iOS_15_2_Request_Authorizati…
DragonCherry Sep 21, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .DS_Store
Binary file not shown.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,9 @@ playground.xcworkspace
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
# Packages/
# Package.pins
Package.resolved
.build/
.swiftpm/

# CocoaPods
#
Expand Down
3 changes: 1 addition & 2 deletions AssetsPickerViewController.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

Pod::Spec.new do |s|
s.name = 'AssetsPickerViewController'
s.version = '2.9.6'
s.version = '2.9.7'
s.summary = 'Picker controller that supports multiple photos and videos written in Swift.'

# This description is used to generate tags and improve search results.
Expand Down Expand Up @@ -41,5 +41,4 @@ Fully customizable UI.
# s.public_header_files = 'Pod/Classes/**/*.h'
# s.frameworks = 'UIKit', 'MapKit'
s.dependency 'SnapKit'
s.dependency 'Device'
end
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,15 @@ open class AssetsAlbumViewController: UIViewController {
make.edges.equalToSuperview()
}

loadingPlaceholderView.isHidden = true
let isFetchedAlbums = AssetsManager.shared.isFetchedAlbums
if isFetchedAlbums {
loadingActivityIndicatorView.stopAnimating()
loadingPlaceholderView.isHidden = true
} else {
loadingActivityIndicatorView.startAnimating()
loadingPlaceholderView.isHidden = false
}

if #available(iOS 13.0, *) {
loadingPlaceholderView.backgroundColor = .systemBackground
} else {
Expand Down Expand Up @@ -333,6 +341,14 @@ extension AssetsAlbumViewController: AssetsManagerDelegate {

public func assetsManagerFetched(manager: AssetsManager) {
collectionView.reloadData()
let isFetchedAlbums = AssetsManager.shared.isFetchedAlbums
if isFetchedAlbums {
loadingActivityIndicatorView.stopAnimating()
loadingPlaceholderView.isHidden = true
} else {
loadingActivityIndicatorView.startAnimating()
loadingPlaceholderView.isHidden = false
}
}

public func assetsManager(manager: AssetsManager, authorizationStatusChanged oldStatus: PHAuthorizationStatus, newStatus: PHAuthorizationStatus) {}
Expand Down Expand Up @@ -366,4 +382,3 @@ extension AssetsAlbumViewController: AssetsManagerDelegate {
public func assetsManager(manager: AssetsManager, removedAssets assets: [PHAsset], at indexPaths: [IndexPath]) {}
public func assetsManager(manager: AssetsManager, updatedAssets assets: [PHAsset], at indexPaths: [IndexPath]) {}
}

Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,13 @@ extension AssetsManager: PHPhotoLibraryChangeObserver {
if let removedIndexesSet = assetsChangeDetails.removedIndexes {
let removedIndexes = removedIndexesSet.asArray().sorted(by: { $0.row < $1.row })
var removedAssets = [PHAsset]()
let result = assetsChangeDetails.fetchResultAfterChanges
for removedIndex in removedIndexes.reversed() {
removedAssets.insert(assetArray.remove(at: removedIndex.row), at: 0)
let asset = fetchResult.object(at: removedIndex.row)
removedAssets.insert(asset, at: 0)
}
// update date source
self.fetchResult = result
// stop caching for removed assets
stopCache(assets: removedAssets, size: pickerConfig.assetCacheSize)
notifySubscribers({ $0.assetsManager(manager: self, removedAssets: removedAssets, at: removedIndexes) }, condition: removedAssets.count > 0)
Expand All @@ -109,11 +113,13 @@ extension AssetsManager: PHPhotoLibraryChangeObserver {
if let insertedIndexesSet = assetsChangeDetails.insertedIndexes {
let insertedIndexes = insertedIndexesSet.asArray().sorted(by: { $0.row < $1.row })
var insertedAssets = [PHAsset]()
let result = assetsChangeDetails.fetchResultAfterChanges
for insertedIndex in insertedIndexes {
let insertedAsset = assetsChangeDetails.fetchResultAfterChanges.object(at: insertedIndex.row)
let insertedAsset = result.object(at: insertedIndex.row)
insertedAssets.append(insertedAsset)
assetArray.insert(insertedAsset, at: insertedIndex.row)
}
// update date source
self.fetchResult = result
// start caching for inserted assets
cache(assets: insertedAssets, size: pickerConfig.assetCacheSize)
notifySubscribers({ $0.assetsManager(manager: self, insertedAssets: insertedAssets, at: insertedIndexes) }, condition: insertedAssets.count > 0)
Expand Down
Loading