268 lines
7.7 KiB
Objective-C
268 lines
7.7 KiB
Objective-C
//
|
|
// NTESBundleSetting.m
|
|
// NIM
|
|
//
|
|
// Created by chris on 15/7/1.
|
|
// Copyright (c) 2015年 Netease. All rights reserved.
|
|
//
|
|
|
|
#import "NTESBundleSetting.h"
|
|
|
|
@implementation NTESBundleSetting
|
|
|
|
+ (instancetype)sharedConfig
|
|
{
|
|
static NTESBundleSetting *instance = nil;
|
|
static dispatch_once_t onceToken;
|
|
dispatch_once(&onceToken, ^{
|
|
instance = [[NTESBundleSetting alloc] init];
|
|
});
|
|
return instance;
|
|
}
|
|
|
|
|
|
- (BOOL)removeSessionWheDeleteMessages{
|
|
return [[[NSUserDefaults standardUserDefaults] objectForKey:@"enabled_remove_recent_session"] boolValue];
|
|
}
|
|
|
|
- (BOOL)localSearchOrderByTimeDesc{
|
|
return [[[NSUserDefaults standardUserDefaults] objectForKey:@"local_search_time_order_desc"] boolValue];
|
|
}
|
|
|
|
|
|
- (BOOL)autoRemoveRemoteSession{
|
|
return [[[NSUserDefaults standardUserDefaults] objectForKey:@"auto_remove_remote_session"] boolValue];
|
|
}
|
|
|
|
- (BOOL)autoRemoveSnapMessage{
|
|
return [[[NSUserDefaults standardUserDefaults] objectForKey:@"auto_remove_snap_message"] boolValue];
|
|
}
|
|
|
|
- (BOOL)needVerifyForFriend
|
|
{
|
|
return [[[NSUserDefaults standardUserDefaults] objectForKey:@"add_friend_need_verify"] boolValue];
|
|
}
|
|
|
|
- (BOOL)showFps{
|
|
return [[[NSUserDefaults standardUserDefaults] objectForKey:@"show_fps_for_app"] boolValue];
|
|
}
|
|
|
|
- (BOOL)disableProximityMonitor
|
|
{
|
|
return [[[NSUserDefaults standardUserDefaults] objectForKey:@"disable_proxmity_monitor"] boolValue];
|
|
}
|
|
|
|
|
|
- (BOOL)enableRotate
|
|
{
|
|
return [[[NSUserDefaults standardUserDefaults] objectForKey:@"enable_rotate"] boolValue];
|
|
}
|
|
|
|
- (BOOL)usingAmr
|
|
{
|
|
return [[[NSUserDefaults standardUserDefaults] objectForKey:@"using_amr"] boolValue];
|
|
}
|
|
|
|
- (NSArray *)ignoreTeamNotificationTypes
|
|
{
|
|
static NSArray *types = nil;
|
|
if (types == nil)
|
|
{
|
|
NSString *value = [[NSUserDefaults standardUserDefaults] objectForKey:@"ignore_team_types"];
|
|
if ([value isKindOfClass:[NSString class]])
|
|
{
|
|
NSString *typeDescription = [value stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
|
|
if ([typeDescription length])
|
|
{
|
|
types = [typeDescription componentsSeparatedByString:@","];
|
|
}
|
|
}
|
|
}
|
|
if (types == nil)
|
|
{
|
|
types = [NSArray array];
|
|
}
|
|
return types;
|
|
}
|
|
|
|
|
|
- (BOOL)serverRecordAudio
|
|
{
|
|
return [[[NSUserDefaults standardUserDefaults] objectForKey:@"server_record_audio"] boolValue];
|
|
}
|
|
|
|
- (BOOL)serverRecordVideo
|
|
{
|
|
return [[[NSUserDefaults standardUserDefaults] objectForKey:@"server_record_video"] boolValue];
|
|
}
|
|
|
|
- (BOOL)serverRecordWhiteboardData
|
|
{
|
|
return [[[NSUserDefaults standardUserDefaults] objectForKey:@"server_record_whiteboard_data"] boolValue];
|
|
}
|
|
|
|
|
|
- (BOOL)videochatDisableAutoCropping
|
|
{
|
|
return [[[NSUserDefaults standardUserDefaults] objectForKey:@"videochat_disable_auto_cropping"] boolValue];
|
|
}
|
|
|
|
- (BOOL)videochatAutoRotateRemoteVideo
|
|
{
|
|
return [[[NSUserDefaults standardUserDefaults] objectForKey:@"videochat_auto_rotate_remote_video"] boolValue];
|
|
}
|
|
|
|
- (NIMNetCallVideoQuality)preferredVideoQuality
|
|
{
|
|
NSInteger videoQualitySetting = [[[NSUserDefaults standardUserDefaults] objectForKey:@"videochat_preferred_video_quality"] integerValue];
|
|
if ((videoQualitySetting >= NIMNetCallVideoQualityDefault) &&
|
|
(videoQualitySetting <= NIMNetCallVideoQuality720pLevel)) {
|
|
return (NIMNetCallVideoQuality)videoQualitySetting;
|
|
}
|
|
return NIMNetCallVideoQualityDefault;
|
|
}
|
|
|
|
|
|
- (BOOL)startWithBackCamera
|
|
{
|
|
return [[[NSUserDefaults standardUserDefaults] objectForKey:@"videochat_start_with_back_camera"] boolValue];
|
|
}
|
|
|
|
- (NIMNetCallVideoCodec)perferredVideoEncoder
|
|
{
|
|
NSInteger videoEncoderSetting = [[[NSUserDefaults standardUserDefaults] objectForKey:@"videochat_preferred_video_encoder"] integerValue];
|
|
|
|
if ((videoEncoderSetting >= NIMNetCallVideoCodecDefault) &&
|
|
(videoEncoderSetting <= NIMNetCallVideoCodecHardware)) {
|
|
return (NIMNetCallVideoCodec)videoEncoderSetting;
|
|
}
|
|
return NIMNetCallVideoCodecDefault;
|
|
}
|
|
|
|
- (NIMNetCallVideoCodec)perferredVideoDecoder
|
|
{
|
|
NSInteger videoDecoderSetting = [[[NSUserDefaults standardUserDefaults] objectForKey:@"videochat_preferred_video_decoder"] integerValue];
|
|
|
|
if ((videoDecoderSetting >= NIMNetCallVideoCodecDefault) &&
|
|
(videoDecoderSetting <= NIMNetCallVideoCodecHardware)) {
|
|
return (NIMNetCallVideoCodec)videoDecoderSetting;
|
|
}
|
|
return NIMNetCallVideoCodecDefault;
|
|
|
|
}
|
|
- (NSUInteger)videoMaxEncodeKbps
|
|
{
|
|
return [[[NSUserDefaults standardUserDefaults] objectForKey:@"videochat_video_encode_max_kbps"] integerValue];
|
|
}
|
|
|
|
- (NSUInteger)localRecordVideoKbps
|
|
{
|
|
return [[[NSUserDefaults standardUserDefaults] objectForKey:@"videochat_local_record_video_kbps"] integerValue];
|
|
}
|
|
|
|
- (BOOL)autoDeactivateAudioSession
|
|
{
|
|
id setting = [[NSUserDefaults standardUserDefaults] objectForKey:@"videochat_auto_disable_audiosession"];
|
|
|
|
if (setting) {
|
|
return [setting boolValue];
|
|
}
|
|
else {
|
|
return YES;
|
|
}
|
|
}
|
|
|
|
- (BOOL)audioDenoise
|
|
{
|
|
id setting = [[NSUserDefaults standardUserDefaults] objectForKey:@"videochat_audio_denoise"];
|
|
|
|
if (setting) {
|
|
return [setting boolValue];
|
|
}
|
|
else {
|
|
return YES;
|
|
}
|
|
|
|
}
|
|
|
|
- (BOOL)voiceDetect
|
|
{
|
|
id setting = [[NSUserDefaults standardUserDefaults] objectForKey:@"videochat_voice_detect"];
|
|
|
|
if (setting) {
|
|
return [setting boolValue];
|
|
}
|
|
else {
|
|
return YES;
|
|
}
|
|
|
|
}
|
|
|
|
- (BOOL)preferHDAudio
|
|
{
|
|
id setting = [[NSUserDefaults standardUserDefaults] objectForKey:@"videochat_prefer_hd_audio"];
|
|
|
|
if (setting) {
|
|
return [setting boolValue];
|
|
}
|
|
else {
|
|
return NO;
|
|
}
|
|
}
|
|
|
|
|
|
- (NSString *)description
|
|
{
|
|
return [NSString stringWithFormat:
|
|
@"\n\n\n" \
|
|
"enabled_remove_recent_session %d\n" \
|
|
"local_search_time_order_desc %d\n" \
|
|
"auto_remove_remote_session %d\n" \
|
|
"auto_remove_snap_message %d\n" \
|
|
"add_friend_need_verify %d\n" \
|
|
"show app %d\n" \
|
|
"using amr %d\n" \
|
|
"ignore_team_types %@ \n" \
|
|
"server_record_audio %d\n" \
|
|
"server_record_video %d\n" \
|
|
"server_record_whiteboard_data %d\n" \
|
|
"videochat_disable_auto_cropping %d\n" \
|
|
"videochat_auto_rotate_remote_video %d \n" \
|
|
"videochat_preferred_video_quality %zd\n" \
|
|
"videochat_start_with_back_camera %zd\n" \
|
|
"videochat_preferred_video_encoder %zd\n" \
|
|
"videochat_preferred_video_decoder %zd\n" \
|
|
"videochat_video_encode_max_kbps %zd\n" \
|
|
"videochat_local_record_video_kbps %zd\n" \
|
|
"videochat_auto_disable_audiosession %zd\n" \
|
|
"videochat_audio_denoise %zd\n" \
|
|
"videochat_voice_detect %zd\n" \
|
|
"videochat_prefer_hd_audio %zd\n" \
|
|
"\n\n\n",
|
|
[self removeSessionWheDeleteMessages],
|
|
[self localSearchOrderByTimeDesc],
|
|
[self autoRemoveRemoteSession],
|
|
[self autoRemoveSnapMessage],
|
|
[self needVerifyForFriend],
|
|
[self showFps],
|
|
[self usingAmr],
|
|
[self ignoreTeamNotificationTypes],
|
|
[self serverRecordAudio],
|
|
[self serverRecordVideo],
|
|
[self serverRecordWhiteboardData],
|
|
[self videochatDisableAutoCropping],
|
|
[self videochatAutoRotateRemoteVideo],
|
|
[self preferredVideoQuality],
|
|
[self startWithBackCamera],
|
|
[self perferredVideoEncoder],
|
|
[self perferredVideoDecoder],
|
|
[self videoMaxEncodeKbps],
|
|
[self localRecordVideoKbps],
|
|
[self autoDeactivateAudioSession],
|
|
[self audioDenoise],
|
|
[self voiceDetect],
|
|
[self preferHDAudio]
|
|
];
|
|
}
|
|
@end
|