Files
GLEGram-iOS/submodules/LegacyComponents/Sources/TGImageDataSource.m
T
Leeksov 4647310322 GLEGram 12.5 — Initial public release
Based on Swiftgram 12.5 (Telegram iOS 12.5).
All GLEGram features ported and organized in GLEGram/ folder.

Features: Ghost Mode, Saved Deleted Messages, Content Protection Bypass,
Font Replacement, Fake Profile, Chat Export, Plugin System, and more.

See CHANGELOG_12.5.md for full details.
2026-04-06 09:48:12 +03:00

81 lines
2.2 KiB
Objective-C

#import <LegacyComponents/TGImageDataSource.h>
@implementation TGImageDataSource
+ (NSMutableArray *)_dataSourceList
{
static NSMutableArray *array = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^
{
array = [[NSMutableArray alloc] init];
});
return array;
}
+ (void)registerDataSource:(TGImageDataSource *)dataSource
{
if (dataSource == nil)
return;
if (![[self _dataSourceList] containsObject:dataSource])
[[self _dataSourceList] addObject:dataSource];
}
+ (void)enumerateDataSources:(bool (^)(TGImageDataSource *dataSource))handler
{
if (!handler)
return;
[[self _dataSourceList] enumerateObjectsUsingBlock:^(TGImageDataSource *dataSource, __unused NSUInteger idx, BOOL *stop)
{
if (handler(dataSource) && stop != NULL)
*stop = true;
}];
}
+ (void)enqueueImageProcessingBlock:(void (^)())imageProcessingBlock
{
static dispatch_queue_t queue = NULL;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^
{
queue = dispatch_queue_create("ph.telegra.datasourceimageprocessing", 0);
});
dispatch_async(queue, imageProcessingBlock);
}
- (bool)canHandleUri:(NSString *)__unused uri
{
return false;
}
- (bool)canHandleAttributeUri:(NSString *)__unused uri
{
return false;
}
- (TGDataResource *)loadDataSyncWithUri:(NSString *)__unused uri canWait:(bool)__unused canWait acceptPartialData:(bool)__unused acceptPartialData asyncTaskId:(__autoreleasing id *)__unused asyncTaskId progress:(void (^)(float))__unused progress partialCompletion:(void (^)(TGDataResource *))__unused partialCompletion completion:(void (^)(TGDataResource *))__unused completion
{
return nil;
}
- (id)loadDataAsyncWithUri:(NSString *)__unused uri progress:(void (^)(float progress))__unused progress partialCompletion:(void (^)(TGDataResource *resource))__unused partialCompletion completion:(void (^)(TGDataResource *resource))__unused completion
{
return nil;
}
- (id)loadAttributeSyncForUri:(NSString *)__unused uri attribute:(NSString *)__unused attribute
{
return nil;
}
- (void)cancelTaskById:(id)__unused taskId
{
}
@end