mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-18 19:40:19 +00:00
67 lines
1.8 KiB
Objective-C
67 lines
1.8 KiB
Objective-C
//
|
|
// LOTAssetGroup.m
|
|
// Pods
|
|
//
|
|
// Created by Brandon Withrow on 2/17/17.
|
|
//
|
|
//
|
|
|
|
#import "LOTAssetGroup.h"
|
|
#import "LOTAsset.h"
|
|
|
|
@implementation LOTAssetGroup {
|
|
NSMutableDictionary<NSString *, LOTAsset *> *_assetMap;
|
|
NSDictionary<NSString *, NSDictionary *> *_assetJSONMap;
|
|
}
|
|
|
|
- (instancetype _Nonnull)initWithJSON:(NSArray * _Nonnull)jsonArray
|
|
withAssetBundle:(NSBundle *_Nullable)bundle {
|
|
self = [super init];
|
|
if (self) {
|
|
_assetBundle = bundle;
|
|
_assetMap = [NSMutableDictionary dictionary];
|
|
NSMutableDictionary *assetJSONMap = [NSMutableDictionary dictionary];
|
|
for (NSDictionary<NSString *, NSString *> *assetDictionary in jsonArray) {
|
|
NSString *referenceID = assetDictionary[@"id"];
|
|
if (referenceID) {
|
|
assetJSONMap[referenceID] = assetDictionary;
|
|
}
|
|
}
|
|
_assetJSONMap = assetJSONMap;
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)buildAssetNamed:(NSString *)refID {
|
|
|
|
if ([self assetModelForID:refID]) {
|
|
return;
|
|
}
|
|
|
|
NSDictionary *assetDictionary = _assetJSONMap[refID];
|
|
if (assetDictionary) {
|
|
LOTAsset *asset = [[LOTAsset alloc] initWithJSON:assetDictionary
|
|
withAssetGroup:self
|
|
withAssetBundle:_assetBundle];
|
|
_assetMap[refID] = asset;
|
|
}
|
|
}
|
|
|
|
- (void)finalizeInitialization {
|
|
for (NSString *refID in _assetJSONMap.allKeys) {
|
|
[self buildAssetNamed:refID];
|
|
}
|
|
_assetJSONMap = nil;
|
|
}
|
|
|
|
- (LOTAsset *)assetModelForID:(NSString *)assetID {
|
|
return _assetMap[assetID];
|
|
}
|
|
- (void)setRootDirectory:(NSString *)rootDirectory{
|
|
_rootDirectory = rootDirectory;
|
|
[_assetMap enumerateKeysAndObjectsUsingBlock:^(NSString * _Nonnull key, LOTAsset * _Nonnull obj, BOOL * _Nonnull stop) {
|
|
obj.rootDirectory = rootDirectory;
|
|
}];
|
|
}
|
|
@end
|