From 7ff6008db17830d105da69910b6015ed5c9cda95 Mon Sep 17 00:00:00 2001 From: Guillaume BIENKOWSKI Date: Wed, 17 Dec 2014 12:13:47 +0100 Subject: [PATCH] Move the send logs button to the advanced menu and use only one preference to trigger it (debugenable_preference) --- Classes/LinphoneCoreSettingsStore.m | 9 +- Classes/LinphoneManager.h | 1 + Classes/LinphoneManager.m | 17 +++- Classes/SettingsViewController.m | 102 +++++++------------ Settings/InAppSettings.bundle/Advanced.plist | 8 ++ Settings/InAppSettings.bundle/Root.plist | 8 -- 6 files changed, 64 insertions(+), 81 deletions(-) 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