Swiftgram/submodules/LegacyComponents/Sources/TGMediaAssetsLibrary.m
2020-06-16 02:39:52 +03:00

152 lines
3.2 KiB
Objective-C

#import "TGMediaAssetsLibrary.h"
#import "LegacyComponentsInternal.h"
#import "TGMediaAssetsModernLibrary.h"
@implementation TGMediaAssetsLibrary
static Class TGMediaAssetsLibraryClass = nil;
+ (void)load
{
TGMediaAssetsLibraryClass = [TGMediaAssetsModernLibrary class];
[TGMediaAssetsLibraryClass authorizationStatus];
}
- (instancetype)initForAssetType:(TGMediaAssetType)assetType
{
self = [super init];
if (self != nil)
{
_assetType = assetType;
_queue = [[SQueue alloc] init];
}
return self;
}
+ (instancetype)libraryForAssetType:(TGMediaAssetType)assetType
{
return [[TGMediaAssetsLibraryClass alloc] initForAssetType:assetType];
}
- (SSignal *)assetWithIdentifier:(NSString *)__unused identifier
{
return nil;
}
- (SSignal *)assetGroups
{
return nil;
}
- (SSignal *)cameraRollGroup
{
return nil;
}
- (SSignal *)updatedAssetsForAssets:(NSArray *)__unused assets
{
return nil;
}
- (SSignal *)libraryChanged
{
return nil;
}
NSInteger TGMediaAssetGroupComparator(TGMediaAssetGroup *group1, TGMediaAssetGroup *group2, __unused void *context)
{
if (group1.subtype < group2.subtype)
return NSOrderedAscending;
else if (group1.subtype > group2.subtype)
return NSOrderedDescending;
return [group1.title compare:group2.title];
}
#pragma mark - Assets
- (SSignal *)assetsOfAssetGroup:(TGMediaAssetGroup *)__unused assetGroup reversed:(bool)__unused reversed
{
return nil;
}
#pragma mark -
- (SSignal *)saveAssetWithImage:(UIImage *)__unused image
{
return nil;
}
- (SSignal *)saveAssetWithImageData:(NSData *)__unused imageData
{
return nil;
}
- (SSignal *)saveAssetWithImageAtUrl:(NSURL *)url
{
return [self _saveAssetWithUrl:url isVideo:false];
}
- (SSignal *)saveAssetWithVideoAtUrl:(NSURL *)url
{
return [self _saveAssetWithUrl:url isVideo:true];
}
- (SSignal *)_saveAssetWithUrl:(NSURL *)__unused url isVideo:(bool)__unused isVideo
{
return nil;
}
#pragma mark -
+ (TGMediaAssetsLibrary *)sharedLibrary
{
static dispatch_once_t onceToken;
static TGMediaAssetsLibrary *library;
dispatch_once(&onceToken, ^
{
library = [self libraryForAssetType:TGMediaAssetAnyType];
});
return library;
}
#pragma mark - Authorization Status
+ (SSignal *)authorizationStatusSignal
{
return [TGMediaAssetsLibraryClass authorizationStatusSignal];
}
+ (void)requestAuthorizationForAssetType:(TGMediaAssetType)assetType completion:(void (^)(TGMediaLibraryAuthorizationStatus, TGMediaAssetGroup *))completion
{
[TGMediaAssetsLibraryClass requestAuthorizationForAssetType:assetType completion:completion];
}
+ (TGMediaLibraryAuthorizationStatus)authorizationStatus
{
if (TGMediaLibraryCachedAuthorizationStatus != TGMediaLibraryAuthorizationStatusNotDetermined)
return TGMediaLibraryCachedAuthorizationStatus;
TGMediaLibraryCachedAuthorizationStatus = [TGMediaAssetsLibraryClass authorizationStatus];
return TGMediaLibraryCachedAuthorizationStatus;
}
#pragma mark -
+ (bool)usesPhotoFramework
{
static dispatch_once_t onceToken;
static bool usesPhotosFramework = false;
dispatch_once(&onceToken, ^
{
usesPhotosFramework = (iosMajorVersion() >= 8.0);
});
return usesPhotosFramework;
}
@end