diff options
author | Kevin F. Haggerty <haggertk@lineageos.org> | 2018-12-03 19:40:55 -0700 |
---|---|---|
committer | Kevin Haggerty <haggertk@lineageos.org> | 2019-09-12 03:11:31 +0200 |
commit | 29f08ff5ce25ab41325fc99bc22f70c641dbd283 (patch) | |
tree | 7a6abfa020b89553e74476146078d08029ebc54b | |
parent | 364489336cff7835db8c2c87b19421df4beac1e9 (diff) | |
download | android_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.java | 16 |
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"); |