Allow to remove all accounts

This commit is contained in:
Sylvain Berfini 2012-11-05 16:37:18 +01:00 committed by Sylvain Berfini
parent db119739f7
commit 97ac11bc47
2 changed files with 28 additions and 17 deletions

View file

@ -101,7 +101,7 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
disable.setKey(getString(R.string.pref_disable_account_key) + key); disable.setKey(getString(R.string.pref_disable_account_key) + key);
final Preference delete = advanced.getPreference(4); final Preference delete = advanced.getPreference(4);
delete.setEnabled(prefs.getInt(getString(R.string.pref_default_account_key), 0) != n); delete.setEnabled(true);
delete.setOnPreferenceClickListener(new OnPreferenceClickListener() { delete.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) { public boolean onPreferenceClick(Preference preference) {
int nbAccounts = prefs.getInt(getString(R.string.pref_extra_accounts), 1); int nbAccounts = prefs.getInt(getString(R.string.pref_extra_accounts), 1);
@ -116,6 +116,7 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
editor.putBoolean(getString(R.string.pref_disable_account_key) + getAccountNumber(i), prefs.getBoolean(getString(R.string.pref_disable_account_key) + getAccountNumber(i+1), false)); editor.putBoolean(getString(R.string.pref_disable_account_key) + getAccountNumber(i), prefs.getBoolean(getString(R.string.pref_disable_account_key) + getAccountNumber(i+1), false));
} }
if (n != 0) {
int lastAccount = nbAccounts - 1; int lastAccount = nbAccounts - 1;
editor.putString(getString(R.string.pref_username_key) + getAccountNumber(lastAccount), null); editor.putString(getString(R.string.pref_username_key) + getAccountNumber(lastAccount), null);
editor.putString(getString(R.string.pref_passwd_key) + getAccountNumber(lastAccount), null); editor.putString(getString(R.string.pref_passwd_key) + getAccountNumber(lastAccount), null);
@ -128,8 +129,15 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
if (defaultAccount > n) { if (defaultAccount > n) {
editor.putInt(getString(R.string.pref_default_account_key), defaultAccount - 1); editor.putInt(getString(R.string.pref_default_account_key), defaultAccount - 1);
} }
editor.putInt(getString(R.string.pref_extra_accounts), nbAccounts - 1); editor.putInt(getString(R.string.pref_extra_accounts), nbAccounts - 1);
} else if (n == 0 && nbAccounts <= 1) {
editor.putString(getString(R.string.pref_username_key), "");
editor.putString(getString(R.string.pref_passwd_key), "");
editor.putString(getString(R.string.pref_domain_key), "");
} else {
editor.putInt(getString(R.string.pref_extra_accounts), nbAccounts - 1);
}
editor.commit(); editor.commit();
LinphoneActivity.instance().displaySettings(); LinphoneActivity.instance().displaySettings();
@ -148,7 +156,6 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
SharedPreferences.Editor editor = prefs.edit(); SharedPreferences.Editor editor = prefs.edit();
editor.putInt(getString(R.string.pref_default_account_key), n); editor.putInt(getString(R.string.pref_default_account_key), n);
editor.commit(); editor.commit();
delete.setEnabled(false);
disable.setEnabled(false); disable.setEnabled(false);
Compatibility.setPreferenceChecked(disable, false); Compatibility.setPreferenceChecked(disable, false);
preference.setEnabled(false); preference.setEnabled(false);
@ -170,7 +177,7 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
SharedPreferences prefs = getPreferenceManager().getSharedPreferences(); SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
int n = prefs.getInt(getString(R.string.pref_extra_accounts), 1); 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)); String keyUsername = getString(R.string.pref_username_key) + getAccountNumber(n-1);
if (prefs.getString(keyUsername, "").equals("")) { if (prefs.getString(keyUsername, "").equals("")) {
//If not, we suppress it to not display a blank field //If not, we suppress it to not display a blank field

View file

@ -257,6 +257,10 @@ public class PreferencesFragment extends PreferencesListFragment implements EcCa
addAccount.setTitle(getString(R.string.pref_add_account)); addAccount.setTitle(getString(R.string.pref_add_account));
addAccount.setOnPreferenceClickListener(new OnPreferenceClickListener() { addAccount.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) { public boolean onPreferenceClick(Preference preference) {
SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
nbAccounts = prefs.getInt(getString(R.string.pref_extra_accounts), 0);
prefs.edit().putInt(getString(R.string.pref_extra_accounts), nbAccounts+1).commit();
addExtraAccountPreferencesButton(accounts, nbAccounts, true); addExtraAccountPreferencesButton(accounts, nbAccounts, true);
LinphoneActivity.instance().displayAccountSettings(nbAccounts); LinphoneActivity.instance().displayAccountSettings(nbAccounts);
nbAccounts++; nbAccounts++;