From 0f2bd3a52a51dd4cd76f192548b13f64fb75bcc4 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 20 Nov 2018 11:00:16 +0100 Subject: [PATCH] Added setting to disable vibration while incoming call is ringing --- CHANGELOG.md | 2 ++ .../main/java/org/linphone/LinphoneManager.java | 2 +- .../java/org/linphone/LinphonePreferences.java | 8 ++++++++ .../linphone/fragments/SettingsFragment.java | 17 +++++++++++------ .../main/res/values/non_localizable_strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + app/src/main/res/xml/preferences.xml | 5 +++++ 7 files changed, 29 insertions(+), 7 deletions(-) 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"/> + +