Hide advanced settings unless user wants them
This commit is contained in:
parent
8082598bdf
commit
480d6fc376
3 changed files with 42 additions and 4 deletions
4
res/layout/visible.xml
Normal file
4
res/layout/visible.xml
Normal file
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent" android:layout_height="fill_parent" android:visibility="visible">
|
||||
</LinearLayout>
|
|
@ -44,7 +44,8 @@
|
|||
<string name="first_launch_suceeded_once_key">first_launch_suceeded_once_key</string>
|
||||
|
||||
<string name="pref_wifi_only_key">pref_wifi_only_key</string>
|
||||
|
||||
<string name="pref_advanced_key">pref_advanced_key</string>
|
||||
|
||||
<string name="pref_video_use_front_camera_key">pref_video_use_front_camera_key</string>
|
||||
<string name="pref_video_codec_h263_key">pref_video_codec_h263_key</string>
|
||||
<string name="pref_video_codec_mpeg4_key">pref_video_codec_mpeg4_key</string>
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue