summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author John Wang <johnwang@google.com> 2011-11-07 16:46:11 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2011-11-07 16:46:11 -0800
commit2f99bb5e4f706fee3dc1e08bdd66f58ea9844b09 (patch)
tree3370e26a8366eb5f8477e49f6be7c35cdd81a606
parent2d9ccdb4abd393375c5ae99445afbb8b0855d25c (diff)
parentf885e878846e589d628149bcbae5216a30443876 (diff)
Merge "Remain in call audio mode while phone is offhook." into ics-mr1
-rw-r--r--telephony/java/com/android/internal/telephony/CallManager.java25
1 files changed, 13 insertions, 12 deletions
diff --git a/telephony/java/com/android/internal/telephony/CallManager.java b/telephony/java/com/android/internal/telephony/CallManager.java
index 171b3714d527..3dd57ee742f2 100644
--- a/telephony/java/com/android/internal/telephony/CallManager.java
+++ b/telephony/java/com/android/internal/telephony/CallManager.java
@@ -379,18 +379,19 @@ public final class CallManager {
mode = AudioManager.MODE_RINGTONE;
break;
case OFFHOOK:
- Phone fgPhone = getFgPhone();
- // While foreground call is in DIALING,
- // ALERTING, ACTIVE and DISCONNECTING state
- if (getActiveFgCallState() != Call.State.IDLE
- && getActiveFgCallState() != Call.State.DISCONNECTED) {
- if (fgPhone instanceof SipPhone) {
- // enable IN_COMMUNICATION audio mode for sipPhone
- mode = AudioManager.MODE_IN_COMMUNICATION;
- } else {
- // enable IN_CALL audio mode for telephony
- mode = AudioManager.MODE_IN_CALL;
- }
+ Phone offhookPhone = getFgPhone();
+ if (getActiveFgCallState() == Call.State.IDLE) {
+ // There is no active Fg calls, the OFFHOOK state
+ // is set by the Bg call. So set the phone to bgPhone.
+ offhookPhone = getBgPhone();
+ }
+
+ if (offhookPhone instanceof SipPhone) {
+ // enable IN_COMMUNICATION audio mode for sipPhone
+ mode = AudioManager.MODE_IN_COMMUNICATION;
+ } else {
+ // enable IN_CALL audio mode for telephony
+ mode = AudioManager.MODE_IN_CALL;
}
break;
}