diff --git a/ChattoAdditions/Source/Input/Photos/PhotosInputDataProvider.swift b/ChattoAdditions/Source/Input/Photos/PhotosInputDataProvider.swift index 0a418d0..6e99eb3 100644 --- a/ChattoAdditions/Source/Input/Photos/PhotosInputDataProvider.swift +++ b/ChattoAdditions/Source/Input/Photos/PhotosInputDataProvider.swift @@ -66,9 +66,19 @@ class PhotosInputDataProvider: NSObject, PhotosInputDataProviderProtocol, PHPhot private var imageManager = PHCachingImageManager() private var fetchResult: PHFetchResult! override init() { - let options = PHFetchOptions() - options.sortDescriptors = [ NSSortDescriptor(key: "creationDate", ascending: false) ] - self.fetchResult = PHAsset.fetchAssetsWithMediaType(.Image, options: options) + func fetchOptions(predicate: NSPredicate?) -> PHFetchOptions { + let options = PHFetchOptions() + options.sortDescriptors = [ NSSortDescriptor(key: "creationDate", ascending: false) ] + options.predicate = predicate + return options + } + + if let userLibraryCollection = PHAssetCollection.fetchAssetCollectionsWithType(.SmartAlbum, subtype: .SmartAlbumUserLibrary, options: nil).firstObject as? PHAssetCollection { + self.fetchResult = PHAsset.fetchAssetsInAssetCollection(userLibraryCollection, options: fetchOptions(NSPredicate(format: "mediaType = \(PHAssetMediaType.Image.rawValue)"))) + } + else { + self.fetchResult = PHAsset.fetchAssetsWithMediaType(.Image, options: fetchOptions(nil)) + } super.init() PHPhotoLibrary.sharedPhotoLibrary().registerChangeObserver(self) }