首次提交
This commit is contained in:
75
TUIKit/TUIMultimediaPlugin/Common/TUIMultimediaCommon.m
Normal file
75
TUIKit/TUIMultimediaPlugin/Common/TUIMultimediaCommon.m
Normal file
@@ -0,0 +1,75 @@
|
||||
// Copyright (c) 2024 Tencent. All rights reserved.
|
||||
// Author: eddardliu
|
||||
|
||||
#import "TUIMultimediaCommon.h"
|
||||
#import <TUICore/TUIGlobalization.h>
|
||||
#import <TUICore/TUIThemeManager.h>
|
||||
#import "NSArray+Functional.h"
|
||||
#import "TUIMultimediaPlugin/TUIMultimediaPersistence.h"
|
||||
|
||||
static NSString *const BundleResourceUrlPrefix = @"file:///asset/";
|
||||
|
||||
@implementation TUIMultimediaCommon
|
||||
|
||||
@dynamic bundle;
|
||||
|
||||
+ (NSBundle *)bundle {
|
||||
NSURL *url = [[NSBundle mainBundle] URLForResource:@"TUIMultimedia" withExtension:@"bundle"];
|
||||
return [NSBundle bundleWithURL:url];
|
||||
}
|
||||
|
||||
+ (NSBundle *)localizableBundle {
|
||||
NSURL *url = [[NSBundle mainBundle] URLForResource:@"TUIMultimediaLocalizable" withExtension:@"bundle"];
|
||||
return [NSBundle bundleWithURL:url];
|
||||
}
|
||||
|
||||
+ (UIImage *)bundleImageByName:(NSString *)name {
|
||||
return [UIImage imageNamed:name inBundle:self.bundle compatibleWithTraitCollection:nil];
|
||||
}
|
||||
|
||||
+ (UIImage *)bundleRawImageByName:(NSString *)name {
|
||||
NSString *path = [NSString stringWithFormat:@"%@/%@", [self bundle].resourcePath, name];
|
||||
return [UIImage imageWithContentsOfFile:path];
|
||||
}
|
||||
|
||||
+ (NSString *)localizedStringForKey:(NSString *)key {
|
||||
NSString *lang = [TUIGlobalization getPreferredLanguage];
|
||||
NSString *path = [self.localizableBundle pathForResource:lang ofType:@"lproj"];
|
||||
if (path == nil) {
|
||||
path = [self.localizableBundle pathForResource:@"en" ofType:@"lproj"];
|
||||
}
|
||||
NSBundle *langBundle = [NSBundle bundleWithPath:path];
|
||||
return [langBundle localizedStringForKey:key value:nil table:nil];
|
||||
}
|
||||
|
||||
+ (UIColor *)colorFromHex:(NSString *)hex {
|
||||
return [UIColor tui_colorWithHex:hex];
|
||||
}
|
||||
|
||||
+ (NSArray<NSString *> *)sortedBundleResourcesIn:(NSString *)directory withExtension:(NSString *)ext {
|
||||
NSArray<NSString *> *res = [TUIMultimediaCommon.bundle pathsForResourcesOfType:ext inDirectory:directory];
|
||||
NSString *basePath = TUIMultimediaCommon.bundle.resourcePath;
|
||||
res = [res tui_multimedia_map:^NSString *(NSString *path) {
|
||||
return [path substringFromIndex:basePath.length + 1];
|
||||
}];
|
||||
return [res sortedArrayUsingComparator:^NSComparisonResult(NSString *a, NSString *b) {
|
||||
return [a compare:b];
|
||||
}];
|
||||
}
|
||||
|
||||
+ (NSURL *)getURLByResourcePath:(NSString *)path {
|
||||
if (path == nil) {
|
||||
return nil;
|
||||
}
|
||||
if (![path startsWith:BundleResourceUrlPrefix]) {
|
||||
NSURL *url = [NSURL URLWithString:path];
|
||||
if (url.scheme == nil) {
|
||||
return [NSURL fileURLWithPath:path];
|
||||
}
|
||||
return url;
|
||||
}
|
||||
NSURL *bundleUrl = [[self bundle] resourceURL];
|
||||
NSURL *url = [[NSURL alloc] initWithString:[path substringFromIndex:BundleResourceUrlPrefix.length] relativeToURL:bundleUrl];
|
||||
return url;
|
||||
}
|
||||
@end
|
||||
Reference in New Issue
Block a user