Added dial prefix and dial escape to accounts params + fix for account expire

This commit is contained in:
Sylvain Berfini 2013-10-16 10:09:33 +02:00
parent 5c31f7e3f6
commit fbce02c572
10 changed files with 106 additions and 68 deletions

View file

@ -371,6 +371,7 @@
<string name="call_state_incoming">Reçu</string>
<string name="pref_background_mode">Actif en arrière plan</string>
<string name="pref_manage">Gestion</string>
<string name="show_image">Afficher</string>
<string name="download_image">Télécharger</string>

View file

@ -430,6 +430,7 @@
<string name="pref_help_auth_userid">Enter authentication userid (optionnal)</string>
<string name="pref_upnp_enable">Enable UPNP</string>
<string name="pref_manage">Manage</string>
<string name="wait">Please wait...</string>
<string name="importing_messages">Updating messages database</string>

View file

@ -122,4 +122,8 @@
<string name="pref_upnp_enable_key">pref_upnp_enable_key</string>
<string name="pref_first_time_linphone_chat_storage">pref_first_time_linphone_chat_storage</string>
<string name="pref_sipaccount_key">pref_sipaccount_key</string>
<string name="pref_advanced_key">pref_advanced_key</string>
<string name="pref_manage_key">pref_manage_key</string>
</resources>

View file

@ -430,6 +430,7 @@
<string name="pref_help_auth_userid">Enter authentication userid (optionnal)</string>
<string name="pref_upnp_enable">Enable UPNP</string>
<string name="pref_manage">Manage</string>
<string name="wait">Please wait...</string>
<string name="importing_messages">Updating messages database</string>

View file

@ -2,7 +2,8 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="@string/pref_sipaccount">
android:title="@string/pref_sipaccount"
android:key="@string/pref_sipaccount_key">
<EditTextPreference
android:title="@string/pref_username"
@ -24,7 +25,8 @@
</PreferenceCategory>
<PreferenceCategory
android:title="@string/pref_advanced">
android:title="@string/pref_advanced"
android:key="@string/pref_advanced_key">
<EditTextPreference
android:title="@string/pref_proxy"
@ -37,11 +39,25 @@
android:summary="@string/pref_help_outbound_proxy"
android:persistent="true"/>
<EditTextPreference
<EditTextPreference
android:title="@string/pref_expire_title"
android:key="@string/pref_expire_key"
android:numeric="integer" />
<EditTextPreference
android:title="@string/pref_prefix"
android:key="@string/pref_prefix_key"/>
<CheckBoxPreference
android:title="@string/pref_escape_plus"
android:key="@string/pref_escape_plus_key"/>
</PreferenceCategory>
<PreferenceCategory
android:title="@string/pref_manage"
android:key="@string/pref_manage_key">
<CheckBoxPreference
android:title="@string/pref_disable_account"
android:persistent="true"/>

View file

@ -103,14 +103,6 @@
<PreferenceScreen
android:title="@string/call">
<EditTextPreference
android:title="@string/pref_prefix"
android:key="@string/pref_prefix_key"/>
<CheckBoxPreference
android:title="@string/pref_escape_plus"
android:key="@string/pref_escape_plus_key"/>
<CheckBoxPreference
android:title="@string/pref_sipinfo_dtmf"

View file

