Add AVPF settings.

This commit is contained in:
Ghislain MARY 2014-06-06 16:45:17 +02:00
parent a93b78217a
commit dd67b1f185
5 changed files with 70 additions and 3 deletions

View file

@ -113,6 +113,8 @@
<string name="pref_display_name_key">pref_display_name_key</string> <string name="pref_display_name_key">pref_display_name_key</string>
<string name="pref_user_name_key">pref_user_name_key</string> <string name="pref_user_name_key">pref_user_name_key</string>
<string name="pref_expire_key">pref_expire_key</string> <string name="pref_expire_key">pref_expire_key</string>
<string name="pref_avpf_key">pref_avpf_key</string>
<string name="pref_avpf_rr_interval_key">pref_avpf_rr_interval_key</string>
<string name="pref_rfc2833_dtmf_key">pref_rfc2833_dtmf_key</string> <string name="pref_rfc2833_dtmf_key">pref_rfc2833_dtmf_key</string>
<string name="pref_sipinfo_dtmf_key">pref_sipinfo_dtmf_key</string> <string name="pref_sipinfo_dtmf_key">pref_sipinfo_dtmf_key</string>

View file

@ -400,6 +400,8 @@
<string name="pref_display_name_title">Display name</string> <string name="pref_display_name_title">Display name</string>
<string name="pref_user_name_title">Username</string> <string name="pref_user_name_title">Username</string>
<string name="pref_expire_title">Expire</string> <string name="pref_expire_title">Expire</string>
<string name="pref_avpf">AVPF</string>
<string name="pref_avpf_rr_interval"> AVPF regular RTCP interval in seconds (between 1 and 5)</string>
<string name="pref_rfc2833_dtmf">Send RFC2833 DTMFs</string> <string name="pref_rfc2833_dtmf">Send RFC2833 DTMFs</string>
<string name="pref_sipinfo_dtmf">Send SIP INFO DTMFs</string> <string name="pref_sipinfo_dtmf">Send SIP INFO DTMFs</string>

View file

@ -59,6 +59,15 @@
android:title="@string/pref_prefix" android:title="@string/pref_prefix"
android:key="@string/pref_prefix_key"/> android:key="@string/pref_prefix_key"/>
<CheckBoxPreference
android:title="@string/pref_avpf"
android:key="@string/pref_avpf_key"/>
<EditTextPreference
android:title="@string/pref_avpf_rr_interval"
android:key="@string/pref_avpf_rr_interval_key"
android:numeric="integer"/>
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_escape_plus" android:title="@string/pref_escape_plus"
android:key="@string/pref_escape_plus_key"/> android:key="@string/pref_escape_plus_key"/>

View file

@ -141,6 +141,29 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
return true; 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() { OnPreferenceChangeListener escapeChangedListener = new OnPreferenceChangeListener() {
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
@ -233,8 +256,17 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
prefix.setSummary(prefixValue); prefix.setSummary(prefixValue);
prefix.setText(prefixValue); prefix.setText(prefixValue);
prefix.setOnPreferenceChangeListener(prefixChangedListener); 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.setChecked(mPrefs.getReplacePlusByZeroZero(n));
escape.setOnPreferenceChangeListener(escapeChangedListener); escape.setOnPreferenceChangeListener(escapeChangedListener);

View file

@ -524,7 +524,29 @@ public class LinphonePreferences {
prxCfg.setDialPrefix(prefix); prxCfg.setDialPrefix(prefix);
prxCfg.done(); 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) { public boolean getReplacePlusByZeroZero(int n) {
return getProxyConfig(n).getDialEscapePlus(); return getProxyConfig(n).getDialEscapePlus();
} }