diff --git a/Classes/LinphoneCoreSettingsStore.m b/Classes/LinphoneCoreSettingsStore.m
index 1badc12ec..47c0b79fb 100644
--- a/Classes/LinphoneCoreSettingsStore.m
+++ b/Classes/LinphoneCoreSettingsStore.m
@@ -689,13 +689,8 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
BOOL debugmode = [self boolForKey:@"debugenable_preference"];
lp_config_set_int(config, LINPHONERC_APPLICATION_KEY, "debugenable_preference", debugmode);
- if (debugmode) {
- linphone_core_enable_logs_with_cb((OrtpLogFunc)linphone_iphone_log_handler);
- ortp_set_log_level_mask(ORTP_DEBUG|ORTP_MESSAGE|ORTP_WARNING|ORTP_ERROR|ORTP_FATAL);
- } else {
- linphone_core_disable_logs();
- }
-
+ [[LinphoneManager instance] setLogsEnabled:debugmode];
+
BOOL animations = [self boolForKey:@"animations_preference"];
lp_config_set_int(config, LINPHONERC_APPLICATION_KEY, "animations_preference", animations);
diff --git a/Classes/LinphoneManager.h b/Classes/LinphoneManager.h
index 451591dee..f0545b9c6 100644
--- a/Classes/LinphoneManager.h
+++ b/Classes/LinphoneManager.h
@@ -152,6 +152,7 @@ typedef struct _LinphoneManagerSounds {
- (bool)allowSpeaker;
- (void)configureVbrCodecs;
+- (void)setLogsEnabled:(BOOL)enabled;
+ (BOOL)copyFile:(NSString*)src destination:(NSString*)dst override:(BOOL)override;
+ (NSString*)bundleFile:(NSString*)file;
diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m
index 6d9aabff9..289c4decc 100644
--- a/Classes/LinphoneManager.m
+++ b/Classes/LinphoneManager.m
@@ -1434,11 +1434,11 @@ static BOOL libStarted = FALSE;
if ([self lpConfigBoolForKey:@"debugenable_preference"]) {
linphone_core_enable_logs_with_cb((OrtpLogFunc)linphone_iphone_log_handler);
ortp_set_log_level_mask(ORTP_DEBUG|ORTP_MESSAGE|ORTP_WARNING|ORTP_ERROR|ORTP_FATAL);
+ /*must be done before creating linphone core to get its traces too*/
}
-
- /*must be done before creating linphone core to get its traces too*/
linphone_core_set_log_collection_path([[LinphoneManager cacheDirectory] UTF8String]);
- linphone_core_enable_log_collection([self lpConfigBoolForKey:@"enable_log_collect"]);
+ linphone_core_enable_log_collection([self lpConfigBoolForKey:@"debugenable_preference"]);
+
theLinphoneCore = linphone_core_new_with_config (&linphonec_vtable
,configDb
@@ -2062,6 +2062,17 @@ static void audioRouteChangeListenerCallback (
}
}
+-(void)setLogsEnabled:(BOOL)enabled {
+ if (enabled) {
+ linphone_core_enable_logs_with_cb((OrtpLogFunc)linphone_iphone_log_handler);
+ ortp_set_log_level_mask(ORTP_DEBUG|ORTP_MESSAGE|ORTP_WARNING|ORTP_ERROR|ORTP_FATAL);
+ linphone_core_enable_log_collection(enabled);
+ } else {
+ linphone_core_enable_log_collection(enabled);
+ linphone_core_disable_logs();
+ }
+}
+
+(id)getMessageAppDataForKey:(NSString*)key inMessage:(LinphoneChatMessage*)msg {
if(msg == nil ) return nil;
diff --git a/Classes/SettingsViewController.m b/Classes/SettingsViewController.m
index 72899dd65..ce55a8f00 100644
--- a/Classes/SettingsViewController.m
+++ b/Classes/SettingsViewController.m
@@ -495,72 +495,48 @@ static UICompositeViewDescription *compositeDescription = nil;
#pragma mark - Event Functions
- (void)appSettingChanged:(NSNotification*) notif {
- if([@"enable_video_preference" compare: notif.object] == NSOrderedSame) {
- BOOL enable = [[notif.userInfo objectForKey:@"enable_video_preference"] boolValue];
- NSMutableSet *hiddenKeys = [NSMutableSet setWithSet:[settingsController hiddenKeys]];
- if(!enable) {
- [hiddenKeys addObject:@"video_menu"];
- } else {
- [hiddenKeys removeObject:@"video_menu"];
- }
- [settingsController setHiddenKeys:hiddenKeys animated:TRUE];
- } else if ([@"random_port_preference" compare: notif.object] == NSOrderedSame) {
- BOOL enable = [[notif.userInfo objectForKey:@"random_port_preference"] boolValue];
- NSMutableSet *hiddenKeys = [NSMutableSet setWithSet:[settingsController hiddenKeys]];
- if(enable) {
- [hiddenKeys addObject:@"port_preference"];
- } else {
- [hiddenKeys removeObject:@"port_preference"];
- }
- [settingsController setHiddenKeys:hiddenKeys animated:TRUE];
- } else if ([@"backgroundmode_preference" compare: notif.object] == NSOrderedSame) {
- BOOL enable = [[notif.userInfo objectForKey:@"backgroundmode_preference"] boolValue];
- NSMutableSet *hiddenKeys = [NSMutableSet setWithSet:[settingsController hiddenKeys]];
- if(!enable) {
- [hiddenKeys addObject:@"start_at_boot_preference"];
- } else {
- [hiddenKeys removeObject:@"start_at_boot_preference"];
- }
- [settingsController setHiddenKeys:hiddenKeys animated:TRUE];
- } else if ([@"stun_preference" compare: notif.object] == NSOrderedSame) {
- NSMutableSet *hiddenKeys = [NSMutableSet setWithSet:[settingsController hiddenKeys]];
- NSString *stun_server = [notif.userInfo objectForKey:@"stun_preference"];
- if (stun_server && ([stun_server length] > 0)) {
- [hiddenKeys removeObject:@"ice_preference"];
- } else {
- [hiddenKeys addObject:@"ice_preference"];
- }
- [settingsController setHiddenKeys:hiddenKeys animated:TRUE];
- } else if ([@"debugenable_preference" compare: notif.object] == NSOrderedSame) {
- NSMutableSet *hiddenKeys = [NSMutableSet setWithSet:[settingsController hiddenKeys]];
- BOOL debugEnable = [[notif.userInfo objectForKey:@"debugenable_preference"] boolValue];
- if (debugEnable) {
- [hiddenKeys removeObject:@"console_button"];
- } else {
- [hiddenKeys addObject:@"console_button"];
- }
- [settingsController setHiddenKeys:hiddenKeys animated:TRUE];
- } else if( [@"advanced_account_preference" compare:notif.object] == NSOrderedSame) {
- BOOL advanced = [[notif.userInfo objectForKey:@"advanced_account_preference"] boolValue];
- NSMutableSet *hiddenKeys = [NSMutableSet setWithSet:[settingsController hiddenKeys]];
+ NSMutableSet *hiddenKeys = [NSMutableSet setWithSet:[settingsController hiddenKeys]];
+ NSMutableArray* keys = [NSMutableArray array];
+ BOOL removeFromHiddenKeys = TRUE;
+
+ if([@"enable_video_preference" compare: notif.object] == NSOrderedSame) {
+ removeFromHiddenKeys = [[notif.userInfo objectForKey:@"enable_video_preference"] boolValue];
+ [keys addObject:@"video_menu"];
+ } else if ([@"random_port_preference" compare: notif.object] == NSOrderedSame) {
+ removeFromHiddenKeys = ! [[notif.userInfo objectForKey:@"random_port_preference"] boolValue];
+ [keys addObject:@"port_preference"];
+ } else if ([@"backgroundmode_preference" compare: notif.object] == NSOrderedSame) {
+ removeFromHiddenKeys = [[notif.userInfo objectForKey:@"backgroundmode_preference"] boolValue];
+ [keys addObject:@"start_at_boot_preference"];
+ } else if ([@"stun_preference" compare: notif.object] == NSOrderedSame) {
+ NSString *stun_server = [notif.userInfo objectForKey:@"stun_preference"];
+ removeFromHiddenKeys = (stun_server && ([stun_server length] > 0));
+ [keys addObject:@"ice_preference"];
+ } else if ([@"debugenable_preference" compare: notif.object] == NSOrderedSame) {
+ BOOL debugEnabled = [[notif.userInfo objectForKey:@"debugenable_preference"] boolValue];
+ removeFromHiddenKeys = debugEnabled;
+ [keys addObject:@"send_logs_button"];
+ [[LinphoneManager instance] setLogsEnabled:debugEnabled];
+ } else if( [@"advanced_account_preference" compare:notif.object] == NSOrderedSame) {
+ removeFromHiddenKeys = [[notif.userInfo objectForKey:@"advanced_account_preference"] boolValue];
+
+ [keys addObject:@"userid_preference"];
+ [keys addObject:@"proxy_preference"];
+ [keys addObject:@"outbound_proxy_preference"];
+ [keys addObject:@"avpf_preference"];
+ }
+
+ for(NSString* key in keys){
+ if( removeFromHiddenKeys ) [hiddenKeys removeObject:key];
+ else [hiddenKeys addObject:key];
+ }
+
+ [settingsController setHiddenKeys:hiddenKeys animated:TRUE];
- if( advanced ){
- [hiddenKeys removeObject:@"userid_preference"];
- [hiddenKeys removeObject:@"proxy_preference"];
- [hiddenKeys removeObject:@"outbound_proxy_preference"];
- [hiddenKeys removeObject:@"avpf_preference"];
- } else {
- [hiddenKeys addObject:@"userid_preference"];
- [hiddenKeys addObject:@"proxy_preference"];
- [hiddenKeys addObject:@"outbound_proxy_preference"];
- [hiddenKeys addObject:@"avpf_preference"];
- }
- [settingsController setHiddenKeys:hiddenKeys animated:TRUE];
- }
}
-#pragma mark -
+#pragma mark -
+ (IASKSpecifier*)disableCodecSpecifier:(IASKSpecifier *)specifier {
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithDictionary:[specifier specifierDict]];
@@ -637,7 +613,7 @@ static UICompositeViewDescription *compositeDescription = nil;
[hiddenKeys addObject:@"battery_alert_button"];
#endif
- if (! [[LinphoneManager instance] lpConfigBoolForKey:@"enable_log_collect"]) {
+ if (! [[LinphoneManager instance] lpConfigBoolForKey:@"debugenable_preference"]) {
[hiddenKeys addObject:@"send_logs_button"];
}
diff --git a/Settings/InAppSettings.bundle/Advanced.plist b/Settings/InAppSettings.bundle/Advanced.plist
index b19e97612..2c1e5d99a 100644
--- a/Settings/InAppSettings.bundle/Advanced.plist
+++ b/Settings/InAppSettings.bundle/Advanced.plist
@@ -20,6 +20,14 @@
Type
PSToggleSwitchSpecifier
+
+ Key
+ send_logs_button
+ Title
+ Send Logs
+ Type
+ IASKButtonSpecifier
+
Title
diff --git a/Settings/InAppSettings.bundle/Root.plist b/Settings/InAppSettings.bundle/Root.plist
index 06957b89e..18622f716 100644
--- a/Settings/InAppSettings.bundle/Root.plist
+++ b/Settings/InAppSettings.bundle/Root.plist
@@ -280,14 +280,6 @@
Type
IASKButtonSpecifier
-
- Key
- send_logs_button
- Title
- Send debug logs
- Type
- IASKButtonSpecifier
-
StringsTable
Root