From 0fa635dc6864079c252b9176a20dfc06a7652138 Mon Sep 17 00:00:00 2001 From: Guillaume BIENKOWSKI Date: Fri, 20 Feb 2015 11:27:53 +0100 Subject: [PATCH] Allow to clear the proxy config with a button in the settings. --- Classes/FirstLoginViewController.m | 2 +- Classes/LinphoneCoreSettingsStore.m | 2 +- Classes/SettingsViewController.m | 29 +++++++++++++++---- Classes/WizardViewController.m | 2 +- Settings/InAppSettings.bundle/Root.plist | 8 +++++ .../ar.lproj/Root.strings | 3 ++ .../en.lproj/Root.strings | 3 ++ .../fr.lproj/Root.strings | 3 ++ .../ru.lproj/Root.strings | 3 ++ 9 files changed, 47 insertions(+), 8 deletions(-) diff --git a/Classes/FirstLoginViewController.m b/Classes/FirstLoginViewController.m index abd8a3e2e..cfd5cf754 100644 --- a/Classes/FirstLoginViewController.m +++ b/Classes/FirstLoginViewController.m @@ -190,7 +190,7 @@ static UICompositeViewDescription *compositeDescription = nil; ,linphone_proxy_config_get_domain(proxyCfg)); linphone_core_add_auth_info([LinphoneManager getLc], auth_info); linphone_core_add_proxy_config([LinphoneManager getLc], proxyCfg); - linphone_core_set_default_proxy([LinphoneManager getLc], proxyCfg); + linphone_core_set_default_proxy_config([LinphoneManager getLc], proxyCfg); [self.waitView setHidden:false]; }; } diff --git a/Classes/LinphoneCoreSettingsStore.m b/Classes/LinphoneCoreSettingsStore.m index 2327a34d0..d37f40c4a 100644 --- a/Classes/LinphoneCoreSettingsStore.m +++ b/Classes/LinphoneCoreSettingsStore.m @@ -438,7 +438,7 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); } else { // was a new proxy config, add it linphone_core_add_proxy_config(lc, proxyCfg); - linphone_core_set_default_proxy(lc,proxyCfg); + linphone_core_set_default_proxy_config(lc,proxyCfg); } bad_proxy: diff --git a/Classes/SettingsViewController.m b/Classes/SettingsViewController.m index e1a53e5ee..733df0327 100644 --- a/Classes/SettingsViewController.m +++ b/Classes/SettingsViewController.m @@ -32,6 +32,8 @@ #import "IASKTextField.h" #include "linphone/lpconfig.h" +#import "DTAlertView.h" + #ifdef DEBUG @interface UIDevice (debug) @@ -686,6 +688,7 @@ static UICompositeViewDescription *compositeDescription = nil; - (void)settingsViewController:(IASKAppSettingsViewController*)sender buttonTappedForSpecifier:(IASKSpecifier*)specifier { NSString *key = [specifier.specifierDict objectForKey:kIASKKey]; + LinphoneCore* lc = [LinphoneManager getLc]; #ifdef DEBUG if([key isEqual:@"release_button"]) { [UIApplication sharedApplication].keyWindow.rootViewController = nil; @@ -701,9 +704,7 @@ static UICompositeViewDescription *compositeDescription = nil; } #endif if([key isEqual:@"wizard_button"]) { - LinphoneProxyConfig* proxy = NULL; - linphone_core_get_default_proxy([LinphoneManager getLc], &proxy); - if (proxy == NULL ) { + if (linphone_core_get_default_proxy_config(lc) == NULL ) { [self goToWizard]; return; } @@ -714,12 +715,30 @@ static UICompositeViewDescription *compositeDescription = nil; otherButtonTitles:NSLocalizedString(@"Launch Wizard",nil), nil]; [alert show]; [alert release]; - } else if([key isEqual:@"about_button"]) { + } else if ( [key isEqual:@"clear_proxy_button"] ) { + if ( linphone_core_get_default_proxy_config(lc) == NULL ) { + return; + } + + DTAlertView* alert = [[DTAlertView alloc] initWithTitle:NSLocalizedString(@"Warning", nil) message:NSLocalizedString(@"Are you sure to want to clear your proxy setup?",nil)]; + + [alert addCancelButtonWithTitle:NSLocalizedString(@"Cancel", nil) block:nil]; + [alert addButtonWithTitle:NSLocalizedString(@"Yes", nil) + block:^{ + linphone_core_clear_proxy_config(lc); + linphone_core_clear_all_auth_info(lc); + [settingsStore transformLinphoneCoreToKeys]; + [settingsController.tableView reloadData]; + }]; + [alert show]; + [alert release]; + + } else if([key isEqual:@"about_button"]) { [[PhoneMainView instance] changeCurrentView:[AboutViewController compositeViewDescription] push:TRUE]; } else if ([key isEqualToString:@"reset_logs_button"]) { linphone_core_reset_log_collection(); } else if ([key isEqual:@"send_logs_button"]) { - char * filepath = linphone_core_compress_log_collection([LinphoneManager getLc]); + char * filepath = linphone_core_compress_log_collection(lc); if (filepath == NULL) { [LinphoneLogger log:LinphoneLoggerError format:@"Cannot sent logs: file is NULL"]; return; diff --git a/Classes/WizardViewController.m b/Classes/WizardViewController.m index 82cc40592..69110d042 100644 --- a/Classes/WizardViewController.m +++ b/Classes/WizardViewController.m @@ -514,7 +514,7 @@ static UICompositeViewDescription *compositeDescription = nil; linphone_proxy_config_enable_register(proxyCfg, true); linphone_core_add_auth_info([LinphoneManager getLc], info); linphone_core_add_proxy_config([LinphoneManager getLc], proxyCfg); - linphone_core_set_default_proxy([LinphoneManager getLc], proxyCfg); + linphone_core_set_default_proxy_config([LinphoneManager getLc], proxyCfg); } - (NSString*)identityFromUsername:(NSString*)username { diff --git a/Settings/InAppSettings.bundle/Root.plist b/Settings/InAppSettings.bundle/Root.plist index 18622f716..62dbcc5ec 100644 --- a/Settings/InAppSettings.bundle/Root.plist +++ b/Settings/InAppSettings.bundle/Root.plist @@ -18,6 +18,14 @@ Type IASKButtonSpecifier + + Key + clear_proxy_button + Title + Clear Account + Type + IASKButtonSpecifier + AutocapitalizationType None diff --git a/Settings/InAppSettings.bundle/ar.lproj/Root.strings b/Settings/InAppSettings.bundle/ar.lproj/Root.strings index 9521d0a78..030f39138 100644 --- a/Settings/InAppSettings.bundle/ar.lproj/Root.strings +++ b/Settings/InAppSettings.bundle/ar.lproj/Root.strings @@ -60,3 +60,6 @@ /* More options */ "More options" = "الخيارات الأخرى"; + +/* Clear Account */ +"Clear Account" = "Clear Account"; \ No newline at end of file diff --git a/Settings/InAppSettings.bundle/en.lproj/Root.strings b/Settings/InAppSettings.bundle/en.lproj/Root.strings index 694ab7da8..442bf4709 100644 --- a/Settings/InAppSettings.bundle/en.lproj/Root.strings +++ b/Settings/InAppSettings.bundle/en.lproj/Root.strings @@ -60,3 +60,6 @@ /* More options */ "More options" = "More options"; + +/* Clear Account */ +"Clear Account" = "Clear Account"; \ No newline at end of file diff --git a/Settings/InAppSettings.bundle/fr.lproj/Root.strings b/Settings/InAppSettings.bundle/fr.lproj/Root.strings index b8e38a79c..46244e4a1 100644 --- a/Settings/InAppSettings.bundle/fr.lproj/Root.strings +++ b/Settings/InAppSettings.bundle/fr.lproj/Root.strings @@ -60,3 +60,6 @@ /* More options */ "More options" = "Plus d'options"; + +/* Clear Account */ +"Clear Account" = "Effacer le compte"; \ No newline at end of file diff --git a/Settings/InAppSettings.bundle/ru.lproj/Root.strings b/Settings/InAppSettings.bundle/ru.lproj/Root.strings index d728e8bac..58b135b33 100644 --- a/Settings/InAppSettings.bundle/ru.lproj/Root.strings +++ b/Settings/InAppSettings.bundle/ru.lproj/Root.strings @@ -60,3 +60,6 @@ /* More options */ "More options" = "Дополнительный счет"; + +/* Clear Account */ +"Clear Account" = "Clear Account"; \ No newline at end of file