From f53cbb976d6b1550b6fb4d6fad26bbe42ab42f7d Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 1 Mar 2019 17:14:07 +0100 Subject: [PATCH] Use core setting for friendlist subscription + added app settings for mic & playback gain --- CHANGELOG.md | 1 + .../settings/LinphonePreferences.java | 26 ++++++++++++++-- .../linphone/settings/SettingsFragment.java | 31 +++++++++++++++++++ .../res/values/non_localizable_strings.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/preferences.xml | 12 +++++++ 6 files changed, 72 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 01699eb42..1a825f5dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,7 @@ Group changes to describe their impact on the project, as follows: - Option to automatically download incoming files, either always, never or depending on their sizes. This adds the feature of having images received by file transfer in notifications. - Call recording. - Get remote provisioning URL from QR code scan. +- Added app setting for microphone & playback gain. ### Fixes - Fixed chat room user can't get into if there are more than one with the same remote but different local accounts diff --git a/app/src/main/java/org/linphone/settings/LinphonePreferences.java b/app/src/main/java/org/linphone/settings/LinphonePreferences.java index 8cee50942..b253f56e0 100644 --- a/app/src/main/java/org/linphone/settings/LinphonePreferences.java +++ b/app/src/main/java/org/linphone/settings/LinphonePreferences.java @@ -514,11 +514,17 @@ public class LinphonePreferences { } public boolean isFriendlistsubscriptionEnabled() { - return getConfig().getBool("app", "friendlist_subscription_enabled", false); + boolean previousConfig = + getConfig().getBool("app", "friendlist_subscription_enabled", false); + if (previousConfig) { + enabledFriendlistSubscription(previousConfig); + getConfig().setBool("app", "friendlist_subscription_enabled", false); + } + return getLc().isFriendListSubscriptionEnabled(); } public void enabledFriendlistSubscription(boolean enabled) { - getConfig().setBool("app", "friendlist_subscription_enabled", enabled); + getLc().enableFriendListSubscription(enabled); } public void setDefaultAccount(int accountIndex) { @@ -629,6 +635,22 @@ public class LinphonePreferences { return getConfig().getInt("sound", "ec_delay", -1); } + public float getMicGainDb() { + return getLc().getMicGainDb(); + } + + public void setMicGainDb(float gain) { + getLc().setMicGainDb(gain); + } + + public float getPlaybackGainDb() { + return getLc().getPlaybackGainDb(); + } + + public void setPlaybackGainDb(float gain) { + getLc().setPlaybackGainDb(gain); + } + // End of audio settings // Video settings diff --git a/app/src/main/java/org/linphone/settings/SettingsFragment.java b/app/src/main/java/org/linphone/settings/SettingsFragment.java index f36dc986b..2b67e6c26 100644 --- a/app/src/main/java/org/linphone/settings/SettingsFragment.java +++ b/app/src/main/java/org/linphone/settings/SettingsFragment.java @@ -630,6 +630,15 @@ public class SettingsFragment extends PreferencesListFragment { (ListPreference) findPreference(getString(R.string.pref_codec_bitrate_limit_key)); bitrateLimit.setSummary(String.valueOf(mPrefs.getCodecBitrateLimit())); bitrateLimit.setValue(String.valueOf(mPrefs.getCodecBitrateLimit())); + + EditTextPreference micGain = + (EditTextPreference) findPreference(getString(R.string.pref_mic_gain_db_key)); + micGain.setText(String.valueOf(mPrefs.getMicGainDb())); + micGain.setSummary(String.valueOf(mPrefs.getMicGainDb())); + EditTextPreference playbackGain = + (EditTextPreference) findPreference(getString(R.string.pref_playback_gain_db_key)); + playbackGain.setText(String.valueOf(mPrefs.getPlaybackGainDb())); + playbackGain.setSummary(String.valueOf(mPrefs.getPlaybackGainDb())); } private void setAudioPreferencesListener() { @@ -728,6 +737,28 @@ public class SettingsFragment extends PreferencesListFragment { return true; } }); + + findPreference(getString(R.string.pref_mic_gain_db_key)) + .setOnPreferenceChangeListener( + new OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object o) { + float newVal = Float.valueOf((String) o); + mPrefs.setMicGainDb(newVal); + return true; + } + }); + + findPreference(getString(R.string.pref_playback_gain_db_key)) + .setOnPreferenceChangeListener( + new OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object o) { + float newVal = Float.valueOf((String) o); + mPrefs.setPlaybackGainDb(newVal); + return true; + } + }); } public void startEchoTester() { diff --git a/app/src/main/res/values/non_localizable_strings.xml b/app/src/main/res/values/non_localizable_strings.xml index facca01d8..bb767ba6a 100644 --- a/app/src/main/res/values/non_localizable_strings.xml +++ b/app/src/main/res/values/non_localizable_strings.xml @@ -31,6 +31,8 @@ pref_audio_soft_volume_key pref_audio_ringtone pref_incoming_call_vibration_key + pref_mic_gain_db_key + pref_playback_gain_db_key pref_ipv6_key diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 65e2c6cea..534faaefd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -398,6 +398,8 @@ failed Adaptive rate control Codec bitrate limit + Microphone gain (in db) + Playback gain (in db) Codecs diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 0f964b6e8..e8cfb0d53 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -79,6 +79,18 @@ android:persistent="false" android:title="@string/pref_codec_bitrate_limit" /> + + + +