summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin F. Haggerty <haggertk@lineageos.org>2018-12-03 19:40:55 -0700
committerKevin Haggerty <haggertk@lineageos.org>2019-09-12 03:11:31 +0200
commit29f08ff5ce25ab41325fc99bc22f70c641dbd283 (patch)
tree7a6abfa020b89553e74476146078d08029ebc54b
parent364489336cff7835db8c2c87b19421df4beac1e9 (diff)
downloadandroid_packages_services_Telecomm-lineage-15.1.tar.gz
android_packages_services_Telecomm-lineage-15.1.tar.bz2
android_packages_services_Telecomm-lineage-15.1.zip
Telecomm: Update MSIM audio params logic againlineage-15.1
* Change c0e6b1fd14b13fcc0b777c4e9fc10abfb6e042f1 updated the audio logic to track the preferred SIM, which is appropriate for most devices, but this inversion logic actually breaks audio routing on (some?) Samsung MSIM devices. The inversion logic is still required on such devices when SIM0 is not inserted/ready. * Create a property to allow such devices to opt-out of the inversion logic. * Test the state of SIM0 to make sure that the edge case is still handled. Change-Id: Iec488433e2bed5c0109addfd3f934a4b18f146ff
-rw-r--r--src/com/android/server/telecom/CallAudioModeStateMachine.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/com/android/server/telecom/CallAudioModeStateMachine.java b/src/com/android/server/telecom/CallAudioModeStateMachine.java
index c7f4295d..2bea4f27 100644
--- a/src/com/android/server/telecom/CallAudioModeStateMachine.java
+++ b/src/com/android/server/telecom/CallAudioModeStateMachine.java
@@ -302,10 +302,18 @@ public class CallAudioModeStateMachine extends StateMachine {
if (call != null && call.getTargetPhoneAccount() != null && setMsimAudioParams) {
PhoneAccountHandle handle = call.getTargetPhoneAccount();
PhoneAccount account = mTelecomManager.getPhoneAccount(handle);
- int defaultDataSubId = SubscriptionManager.getDefaultDataSubscriptionId();
- int subId = TelephonyManager.getDefault().getSubIdForPhoneAccount(account);
- int phoneId = SubscriptionManager.getPhoneId(subId)
- ^ SubscriptionManager.getPhoneId(defaultDataSubId);
+ TelephonyManager tm = TelephonyManager.getDefault();
+ boolean audioFollowDefaultSim = SystemProperties
+ .getBoolean("ro.multisim.audio_follow_default_sim", true);
+ int subId = tm.getSubIdForPhoneAccount(account);
+ int phoneId = SubscriptionManager.getPhoneId(subId);
+
+ if (audioFollowDefaultSim ||
+ tm.getSimState(0) != TelephonyManager.SIM_STATE_READY) {
+ int defaultDataSubId = SubscriptionManager.getDefaultDataSubscriptionId();
+ phoneId ^= SubscriptionManager.getPhoneId(defaultDataSubId);
+ }
+
Log.d(LOG_TAG, "setAudioParameters phoneId=" + phoneId);
if (phoneId == 0) {
mAudioManager.setParameters("phone_type=cp1");