@ -35,9 +35,11 @@ import android.text.InputType;
*/
public class AccountPreferencesFragment extends PreferencesListFragment {
private int n;
private LinphonePreferences mPrefs;
public AccountPreferencesFragment() {
super(R.xml.account_preferences);
mPrefs = LinphonePreferences.instance();
}
@Override
@ -58,7 +60,7 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
OnPreferenceChangeListener usernameChangedListener = new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
LinphonePreferences.instance().setAccountUsername(n, newValue.toString());
mPrefs.setAccountUsername(n, newValue.toString());
preference.setSummary(newValue.toString());
return true;
}
@ -66,7 +68,7 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
OnPreferenceChangeListener useridChangedListener = new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
LinphonePreferences.instance().setAccountUserId(n, newValue.toString());
mPrefs.setAccountUserId(n, newValue.toString());
preference.setSummary(newValue.toString());
return true;
}
@ -74,14 +76,14 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
OnPreferenceChangeListener passwordChangedListener = new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
LinphonePreferences.instance().setAccountPassword(n, newValue.toString());
mPrefs.setAccountPassword(n, newValue.toString());
return true;
}
};
OnPreferenceChangeListener domainChangedListener = new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
LinphonePreferences.instance().setAccountDomain(n, newValue.toString());
mPrefs.setAccountDomain(n, newValue.toString());
preference.setSummary(newValue.toString());
return true;
}
@ -89,7 +91,7 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
OnPreferenceChangeListener proxyChangedListener = new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
LinphonePreferences.instance().setAccountProxy(n, newValue.toString());
mPrefs.setAccountProxy(n, newValue.toString());
preference.setSummary(newValue.toString());
return true;
}
@ -97,22 +99,39 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
OnPreferenceChangeListener outboundProxyChangedListener = new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
LinphonePreferences.instance().setAccountOutboundProxyEnabled(n, (Boolean) newValue);
mPrefs.setAccountOutboundProxyEnabled(n, (Boolean) newValue);
return true;
}
};
OnPreferenceChangeListener expiresChangedListener = new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
LinphonePreferences.instance().setExpires(n, newValue.toString());
mPrefs.setExpires(n, newValue.toString());
preference.setSummary(newValue.toString());
return true;
}
};
OnPreferenceChangeListener prefixChangedListener = new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String value = newValue.toString();
preference.setSummary(value);
mPrefs.setPrefix(n, value);
return true;
}
};
OnPreferenceChangeListener escapeChangedListener = new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean value = (Boolean) newValue;
mPrefs.setReplacePlusByZeroZero(n, value);
return true;
}
};
OnPreferenceChangeListener disableChangedListener = new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
LinphonePreferences.instance().setAccountEnabled(n, (Boolean) newValue);
mPrefs.setAccountEnabled(n, (Boolean) newValue);
return true;
}
};
@ -124,60 +143,71 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
};
private void manageAccountPreferencesFields(PreferenceScreen parent) {
boolean isDefaultAccount = LinphonePreferences.instance().getDefaultAccountIndex() == n;
boolean isDefaultAccount = mPrefs.getDefaultAccountIndex() == n;
PreferenceCategory account = (PreferenceCategory) getPreferenceScreen().getPreference(0);
PreferenceCategory account = (PreferenceCategory) getPreferenceScreen().findPreference(getString(R.string.pref_sipaccount_key));
EditTextPreference username = (EditTextPreference) account.getPreference(0);
username.setText(LinphonePreferences.instance().getAccountUsername(n));
username.setText(mPrefs.getAccountUsername(n));
username.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
username.setOnPreferenceChangeListener(usernameChangedListener);
username.setSummary(username.getText());
EditTextPreference userid = (EditTextPreference) account.getPreference(1);
userid.setText(LinphonePreferences.instance().getAccountUserId(n));
userid.setText(mPrefs.getAccountUserId(n));
userid.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
userid.setOnPreferenceChangeListener(useridChangedListener);
userid.setSummary(userid.getText());
EditTextPreference password = (EditTextPreference) account.getPreference(2);
password.setText(LinphonePreferences.instance().getAccountPassword(n));
password.setText(mPrefs.getAccountPassword(n));
password.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
password.setOnPreferenceChangeListener(passwordChangedListener);
EditTextPreference domain = (EditTextPreference) account.getPreference(3);
domain.setText(LinphonePreferences.instance().getAccountDomain(n));
domain.setText(mPrefs.getAccountDomain(n));
domain.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
domain.setOnPreferenceChangeListener(domainChangedListener);
domain.setSummary(domain.getText());
PreferenceCategory advanced = (PreferenceCategory) getPreferenceScreen().getPreference(1);
PreferenceCategory advanced = (PreferenceCategory) getPreferenceScreen().findPreference(getString(R.string.pref_advanced_key));
EditTextPreference proxy = (EditTextPreference) advanced.getPreference(0);
proxy.setText(LinphonePreferences.instance().getAccountProxy(n));
proxy.setText(mPrefs.getAccountProxy(n));
proxy.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
proxy.setOnPreferenceChangeListener(proxyChangedListener);
proxy.setSummary("".equals(proxy.getText()) || (proxy.getText() == null) ? getString(R.string.pref_help_proxy) : proxy.getText());
CheckBoxPreference outboundProxy = (CheckBoxPreference) advanced.getPreference(1);
outboundProxy.setChecked(LinphonePreferences.instance().isAccountOutboundProxySet(n));
outboundProxy.setChecked(mPrefs.isAccountOutboundProxySet(n));
outboundProxy.setOnPreferenceChangeListener(outboundProxyChangedListener);
EditTextPreference expires = (EditTextPreference) advanced.getPreference(2);
expires.setText(LinphonePreferences.instance().getExpires(n));
expires.setText(mPrefs.getExpires(n));
expires.setOnPreferenceChangeListener(expiresChangedListener);
expires.setSummary(LinphonePreferences.instance().getExpires(n));
expires.setSummary(mPrefs.getExpires(n));
EditTextPreference prefix = (EditTextPreference) advanced.getPreference(3);
String prefixValue = mPrefs.getPrefix(n);
prefix.setSummary(prefixValue);
prefix.setText(prefixValue);
prefix.setOnPreferenceChangeListener(prefixChangedListener);
final CheckBoxPreference disable = (CheckBoxPreference) advanced.getPreference(3);
CheckBoxPreference escape = (CheckBoxPreference) advanced.getPreference(4);
escape.setChecked(mPrefs.getReplacePlusByZeroZero(n));
escape.setOnPreferenceChangeListener(escapeChangedListener);
PreferenceCategory manage = (PreferenceCategory) getPreferenceScreen().findPreference(getString(R.string.pref_manage_key));
final CheckBoxPreference disable = (CheckBoxPreference) manage.getPreference(0);
disable.setEnabled(true);
disable.setChecked(!LinphonePreferences.instance().isAccountEnabled(n));
disable.setChecked(!mPrefs.isAccountEnabled(n));
disable.setOnPreferenceChangeListener(disableChangedListener);
CheckBoxPreference mainAccount = (CheckBoxPreference) advanced.getPreference(4);
CheckBoxPreference mainAccount = (CheckBoxPreference) manage.getPreference(1);
mainAccount.setChecked(isDefaultAccount);
mainAccount.setEnabled(!mainAccount.isChecked());
mainAccount.setOnPreferenceClickListener(new OnPreferenceClickListener()
{
public boolean onPreferenceClick(Preference preference) {
LinphonePreferences.instance().setDefaultAccount(n);
mPrefs.setDefaultAccount(n);
disable.setEnabled(false);
disable.setChecked(false);
preference.setEnabled(false);
@ -185,11 +215,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
}
});
final Preference delete = advanced.getPreference(5);
final Preference delete = manage.getPreference(2);
delete.setEnabled(true);
delete.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
LinphonePreferences.instance().deleteAccount(n);
mPrefs.deleteAccount(n);
LinphoneActivity.instance().displaySettings();
return true;
}

View file

@ -287,10 +287,32 @@ public class LinphonePreferences {
public void setExpires(int n, String expire) {
try {
getProxyConfig(n).setExpires(Integer.parseInt(expire));
LinphoneProxyConfig prxCfg = getProxyConfig(n);
prxCfg.setExpires(Integer.parseInt(expire));
prxCfg.done();
} catch (NumberFormatException nfe) { }
}
public String getPrefix(int n) {
return getProxyConfig(n).getDialPrefix();
}
public void setPrefix(int n, String prefix) {
LinphoneProxyConfig prxCfg = getProxyConfig(n);
prxCfg.setDialPrefix(prefix);
prxCfg.done();
}
public boolean getReplacePlusByZeroZero(int n) {
return getProxyConfig(n).getDialEscapePlus();
}
public void setReplacePlusByZeroZero(int n, boolean replace) {
LinphoneProxyConfig prxCfg = getProxyConfig(n);
prxCfg.setDialEscapePlus(replace);
prxCfg.done();
}
public void setDefaultAccount(int accountIndex) {
LinphoneProxyConfig[] prxCfgs = getLc().getProxyConfigList();
if (accountIndex >= 0 && accountIndex < prxCfgs.length)
@ -592,7 +614,6 @@ public class LinphonePreferences {
getLc().setMediaEncryption(menc);
}
// Push Notifications
public void setPushNotificationEnabled(boolean enable) {
getConfig().setBool("app", "push_notification", enable);
}
@ -608,7 +629,6 @@ public class LinphonePreferences {
public String getPushNotificationRegistrationID() {
return getConfig().getString("app", "push_notification_regid", null);
}
// End of Push Notifications
public void useIpv6(Boolean enable) {
getLc().enableIpv6(enable);
@ -617,7 +637,6 @@ public class LinphonePreferences {
public boolean isUsingIpv6() {
return getLc().isIpv6Enabled();
}
// End of network settings
// Advanced settings

View file

@ -555,11 +555,6 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
}
private void initCallSettings() {
/*
setPreferenceDefaultValueAndSummary(R.string.pref_prefix_key, mPrefs.getPrefix());
((CheckBoxPreference) findPreference(getString(R.string.pref_escape_plus))).setChecked(mPrefs.replacePlusByZeroZero());
*/
CheckBoxPreference rfc2833 = (CheckBoxPreference) findPreference(getString(R.string.pref_rfc2833_dtmf_key));
CheckBoxPreference sipInfo = (CheckBoxPreference) findPreference(getString(R.string.pref_sipinfo_dtmf_key));
if (mPrefs.useRfc2833Dtmfs()) {
@ -574,27 +569,6 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
}
private void setCallPreferencesListener() {
/*
findPreference(getString(R.string.pref_prefix_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String value = newValue.toString();
preference.setSummary(value);
mPrefs.setPrefix(value);
return true;
}
});
findPreference(getString(R.string.pref_escape_plus)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean value = (Boolean) newValue;
mPrefs.setReplacePlusByZeroZero(value);
return true;
}
});
*/
findPreference(getString(R.string.pref_rfc2833_dtmf_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {

@ -1 +1 @@
Subproject commit aaf2c2d0e8f16f7204e3a055d1f04e8645f071eb
Subproject commit f04dab8f103d7be12ad9b72bdfef87b37aea458e