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

iax: fix NPE when showing iax account details

Some values were empty, because IAX offers only a subset of SIP options
parent 36b3b0e7
Branches
Tags
No related merge requests found
...@@ -99,16 +99,16 @@ public class GeneralAccountFragment extends PreferenceFragment { ...@@ -99,16 +99,16 @@ public class GeneralAccountFragment extends PreferenceFragment {
if (!p.isTwoState) { if (!p.isTwoState) {
((EditTextPreference) pref).setText(p.mValue); ((EditTextPreference) pref).setText(p.mValue);
if (pref instanceof PasswordPreference) { if (pref instanceof PasswordPreference) {
String tmp = new String(); String tmp = "";
for (int i = 0; i < p.mValue.length(); ++i) { for (int i = 0; i < p.mValue.length(); ++i) {
tmp += "*"; tmp += "*";
} }
pref.setSummary(tmp); pref.setSummary(tmp);
} else { } else {
pref.setSummary(p.mValue); pref.setSummary(p.mValue);
} }
} else { } else {
Log.i(TAG, "pref:"+p.mKey);
((CheckBoxPreference) pref).setChecked(p.isChecked()); ((CheckBoxPreference) pref).setChecked(p.isChecked());
} }
} else { } else {
......
...@@ -47,9 +47,7 @@ public interface AccountDetail { ...@@ -47,9 +47,7 @@ public interface AccountDetail {
} }
public boolean isChecked() { public boolean isChecked() {
if (mValue.contentEquals("true")) return mValue.contentEquals("true");
return true;
return false;
} }
} }
......
...@@ -55,38 +55,20 @@ public class AccountDetailAdvanced implements AccountDetail { ...@@ -55,38 +55,20 @@ public class AccountDetailAdvanced implements AccountDetail {
private ArrayList<AccountDetail.PreferenceEntry> privateArray; private ArrayList<AccountDetail.PreferenceEntry> privateArray;
public static ArrayList<AccountDetail.PreferenceEntry> getPreferenceEntries() {
ArrayList<AccountDetail.PreferenceEntry> preference = new ArrayList<AccountDetail.PreferenceEntry>();
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_REGISTRATION_EXPIRE));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_REGISTRATION_STATUS));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_REGISTRATION_STATE_CODE));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_REGISTRATION_STATE_DESC));
preference.add(new PreferenceEntry(CONFIG_CREDENTIAL_NUMBER));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_DTMF_TYPE));
preference.add(new PreferenceEntry(CONFIG_RINGTONE_PATH));
preference.add(new PreferenceEntry(CONFIG_RINGTONE_ENABLED, true));
preference.add(new PreferenceEntry(CONFIG_KEEP_ALIVE_ENABLED, true));
preference.add(new PreferenceEntry(CONFIG_LOCAL_INTERFACE));
preference.add(new PreferenceEntry(CONFIG_PUBLISHED_SAMEAS_LOCAL, true));
preference.add(new PreferenceEntry(CONFIG_LOCAL_PORT));
preference.add(new PreferenceEntry(CONFIG_PUBLISHED_PORT));
preference.add(new PreferenceEntry(CONFIG_PUBLISHED_ADDRESS));
preference.add(new PreferenceEntry(CONFIG_STUN_SERVER));
preference.add(new PreferenceEntry(CONFIG_STUN_ENABLE, true));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_MAILBOX));
preference.add(new PreferenceEntry(CONFIG_AUDIO_PORT_MIN));
preference.add(new PreferenceEntry(CONFIG_AUDIO_PORT_MAX));
return preference;
}
public AccountDetailAdvanced(HashMap<String, String> pref) { public AccountDetailAdvanced(HashMap<String, String> pref) {
privateArray = getPreferenceEntries(); privateArray = new ArrayList<AccountDetail.PreferenceEntry>();
for (AccountDetail.PreferenceEntry p : privateArray) { for (String key : pref.keySet()) {
p.mValue = pref.get(p.mKey); PreferenceEntry p = new PreferenceEntry(key);
p.mValue = pref.get(key);
if(key.contentEquals(CONFIG_RINGTONE_ENABLED) ||
key.contentEquals(CONFIG_KEEP_ALIVE_ENABLED) ||
key.contentEquals(CONFIG_PUBLISHED_SAMEAS_LOCAL) ||
key.contentEquals(CONFIG_STUN_ENABLE))
p.isTwoState = true;
privateArray.add(p);
} }
} }
......
...@@ -46,29 +46,17 @@ public class AccountDetailBasic implements AccountDetail { ...@@ -46,29 +46,17 @@ public class AccountDetailBasic implements AccountDetail {
private ArrayList<AccountDetail.PreferenceEntry> privateArray; private ArrayList<AccountDetail.PreferenceEntry> privateArray;
public static ArrayList<AccountDetail.PreferenceEntry> getPreferenceEntries() {
ArrayList<AccountDetail.PreferenceEntry> preference = new ArrayList<AccountDetail.PreferenceEntry>();
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_ENABLE, true));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_TYPE));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_ALIAS));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_HOSTNAME));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_USERNAME));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_ROUTESET));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_PASSWORD));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_AUTOANSWER, true));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_REALM));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_USERAGENT));
preference.add(new PreferenceEntry(CONFIG_PRESENCE_ENABLE));
return preference;
}
public AccountDetailBasic(HashMap<String, String> pref) { public AccountDetailBasic(HashMap<String, String> pref) {
privateArray = getPreferenceEntries(); privateArray = new ArrayList<AccountDetail.PreferenceEntry>();
for (AccountDetail.PreferenceEntry p : privateArray) { for (String key : pref.keySet()) {
p.mValue = pref.get(p.mKey); PreferenceEntry p = new PreferenceEntry(key);
p.mValue = pref.get(key);
if(key.contentEquals(CONFIG_ACCOUNT_ENABLE) || key.contentEquals(CONFIG_ACCOUNT_AUTOANSWER))
p.isTwoState = true;
privateArray.add(p);
} }
} }
......
...@@ -98,10 +98,11 @@ public class SwigNativeConverter { ...@@ -98,10 +98,11 @@ public class SwigNativeConverter {
nativemap.put(AccountDetailBasic.CONFIG_ACCOUNT_ENABLE, swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_ENABLE)); nativemap.put(AccountDetailBasic.CONFIG_ACCOUNT_ENABLE, swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_ENABLE));
nativemap.put(AccountDetailBasic.CONFIG_ACCOUNT_USERAGENT, swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_USERAGENT)); nativemap.put(AccountDetailBasic.CONFIG_ACCOUNT_USERAGENT, swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_USERAGENT));
nativemap.put(AccountDetailAdvanced.CONFIG_ACCOUNT_MAILBOX, swigmap.get(AccountDetailAdvanced.CONFIG_ACCOUNT_MAILBOX)); nativemap.put(AccountDetailAdvanced.CONFIG_ACCOUNT_MAILBOX, swigmap.get(AccountDetailAdvanced.CONFIG_ACCOUNT_MAILBOX));
nativemap.put(AccountDetailBasic.CONFIG_ACCOUNT_AUTOANSWER, swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_AUTOANSWER));
if (swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_TYPE).equals("SIP")) if (swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_TYPE).equals("SIP"))
{ {
nativemap.put(AccountDetailBasic.CONFIG_ACCOUNT_AUTOANSWER, swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_AUTOANSWER));
nativemap.put(AccountDetailBasic.CONFIG_ACCOUNT_ROUTESET, swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_ROUTESET)); nativemap.put(AccountDetailBasic.CONFIG_ACCOUNT_ROUTESET, swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_ROUTESET));
nativemap nativemap
.put(AccountDetailAdvanced.CONFIG_ACCOUNT_REGISTRATION_EXPIRE, swigmap.get(AccountDetailAdvanced.CONFIG_ACCOUNT_REGISTRATION_EXPIRE)); .put(AccountDetailAdvanced.CONFIG_ACCOUNT_REGISTRATION_EXPIRE, swigmap.get(AccountDetailAdvanced.CONFIG_ACCOUNT_REGISTRATION_EXPIRE));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment