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="call_state_incoming">Reçu</string>
<string name="pref_background_mode">Actif en arrière plan</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="show_image">Afficher</string>
<string name="download_image">Télécharger</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_help_auth_userid">Enter authentication userid (optionnal)</string>
<string name="pref_upnp_enable">Enable UPNP</string> <string name="pref_upnp_enable">Enable UPNP</string>
<string name="pref_manage">Manage</string>
<string name="wait">Please wait...</string> <string name="wait">Please wait...</string>
<string name="importing_messages">Updating messages database</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_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_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> </resources>

View file

@ -430,6 +430,7 @@
<string name="pref_help_auth_userid">Enter authentication userid (optionnal)</string> <string name="pref_help_auth_userid">Enter authentication userid (optionnal)</string>
<string name="pref_upnp_enable">Enable UPNP</string> <string name="pref_upnp_enable">Enable UPNP</string>
<string name="pref_manage">Manage</string>
<string name="wait">Please wait...</string> <string name="wait">Please wait...</string>
<string name="importing_messages">Updating messages database</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"> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory <PreferenceCategory
android:title="@string/pref_sipaccount"> android:title="@string/pref_sipaccount"
android:key="@string/pref_sipaccount_key">
<EditTextPreference <EditTextPreference
android:title="@string/pref_username" android:title="@string/pref_username"
@ -24,7 +25,8 @@
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory <PreferenceCategory
android:title="@string/pref_advanced"> android:title="@string/pref_advanced"
android:key="@string/pref_advanced_key">
<EditTextPreference <EditTextPreference
android:title="@string/pref_proxy" android:title="@string/pref_proxy"
@ -37,11 +39,25 @@
android:summary="@string/pref_help_outbound_proxy" android:summary="@string/pref_help_outbound_proxy"
android:persistent="true"/> android:persistent="true"/>
<EditTextPreference <EditTextPreference
android:title="@string/pref_expire_title" android:title="@string/pref_expire_title"
android:key="@string/pref_expire_key" android:key="@string/pref_expire_key"
android:numeric="integer" /> 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 <CheckBoxPreference
android:title="@string/pref_disable_account" android:title="@string/pref_disable_account"
android:persistent="true"/> android:persistent="true"/>

View file

@ -103,14 +103,6 @@
<PreferenceScreen <PreferenceScreen
android:title="@string/call"> 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 <CheckBoxPreference
android:title="@string/pref_sipinfo_dtmf" android:title="@string/pref_sipinfo_dtmf"

View file

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

View file

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

View file

@ -555,11 +555,6 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
} }
private void initCallSettings() { 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 rfc2833 = (CheckBoxPreference) findPreference(getString(R.string.pref_rfc2833_dtmf_key));
CheckBoxPreference sipInfo = (CheckBoxPreference) findPreference(getString(R.string.pref_sipinfo_dtmf_key)); CheckBoxPreference sipInfo = (CheckBoxPreference) findPreference(getString(R.string.pref_sipinfo_dtmf_key));
if (mPrefs.useRfc2833Dtmfs()) { if (mPrefs.useRfc2833Dtmfs()) {
@ -574,27 +569,6 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
} }
private void setCallPreferencesListener() { 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() { findPreference(getString(R.string.pref_rfc2833_dtmf_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {

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