Skip to content
Snippets Groups Projects
Commit e899a750 authored by Alexandre Lision's avatar Alexandre Lision
Browse files

account: add sip account status in settings

The account management screen serves only to toggle account status
(enabled/disabled)
The account status and toggle are now in the account setting screen.

Change-Id: Idf257ff9d6c168c6b74ab95ec68c131ad2799ce0
Tuleap: #1218
parent e696f58d
No related branches found
No related tags found
No related merge requests found
...@@ -24,6 +24,7 @@ import android.os.Bundle; ...@@ -24,6 +24,7 @@ import android.os.Bundle;
import android.support.v14.preference.PreferenceFragment; import android.support.v14.preference.PreferenceFragment;
import android.support.v7.preference.EditTextPreference; import android.support.v7.preference.EditTextPreference;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.SwitchPreferenceCompat;
import android.support.v7.preference.TwoStatePreference; import android.support.v7.preference.TwoStatePreference;
import android.util.Log; import android.util.Log;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
...@@ -69,9 +70,35 @@ public class GeneralAccountFragment extends PreferenceFragment implements Accoun ...@@ -69,9 +70,35 @@ public class GeneralAccountFragment extends PreferenceFragment implements Accoun
} }
@Override @Override
public void accountChanged(Account acc) { public void accountChanged(Account account) {
setPreferenceDetails(acc.getConfig()); setPreferenceDetails(account.getConfig());
setPreferenceListener(acc.getConfig(), changeBasicPreferenceListener); setPreferenceListener(account.getConfig(), changeBasicPreferenceListener);
SwitchPreferenceCompat pref = (SwitchPreferenceCompat) findPreference("Account.status");
if (account.isSip() && pref != null) {
String status;
pref.setTitle(account.getAlias());
pref.setOnPreferenceChangeListener(changeAccountStatusListener);
if (account.isEnabled()) {
if (account.isTrying()) {
status = getString(R.string.account_status_connecting);
} else if (account.needsMigration()) {
status = getString(R.string.account_update_needed);
} else if (account.isInError()) {
status = getString(R.string.account_status_connection_error);
} else if (account.isRegistered()) {
status = getString(R.string.account_status_online);
} else {
status = getString(R.string.account_status_unknown);
}
} else {
status = getString(R.string.account_status_offline);
}
pref.setSummary(status);
pref.setChecked(account.isEnabled());
// An ip2ip account is always ready
pref.setEnabled(!account.isIP2IP());
}
} }
@Override @Override
...@@ -131,7 +158,9 @@ public class GeneralAccountFragment extends PreferenceFragment implements Accoun ...@@ -131,7 +158,9 @@ public class GeneralAccountFragment extends PreferenceFragment implements Accoun
private void setPreferenceDetails(AccountConfig details) { private void setPreferenceDetails(AccountConfig details) {
for (ConfigKey confKey : details.getKeys()) { for (ConfigKey confKey : details.getKeys()) {
Preference pref = findPreference(confKey.key()); Preference pref = findPreference(confKey.key());
if (pref != null) { if (pref == null) {
continue;
}
if (!confKey.isTwoState()) { if (!confKey.isTwoState()) {
String val = details.get(confKey); String val = details.get(confKey);
((EditTextPreference) pref).setText(val); ((EditTextPreference) pref).setText(val);
...@@ -149,7 +178,6 @@ public class GeneralAccountFragment extends PreferenceFragment implements Accoun ...@@ -149,7 +178,6 @@ public class GeneralAccountFragment extends PreferenceFragment implements Accoun
} }
} }
} }
}
private void setPreferenceListener(AccountConfig details, Preference.OnPreferenceChangeListener listener) { private void setPreferenceListener(AccountConfig details, Preference.OnPreferenceChangeListener listener) {
for (ConfigKey confKey : details.getKeys()) { for (ConfigKey confKey : details.getKeys()) {
...@@ -160,6 +188,19 @@ public class GeneralAccountFragment extends PreferenceFragment implements Accoun ...@@ -160,6 +188,19 @@ public class GeneralAccountFragment extends PreferenceFragment implements Accoun
} }
} }
private final Preference.OnPreferenceChangeListener changeAccountStatusListener = new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
final Account account = mCallbacks.getAccount();
if (account != null) {
account.setEnabled((Boolean) newValue);
mCallbacks.saveAccount();
}
return false;
}
};
private final Preference.OnPreferenceChangeListener changeBasicPreferenceListener = new Preference.OnPreferenceChangeListener() { private final Preference.OnPreferenceChangeListener changeBasicPreferenceListener = new Preference.OnPreferenceChangeListener() {
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
......
...@@ -22,6 +22,11 @@ along with this program; if not, write to the Free Software ...@@ -22,6 +22,11 @@ along with this program; if not, write to the Free Software
--> -->
<android.support.v7.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > <android.support.v7.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<android.support.v7.preference.SwitchPreferenceCompat
android:id="@+id/account_status"
android:key="Account.status"
android:persistent="false" />
<android.support.v7.preference.PreferenceCategory <android.support.v7.preference.PreferenceCategory
android:id="@+id/account_basic_category" android:id="@+id/account_basic_category"
android:title="@string/account_basic_category" > android:title="@string/account_basic_category" >
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment