diff --git a/res/values/non_localizable_strings.xml b/res/values/non_localizable_strings.xml index bb1a96296..9941e0832 100644 --- a/res/values/non_localizable_strings.xml +++ b/res/values/non_localizable_strings.xml @@ -113,6 +113,8 @@ pref_display_name_key pref_user_name_key pref_expire_key + pref_avpf_key + pref_avpf_rr_interval_key pref_rfc2833_dtmf_key pref_sipinfo_dtmf_key diff --git a/res/values/strings.xml b/res/values/strings.xml index 46f698b40..547ad3498 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -400,6 +400,8 @@ Display name Username Expire + AVPF + AVPF regular RTCP interval in seconds (between 1 and 5) Send RFC2833 DTMFs Send SIP INFO DTMFs diff --git a/res/xml/account_preferences.xml b/res/xml/account_preferences.xml index 5feccf845..02e09b2a4 100644 --- a/res/xml/account_preferences.xml +++ b/res/xml/account_preferences.xml @@ -59,6 +59,15 @@ android:title="@string/pref_prefix" android:key="@string/pref_prefix_key"/> + + + + diff --git a/src/org/linphone/AccountPreferencesFragment.java b/src/org/linphone/AccountPreferencesFragment.java index f292029fb..8d90e5ead 100644 --- a/src/org/linphone/AccountPreferencesFragment.java +++ b/src/org/linphone/AccountPreferencesFragment.java @@ -141,6 +141,29 @@ public class AccountPreferencesFragment extends PreferencesListFragment { return true; } }; + OnPreferenceChangeListener avpfChangedListener = new OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + boolean value = (Boolean) newValue; + mPrefs.enableAvpf(n, value); + return true; + } + }; + OnPreferenceChangeListener avpfRRIntervalChangedListener = new OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + String value = newValue.toString(); + try { + int intValue = Integer.parseInt(value); + if ((intValue < 1) || (intValue > 5)) { + return false; + } + } catch (NumberFormatException nfe) { } + mPrefs.setAvpfRRInterval(n, value); + preference.setSummary(value); + return true; + } + }; OnPreferenceChangeListener escapeChangedListener = new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { @@ -233,8 +256,17 @@ public class AccountPreferencesFragment extends PreferencesListFragment { prefix.setSummary(prefixValue); prefix.setText(prefixValue); prefix.setOnPreferenceChangeListener(prefixChangedListener); - - CheckBoxPreference escape = (CheckBoxPreference) advanced.getPreference(5); + + CheckBoxPreference avpf = (CheckBoxPreference) advanced.getPreference(5); + avpf.setChecked(mPrefs.avpfEnabled(n)); + avpf.setOnPreferenceChangeListener(avpfChangedListener); + + EditTextPreference avpfRRInterval = (EditTextPreference) advanced.getPreference(6); + avpfRRInterval.setText(mPrefs.getAvpfRRInterval(n)); + avpfRRInterval.setOnPreferenceChangeListener(avpfRRIntervalChangedListener); + avpfRRInterval.setSummary(mPrefs.getAvpfRRInterval(n)); + + CheckBoxPreference escape = (CheckBoxPreference) advanced.getPreference(7); escape.setChecked(mPrefs.getReplacePlusByZeroZero(n)); escape.setOnPreferenceChangeListener(escapeChangedListener); diff --git a/src/org/linphone/LinphonePreferences.java b/src/org/linphone/LinphonePreferences.java index 713c31c75..b657ea4e3 100644 --- a/src/org/linphone/LinphonePreferences.java +++ b/src/org/linphone/LinphonePreferences.java @@ -524,7 +524,29 @@ public class LinphonePreferences { prxCfg.setDialPrefix(prefix); prxCfg.done(); } - + + public boolean avpfEnabled(int n) { + return getProxyConfig(n).avpfEnabled(); + } + + public void enableAvpf(int n, boolean enable) { + LinphoneProxyConfig prxCfg = getProxyConfig(n); + prxCfg.enableAvpf(enable); + prxCfg.done(); + } + + public String getAvpfRRInterval(int n) { + return String.valueOf(getProxyConfig(n).getAvpfRRInterval()); + } + + public void setAvpfRRInterval(int n, String interval) { + try { + LinphoneProxyConfig prxCfg = getProxyConfig(n); + prxCfg.setAvpfRRInterval(Integer.parseInt(interval)); + prxCfg.done(); + } catch (NumberFormatException nfe) { } + } + public boolean getReplacePlusByZeroZero(int n) { return getProxyConfig(n).getDialEscapePlus(); }