diff options
author | Hall Liu <hallliu@google.com> | 2018-06-28 00:19:38 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-06-28 00:19:38 +0000 |
commit | ff1307c4d4c028b21f910410effdc69311b4fb85 (patch) | |
tree | 97b62b50f8fda2c08619fb71f1c342d060cecc90 | |
parent | afcdfa26a5279f58234ecd860eb2c577f03482c5 (diff) | |
parent | 79caeb3958af69d7e41f9c79bc02378ff057cb1d (diff) | |
download | Telecomm-ff1307c4d4c028b21f910410effdc69311b4fb85.tar.gz |
Merge "Don't use RTT for calls to voicemail" into pi-dev
-rw-r--r-- | src/com/android/server/telecom/CallsManager.java | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java index e4e572278..f61a8ee0d 100644 --- a/src/com/android/server/telecom/CallsManager.java +++ b/src/com/android/server/telecom/CallsManager.java @@ -1249,8 +1249,13 @@ public class CallsManager extends Call.ListenerBase CallState.CONNECTING, phoneAccountHandle == null ? "no-handle" : phoneAccountHandle.toString()); - if (isRttSettingOn() || (extras != null - && extras.getBoolean(TelecomManager.EXTRA_START_CALL_WITH_RTT, false))) { + boolean isVoicemail = (call.getHandle() != null) + && (PhoneAccount.SCHEME_VOICEMAIL.equals(call.getHandle().getScheme()) + || (accountToUse != null && mPhoneAccountRegistrar.isVoiceMailNumber( + accountToUse.getAccountHandle(), call.getHandle().getSchemeSpecificPart()))); + + if (!isVoicemail && (isRttSettingOn() || (extras != null + && extras.getBoolean(TelecomManager.EXTRA_START_CALL_WITH_RTT, false)))) { Log.d(this, "Outgoing call requesting RTT, rtt setting is %b", isRttSettingOn()); if (accountToUse != null && accountToUse.hasCapabilities(PhoneAccount.CAPABILITY_RTT)) { @@ -1833,8 +1838,15 @@ public class CallsManager extends Call.ListenerBase Log.d("phoneAccountSelected: default to voip mode for call %s", call.getId()); call.setIsVoipAudioMode(true); } - if (isRttSettingOn() || call.getIntentExtras() - .getBoolean(TelecomManager.EXTRA_START_CALL_WITH_RTT, false)) { + + boolean isVoicemail = (call.getHandle() != null) + && (PhoneAccount.SCHEME_VOICEMAIL.equals(call.getHandle().getScheme()) + || (realPhoneAccount != null && mPhoneAccountRegistrar.isVoiceMailNumber( + realPhoneAccount.getAccountHandle(), + call.getHandle().getSchemeSpecificPart()))); + + if (!isVoicemail && (isRttSettingOn() || call.getIntentExtras() + .getBoolean(TelecomManager.EXTRA_START_CALL_WITH_RTT, false))) { Log.d(this, "Outgoing call after account selection requesting RTT," + " rtt setting is %b", isRttSettingOn()); if (realPhoneAccount != null |