From 46fa49533f83a4e8bb201d11d30535a53d270af9 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 5 Nov 2012 11:45:43 +0100 Subject: [PATCH] Added custom boolean to replace wizard by simple interface --- res/values-FR/strings.xml | 1 + res/values/non_localizable_custom.xml | 1 + res/values/strings.xml | 2 +- .../linphone/AccountPreferencesFragment.java | 11 ++++++++++ src/org/linphone/PreferencesFragment.java | 22 +++++++++++++++++-- 5 files changed, 34 insertions(+), 3 deletions(-) diff --git a/res/values-FR/strings.xml b/res/values-FR/strings.xml index c9ca66e8b..0b667ba6c 100644 --- a/res/values-FR/strings.xml +++ b/res/values-FR/strings.xml @@ -84,6 +84,7 @@ Commencer Application pas prête + Ajouter un compte Aucun numéro trouvé pour %s Filtrer contacts Numéros de %s diff --git a/res/values/non_localizable_custom.xml b/res/values/non_localizable_custom.xml index cfd0132b7..b798240b9 100644 --- a/res/values/non_localizable_custom.xml +++ b/res/values/non_localizable_custom.xml @@ -17,6 +17,7 @@ true false + false false false false diff --git a/res/values/strings.xml b/res/values/strings.xml index eab717a0c..c291a910b 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -103,7 +103,7 @@ Start Application not ready - + Add account No phone numbers found for %s Filter contacts %s\'s phone numbers diff --git a/src/org/linphone/AccountPreferencesFragment.java b/src/org/linphone/AccountPreferencesFragment.java index 9b59d29ab..1fe1e7b31 100644 --- a/src/org/linphone/AccountPreferencesFragment.java +++ b/src/org/linphone/AccountPreferencesFragment.java @@ -168,6 +168,17 @@ public class AccountPreferencesFragment extends PreferencesListFragment { public void onPause() { super.onPause(); + SharedPreferences prefs = getPreferenceManager().getSharedPreferences(); + int n = prefs.getInt(getString(R.string.pref_extra_accounts), 1); + String keyUsername = getString(R.string.pref_username_key) + (n-1 == 0 ? "" : Integer.toString(n-1)); + + if (prefs.getString(keyUsername, "").equals("")) { + //If not, we suppress it to not display a blank field + SharedPreferences.Editor editor = prefs.edit(); + editor.putInt(getString(R.string.pref_extra_accounts), n-1); + editor.commit(); + } + if (LinphoneActivity.isInstanciated()) { LinphoneActivity.instance().applyConfigChangesIfNeeded(); } diff --git a/src/org/linphone/PreferencesFragment.java b/src/org/linphone/PreferencesFragment.java index eeb89dced..321e59667 100644 --- a/src/org/linphone/PreferencesFragment.java +++ b/src/org/linphone/PreferencesFragment.java @@ -58,6 +58,7 @@ import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceCategory; +import android.preference.PreferenceFragment; import android.preference.PreferenceScreen; public class PreferencesFragment extends PreferencesListFragment implements EcCalibrationListener { @@ -92,9 +93,13 @@ public class PreferencesFragment extends PreferencesListFragment implements EcCa accounts.setLayoutResource(R.layout.hidden); } - if (getResources().getBoolean(R.bool.hide_wizard)) { + if (getResources().getBoolean(R.bool.hide_wizard) || getResources().getBoolean(R.bool.replace_wizard_with_old_interface)) { Preference wizard = (Preference) getPreferenceScreen().getPreference(WIZARD_SETTINGS_ID); - wizard.setLayoutResource(R.layout.hidden); + if (getResources().getBoolean(R.bool.replace_wizard_with_old_interface)) { + createAddAccountButton(); + } else { + wizard.setLayoutResource(R.layout.hidden); + } } else { addWizardPreferenceButton(); } @@ -199,6 +204,19 @@ public class PreferencesFragment extends PreferencesListFragment implements EcCa } } + private void createAddAccountButton() { + Preference addAccount = (Preference) getPreferenceScreen().getPreference(WIZARD_SETTINGS_ID); + addAccount.setTitle(getString(R.string.pref_add_account)); + addAccount.setOnPreferenceClickListener(new OnPreferenceClickListener() { + public boolean onPreferenceClick(Preference preference) { + addExtraAccountPreferencesButton(accounts, nbAccounts, true); + LinphoneActivity.instance().displayAccountSettings(nbAccounts); + nbAccounts++; + return true; + } + }); + } + private void hidePreferenceCategory(int key) { PreferenceCategory p = (PreferenceCategory) findPreference(key); p.removeAll();