diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3c37c909e..ee33ac423 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -24,6 +24,8 @@ Group changes to describe their impact on the project, as follows:
- Asynchronous fetch of native contacts.
- Removed unused graphical resources.
- Updated translations.
+- Updated sliders used to answer or hangup incoming call so they can be used with accessibility tools.
+- Added setting to disable vibration while incoming call is ringing.
### Features
- Added new end to end LIME encryption for instant messaging, both for single chat rooms and group ones.
diff --git a/app/src/main/java/org/linphone/LinphoneManager.java b/app/src/main/java/org/linphone/LinphoneManager.java
index 73b5fb8d8..de18518a6 100644
--- a/app/src/main/java/org/linphone/LinphoneManager.java
+++ b/app/src/main/java/org/linphone/LinphoneManager.java
@@ -1366,7 +1366,7 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou
try {
if ((mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE || mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_NORMAL)
- && mVibrator != null) {
+ && mVibrator != null && LinphonePreferences.instance().isIncomingCallVibrationEnabled()) {
long[] patern = {0, 1000, 1000};
mVibrator.vibrate(patern, 1);
}
diff --git a/app/src/main/java/org/linphone/LinphonePreferences.java b/app/src/main/java/org/linphone/LinphonePreferences.java
index c3e0097eb..f8855c61f 100644
--- a/app/src/main/java/org/linphone/LinphonePreferences.java
+++ b/app/src/main/java/org/linphone/LinphonePreferences.java
@@ -1611,6 +1611,14 @@ public class LinphonePreferences {
getConfig().setBool("app", "device_ringtone", enable);
}
+ public boolean isIncomingCallVibrationEnabled() {
+ return getConfig().getBool("app", "incoming_call_vibration", true);
+ }
+
+ public void enableIncomingCallVibration(boolean enable) {
+ getConfig().setBool("app", "incoming_call_vibration", enable);
+ }
+
public boolean isBisFeatureEnabled() {
return getConfig().getBool("app", "bis_feature", true);
}
diff --git a/app/src/main/java/org/linphone/fragments/SettingsFragment.java b/app/src/main/java/org/linphone/fragments/SettingsFragment.java
index f233d9175..26c2919b8 100644
--- a/app/src/main/java/org/linphone/fragments/SettingsFragment.java
+++ b/app/src/main/java/org/linphone/fragments/SettingsFragment.java
@@ -934,6 +934,7 @@ public class SettingsFragment extends PreferencesListFragment {
private void initCallSettings() {
CheckBoxPreference deviceRingtone = (CheckBoxPreference) findPreference(getString(R.string.pref_device_ringtone_key));
+ CheckBoxPreference incomingCallVibration = (CheckBoxPreference) findPreference(getString(R.string.pref_incoming_call_vibration_key));
CheckBoxPreference autoAnswer = (CheckBoxPreference) findPreference(getString(R.string.pref_auto_answer_key));
CheckBoxPreference rfc2833 = (CheckBoxPreference) findPreference(getString(R.string.pref_rfc2833_dtmf_key));
CheckBoxPreference sipInfo = (CheckBoxPreference) findPreference(getString(R.string.pref_sipinfo_dtmf_key));
@@ -945,6 +946,7 @@ public class SettingsFragment extends PreferencesListFragment {
rfc2833.setChecked(mPrefs.useRfc2833Dtmfs());
sipInfo.setChecked(mPrefs.useSipInfoDtmfs());
deviceRingtone.setChecked(mPrefs.isDeviceRingtoneEnabled());
+ incomingCallVibration.setChecked(mPrefs.isIncomingCallVibrationEnabled());
autoAnswer.setChecked(mPrefs.isAutoAnswerEnabled());
incTimeout.setText(String.valueOf(mPrefs.getIncTimeout()));
incTimeout.setSummary(String.valueOf(mPrefs.getIncTimeout()));
@@ -960,12 +962,6 @@ public class SettingsFragment extends PreferencesListFragment {
dialerCall.setChecked(mPrefs.getNativeDialerCall());
}
- public void enableDeviceRingtone(boolean enabled) {
- LinphonePreferences.instance().enableDeviceRingtone(enabled);
- LinphoneManager.getInstance().enableDeviceRingtone(enabled);
- ((CheckBoxPreference) findPreference(getString(R.string.pref_device_ringtone_key))).setChecked(enabled);
- }
-
private void setCallPreferencesListener() {
findPreference(getString(R.string.pref_device_ringtone_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
@@ -988,6 +984,15 @@ public class SettingsFragment extends PreferencesListFragment {
}
});
+ findPreference(getString(R.string.pref_incoming_call_vibration_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ boolean use = (Boolean) newValue;
+ mPrefs.enableIncomingCallVibration(use);
+ return true;
+ }
+ });
+
findPreference(getString(R.string.pref_media_encryption_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
diff --git a/app/src/main/res/values/non_localizable_strings.xml b/app/src/main/res/values/non_localizable_strings.xml
index 53e5e21fd..300b1fcba 100644
--- a/app/src/main/res/values/non_localizable_strings.xml
+++ b/app/src/main/res/values/non_localizable_strings.xml
@@ -30,6 +30,7 @@
pref_audio_hacks_use_routing_api_key
pref_audio_soft_volume_key
pref_audio_ringtone
+ pref_incoming_call_vibration_key
pref_ipv6_key
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b7def490e..8c09721b7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -406,6 +406,7 @@
Call
Use device ringtone
+ Vibrate while incoming call is ringing
Auto answer incoming calls
Auto answer time (in milliseconds)
Send in-band DTMFs (RFC2833)
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 5ff4dcfba..29f70abbd 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -188,6 +188,11 @@
android:key="@string/pref_device_ringtone_key"
android:persistent="false"/>
+
+