mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
152 lines
3.2 KiB
Objective-C
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
|