summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtem Borisov <dedsa2002@gmail.com>2018-09-19 17:02:06 +0300
committerArne Coucheron <arco68@gmail.com>2019-12-19 21:05:47 +0100
commitefd2e8657d491e0c2ceea6f27573c87af7260501 (patch)
tree89f7660b713e4dffaae8579345ce3e88577b1f2f
parent9b108a60fe9ef030089d5a0138ed48f73f92d826 (diff)
downloadandroid_packages_services_Telephony-lineage-17.0.tar.gz
android_packages_services_Telephony-lineage-17.0.tar.bz2
android_packages_services_Telephony-lineage-17.0.zip
Telephony: Support muting by RIL commandlineage-17.0
While almost everyone already moved to AudioManager years ago, some OEMs (cough Huawei) still use RIL for muting and don't promote the necessary calls in their audio HAL. Let's handle these odd cases too when it's necessary. Change-Id: Id916dec2574d6e57b6f809fbaf2b0959c0cc7256
-rw-r--r--res/values/config.xml2
-rw-r--r--src/com/android/services/telephony/TelephonyConnection.java11
2 files changed, 12 insertions, 1 deletions
diff --git a/res/values/config.xml b/res/values/config.xml
index 8bc1919db..e84a96581 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -96,7 +96,7 @@
<!-- Determine whether calls to mute the microphone in PhoneUtils
are routed through the android.media.AudioManager class (true) or through
the com.android.internal.telephony.Phone interface (false). -->
- <bool name="send_mic_mute_to_AudioManager">false</bool>
+ <bool name="send_mic_mute_to_AudioManager">true</bool>
<!-- Determines if device implements a noise suppression device for in call audio-->
<!-- DEPRECATED: Use CarrierConfigManager#KEY_HAS_IN_CALL_NOISE_SUPPRESSION_BOOL -->
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index 7bb6b7d55..4a4972949 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -710,6 +710,11 @@ abstract class TelephonyConnection extends Connection implements Holdable {
private boolean mShowPreciseFailedCause;
/**
+ * Indicates whether this device supports muting via AudioManager.
+ */
+ private final boolean mSendMicMuteToAudioManager;
+
+ /**
* Listeners to our TelephonyConnection specific callbacks
*/
private final Set<TelephonyConnectionListener> mTelephonyListeners = Collections.newSetFromMap(
@@ -722,6 +727,9 @@ abstract class TelephonyConnection extends Connection implements Holdable {
if (originalConnection != null) {
setOriginalConnection(originalConnection);
}
+ Phone phone = getPhone();
+ mSendMicMuteToAudioManager = phone == null || phone.getContext().getResources().getBoolean(
+ R.bool.send_mic_mute_to_AudioManager);
}
/**
@@ -736,6 +744,9 @@ abstract class TelephonyConnection extends Connection implements Holdable {
// TODO: update TTY mode.
if (getPhone() != null) {
getPhone().setEchoSuppressionEnabled();
+ if (!mSendMicMuteToAudioManager) {
+ getPhone().setMute(audioState.isMuted());
+ }
}
}