diff --git a/res/layout/visible.xml b/res/layout/visible.xml new file mode 100644 index 000000000..94528d508 --- /dev/null +++ b/res/layout/visible.xml @@ -0,0 +1,4 @@ + + + diff --git a/res/values/non_localizable_strings.xml b/res/values/non_localizable_strings.xml index 697366fce..a5f234403 100644 --- a/res/values/non_localizable_strings.xml +++ b/res/values/non_localizable_strings.xml @@ -44,7 +44,8 @@ first_launch_suceeded_once_key pref_wifi_only_key - + pref_advanced_key + pref_video_use_front_camera_key pref_video_codec_h263_key pref_video_codec_mpeg4_key diff --git a/src/org/linphone/LinphonePreferencesSIPAccountActivity.java b/src/org/linphone/LinphonePreferencesSIPAccountActivity.java index fa6723b0a..b1251b236 100644 --- a/src/org/linphone/LinphonePreferencesSIPAccountActivity.java +++ b/src/org/linphone/LinphonePreferencesSIPAccountActivity.java @@ -23,6 +23,7 @@ import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.EditTextPreference; import android.preference.Preference; +import android.preference.Preference.OnPreferenceChangeListener; import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceActivity; import android.preference.PreferenceCategory; @@ -65,24 +66,34 @@ public class LinphonePreferencesSIPAccountActivity extends PreferenceActivity { domain.setPersistent(true); domain.setKey(getString(R.string.pref_domain_key) + getAccountNumber(n)); - EditTextPreference proxy = new EditTextPreference(this); + CheckBoxPreference advanced = new CheckBoxPreference(this); + advanced.setTitle(getString(R.string.pref_advanced)); + advanced.setTitle(getString(R.string.pref_advanced_key)); + advanced.setDefaultValue(false); + domain.setPersistent(true); + + final EditTextPreference proxy = new EditTextPreference(this); proxy.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS); proxy.setTitle(getString(R.string.pref_proxy)); proxy.setPersistent(true); proxy.setKey(getString(R.string.pref_proxy_key) + getAccountNumber(n)); + proxy.setLayoutResource(R.layout.hidden); - CheckBoxPreference outboundProxy = new CheckBoxPreference(this); + final CheckBoxPreference outboundProxy = new CheckBoxPreference(this); outboundProxy.setTitle(getString(R.string.pref_enable_outbound_proxy)); outboundProxy.setPersistent(true); outboundProxy.setKey(getString(R.string.pref_enable_outbound_proxy_key) + getAccountNumber(n)); + outboundProxy.setLayoutResource(R.layout.hidden); final CheckBoxPreference disable = new CheckBoxPreference(this); disable.setTitle(getString(R.string.pref_disable_account)); disable.setPersistent(true); disable.setKey(getString(R.string.pref_disable_account_key) + getAccountNumber(n)); + disable.setLayoutResource(R.layout.hidden); final Preference delete = new Preference(this); delete.setTitle(R.string.pref_delete_account); + delete.setLayoutResource(R.layout.hidden); delete.setOnPreferenceClickListener(new OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { int nbAccounts = prefs.getInt(getString(R.string.pref_extra_accounts), 1); @@ -117,7 +128,8 @@ public class LinphonePreferencesSIPAccountActivity extends PreferenceActivity { } }); - CheckBoxPreference mainAccount = new CheckBoxPreference(this); + final CheckBoxPreference mainAccount = new CheckBoxPreference(this); + mainAccount.setLayoutResource(R.layout.hidden); mainAccount.setTitle(R.string.pref_default_account_title); mainAccount.setOnPreferenceClickListener(new OnPreferenceClickListener() { @@ -139,10 +151,31 @@ public class LinphonePreferencesSIPAccountActivity extends PreferenceActivity { delete.setEnabled(prefs.getInt(getString(R.string.pref_default_account), 0) != n); disable.setEnabled(prefs.getInt(getString(R.string.pref_default_account), 0) != n); + advanced.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { + public boolean onPreferenceChange(Preference p, Object value) { + boolean activated = (Boolean) value; + if (activated) { + proxy.setLayoutResource(R.layout.visible); + outboundProxy.setLayoutResource(R.layout.visible); + disable.setLayoutResource(R.layout.visible); + delete.setLayoutResource(R.layout.visible); + mainAccount.setLayoutResource(R.layout.visible); + } else { + proxy.setLayoutResource(R.layout.hidden); + outboundProxy.setLayoutResource(R.layout.hidden); + disable.setLayoutResource(R.layout.hidden); + delete.setLayoutResource(R.layout.hidden); + mainAccount.setLayoutResource(R.layout.hidden); + } + return true; + } + }); + parent.addPreference(category); category.addPreference(username); category.addPreference(password); category.addPreference(domain); + category.addPreference(advanced); category.addPreference(proxy); category.addPreference(outboundProxy); category.addPreference(disable);