diff --git a/res/values/non_localizable_custom.xml b/res/values/non_localizable_custom.xml
index 6a750561f..bec3e38b4 100644
--- a/res/values/non_localizable_custom.xml
+++ b/res/values/non_localizable_custom.xml
@@ -8,6 +8,8 @@
false
false
false
+ false
+ false
false
true
true
diff --git a/src/org/linphone/LinphonePreferencesActivity.java b/src/org/linphone/LinphonePreferencesActivity.java
index f2e9d0d58..678a4d2b5 100644
--- a/src/org/linphone/LinphonePreferencesActivity.java
+++ b/src/org/linphone/LinphonePreferencesActivity.java
@@ -95,6 +95,8 @@ public class LinphonePreferencesActivity extends PreferenceActivity implements E
private static final int ADD_SIP_ACCOUNT = 0x666;
private static final int WIZARD_ID = 0x667;
private static final int CONFIRM_ID = 0x668;
+ private static final int ACCOUNTS_SETTINGS_ID = 0;
+ private static final int ADD_ACCOUNT_SETTINGS_ID = 1;
private static final int WIZARD_SETTINGS_ID = 2;
private static final int CAMERA_SETTINGS_ID = 6;
@@ -120,13 +122,20 @@ public class LinphonePreferencesActivity extends PreferenceActivity implements E
}
private void createDynamicAccountsPreferences() {
- PreferenceScreen root = getPreferenceScreen();
-
- // Get the good preference screen
- accounts = (PreferenceCategory) root.getPreference(0);
+ accounts = (PreferenceCategory) getPreferenceScreen().getPreference(ACCOUNTS_SETTINGS_ID);
accounts.removeAll();
- Preference addAccount = (Preference) root.getPreference(1);
+ // Get already configured extra accounts
+ SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
+ nbAccounts = prefs.getInt(getString(R.string.pref_extra_accounts), 0);
+ for (int i = 0; i < nbAccounts; i++) {
+ // For each, add menus to configure it
+ addExtraAccountPreferencesButton(accounts, i, false);
+ }
+ }
+
+ private void createAddAccountButton() {
+ Preference addAccount = (Preference) getPreferenceScreen().getPreference(ADD_ACCOUNT_SETTINGS_ID);
addAccount.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
addExtraAccountPreferencesButton(accounts, nbAccounts, true);
@@ -138,14 +147,6 @@ public class LinphonePreferencesActivity extends PreferenceActivity implements E
return true;
}
});
-
- // Get already configured extra accounts
- SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
- nbAccounts = prefs.getInt(getString(R.string.pref_extra_accounts), 0);
- for (int i = 0; i < nbAccounts; i++) {
- // For each, add menus to configure it
- addExtraAccountPreferencesButton(accounts, i, false);
- }
}
public int getNbAccountsExtra() {
@@ -565,20 +566,32 @@ public class LinphonePreferencesActivity extends PreferenceActivity implements E
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
- createDynamicAccountsPreferences();
+ if (!getResources().getBoolean(R.bool.hide_accounts)) {
+ createDynamicAccountsPreferences();
+
+ // Accounts have to be displayed to show add account button
+ if (getResources().getBoolean(R.bool.hide_add_account_button)) {
+ Preference addAccount = (Preference) getPreferenceScreen().getPreference(ADD_ACCOUNT_SETTINGS_ID);
+ addAccount.setLayoutResource(R.layout.hidden);
+ } else {
+ createAddAccountButton();
+ }
+ } else {
+ // Hide add account button if accounts are hidden
+ Preference addAccount = (Preference) getPreferenceScreen().getPreference(ADD_ACCOUNT_SETTINGS_ID);
+ addAccount.setLayoutResource(R.layout.hidden);
+ }
if (getResources().getBoolean(R.bool.hide_wizard)) {
- PreferenceScreen screen = getPreferenceScreen();
- Preference wizard = (Preference) screen.getPreference(WIZARD_SETTINGS_ID);
+ Preference wizard = (Preference) getPreferenceScreen().getPreference(WIZARD_SETTINGS_ID);
wizard.setLayoutResource(R.layout.hidden);
} else {
addWizardPreferenceButton();
+ verifiyAccountsActivated();
}
addTransportChecboxesListener();
- verifiyAccountsActivated();
-
ecCalibratePref = (CheckBoxPreference) findPreference(pref_echo_canceller_calibration_key);
ecCalibratePref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {