Files
featherVoice/TUIKit/TUICore/TUIConfig.m

116 lines
5.3 KiB
Mathematica
Raw Normal View History

2025-08-08 10:49:36 +08:00
//
// TUIConfig.m
// TUIKit
//
// Created by kennethmiao on 2018/11/5.
// Copyright © 2018 Tencent. All rights reserved.
//
#import "TUIConfig.h"
#import "TUICommonModel.h"
#import "TUIDefine.h"
#import "TUILogin.h"
#import "TUIThemeManager.h"
@interface TUIConfig ()
@property(nonatomic, strong) UIImage *defaultGroupAvatarImage_Public;
@property(nonatomic, strong) UIImage *defaultGroupAvatarImage_Meeting;
@property(nonatomic, strong) UIImage *defaultGroupAvatarImage_AVChatRoom;
@property(nonatomic, strong) UIImage *defaultGroupAvatarImage_Community;
@end
@implementation TUIConfig
- (id)init {
self = [super init];
if (self) {
_avatarCornerRadius = 5.f;
_defaultAvatarImage = TUICoreBundleThemeImage(@"default_c2c_head_img", @"default_c2c_head");
_defaultGroupAvatarImage = TUICoreBundleThemeImage(@"default_group_head_img", @"default_group_head");
_defaultGroupAvatarImage_Public = TUICoreBundleThemeImage(@"default_group_head_public_img", @"default_group_head_public");
_defaultGroupAvatarImage_Meeting = TUICoreBundleThemeImage(@"default_group_head_meeting_img", @"default_group_head_meeting");
_defaultGroupAvatarImage_AVChatRoom = TUICoreBundleThemeImage(@"default_group_head_avchatroom_img", @"default_group_head_avchatRoom");
_defaultGroupAvatarImage_Community = TUICoreBundleThemeImage(@"", @"default_group_head_community");
_isExcludedFromUnreadCount = NO;
_isExcludedFromLastMessage = NO;
_enableToast = YES;
_displayOnlineStatusIcon = NO;
_enableGroupGridAvatar = YES;
_avatarType = TAvatarTypeRounded;
[NSNotificationCenter.defaultCenter addObserver:self selector:@selector(onChangeTheme) name:TUIDidApplyingThemeChangedNotfication object:nil];
}
return self;
}
+ (id)defaultConfig {
static dispatch_once_t onceToken;
static TUIConfig *config;
dispatch_once(&onceToken, ^{
config = [[TUIConfig alloc] init];
});
return config;
}
- (void)onChangeTheme {
self.defaultAvatarImage = TUICoreBundleThemeImage(@"default_c2c_head_img", @"default_c2c_head");
self.defaultGroupAvatarImage = TUICoreBundleThemeImage(@"default_group_head_img", @"default_group_head");
self.defaultGroupAvatarImage_Public = TUICoreBundleThemeImage(@"default_group_head_public_img", @"default_group_head_public");
self.defaultGroupAvatarImage_Meeting = TUICoreBundleThemeImage(@"default_group_head_meeting_img", @"default_group_head_meeting");
self.defaultGroupAvatarImage_AVChatRoom = TUICoreBundleThemeImage(@"default_group_head_avchatroom_img", @"default_group_head_avchatroom");
self.defaultGroupAvatarImage_Community = TUICoreBundleThemeImage(@"default_group_head_community_img", @"default_group_head_community");
}
- (UIImage *)getGroupAvatarImageByGroupType:(NSString *)groupType {
if ([groupType isEqualToString:GroupType_Work]) {
return self.defaultGroupAvatarImage;
} else if ([groupType isEqualToString:GroupType_Public]) {
return self.defaultGroupAvatarImage_Public;
} else if ([groupType isEqualToString:GroupType_Meeting]) {
return self.defaultGroupAvatarImage_Meeting;
} else if ([groupType isEqualToString:GroupType_AVChatRoom]) {
return self.defaultGroupAvatarImage_AVChatRoom;
} else if ([groupType isEqualToString:GroupType_Community]) {
return self.defaultGroupAvatarImage_Community;
} else {
return self.defaultGroupAvatarImage;
}
}
#pragma mark - Sence
- (void)setSceneOptimizParams:(NSString *)path {
NSURL *url = [NSURL URLWithString:@"https://demos.trtc.tencent-cloud.com/prod/base/v1/events/stat"];
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url];
req.HTTPMethod = @"POST";
NSDictionary *msgData =
@{@"sdkappid" : @([TUILogin getSdkAppID]), @"bundleId" : NSBundle.mainBundle.bundleIdentifier ?: @"", @"package" : @"", @"component" : path};
NSString* userId =[TUILogin getUserID];
NSDictionary *param = @{@"userid" : (userId?:@""), @"event" : @"useScenario", @"msg" : msgData};
NSData *data = [NSJSONSerialization dataWithJSONObject:param options:NSJSONWritingPrettyPrinted error:nil];
if (!data) {
return;
}
req.HTTPBody = data;
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
config.HTTPAdditionalHeaders = @{@"api-key" : @"API_KEY", @"Content-Type" : @"application/json"};
NSURLSession *session = [NSURLSession sessionWithConfiguration:config];
[[session dataTaskWithRequest:req
completionHandler:^(NSData *_Nullable data, NSURLResponse *_Nullable response, NSError *_Nullable error) {
if (data) {
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
long code = [dic[@"errorCode"] longValue];
if (code == 0) {
NSLog(@"scene param [%@] success", path);
} else {
NSString *msg = dic[@"errorMessage"];
NSLog(@"scene param [%@] failed: [%ld] %@", path, code, msg);
}
} else {
NSLog(@"scene param [%@] error: res data nil", path);
}
}] resume];
}
@end