For bug #3164802.
CallManager allow a new phone call only if ALL of the following are true:
- Phone is not powered off
- There's no incoming or waiting call
- There's available call slot in either foreground or background
- The foreground call is ACTIVE or IDLE or DISCONNECTED.
Change-Id: I0124d600fd8c63b8c608301f3889b3faec47f1db
Fix bug # 3136179.
Keep audio mode as IN_CALL during hangup DISCONNECTING state
to prevent the NORMAL and IN_CALL glitch in auiod setMode.
Change-Id: I5513a3d5c65bd13ac054c9718c4dbd7d6db9eaf3
When a SIP call is put on hold and no other call is active, the audio mode should not be
switched to incall.
Change-Id: I1307330f10cbfb9c4223bcb9dc4faa79778750af
+ CallManager: fix getFirstActiveRingingCall(), getActiveFgCall(), getFirstActiveBgCall()
+ Set DisconnectCause to be INCOMING_REJECTED when a call is rejected
http://b/issue?id=3049671
Change-Id: Ica1d81ca4b71ab0ceb2ab437b82bbb4ccf86fe92
+fix the unknown call flash for answering an incoming call and
updating the screen if the background call got dropped.
+change the getFirstActiveBgCall to return the call if the state
is not IDLE. This will help to fix unknown flash if the background
call got dropped.
Change-Id: I9803ccebd919acbd5296e7dfde7dc5f29cc9f180
For bug 3001613.
Only use PhoneBase (not PhoneProxy) in CallManager.
Both PhoneBase and PhoneProxy implement Phone interface,
such as dial(). The real implementation, for
example in GSM, is in GSMPhone extending from PhoneBase.
So that foregroundCall.getPhone() returns GSMPhone obj. On the other hand,
PhoneFactory.getDefaultPhone() returns PhoneProxy obj, which has a class
member of GSMPhone.
Therefore for phone returned by PhoneFacotry, which is used by PhoneApp,
phone.getForegroundCall().getPhone() != phone
Change-Id: I8a304098dd86762aaee56fb3c8b76c883e8c9a4f
The state ANSWERING is set when we answer an incoming sip call, i.e.
sending a 'OK' response to the peer. The state will be set to ACTIVE
once the 'ACK' from peer is received.
Change-Id: I84ee3cc68222eb34e032896ce23f7431d4ad774a
1. Originally CallManager registers for all phone events provided by registerFor interface,
which will cause error msg such as "registerForXXX() in PhoneBase should not be called, CDMAPhone inactive."
for CDMA only events. Register for those events only if phone is CDMA phone.
2. Add registerForPostDialCharacter().
Note, we can't use notifyRegistrants() in handler since we need send
the character that is being processed in msg.arg1.
Change-Id: I48037c8a8e225bb82e203836a041f81f2445f4d8
To fix bug 2968310.
Handle the operation of hangupForegroundResumeBackground while foreground call and background call come from different phones.
Change-Id: Id83ca1b75031a8391c95c7f8b2be40e9067dd4cd
and fix the bug of re-assigning connectTime's in SipConnection,
and adding synchronization for SipPhone to be thread-safe,
and set normal audio mode when call not on hold instead of on hold in SipAudioCallImpl,
and fix re-entrance problem in CallManager.setAudioMode() for in-call mode.
Change-Id: I54f39dab052062de1ce141e5358d892d30453a3a
When in a call, different audio modes need to be applied based on phone type.
(For example, SIP call needs to be in MODE_NORMAL while GSM call in MODE_IN_CALL.)
Originally, it's handled in PhoneUtils.setAudioMode(). It makes more sense now
to handle the actual logic in CallManager.
Change-Id: I58d8f31d6b4afe22f88da442daac2010781de801
Cherry-picked from master.
Add register methods used by PhoneApp into CallManager class.
For most register methods, CallManager acts as an pass-through
register to handle register and unregister phone case.
Change-Id: I9567c2dbffb9e482b906f94c2d991a404ad4626e
Cherry-picked from master.
Update APIs to access foregroudCalls, backgroudCalls, and ringingCalls
* 1. APIs to access list of calls
* 2. APIs to check if any active call, which has connection other than
* disconnected ones, pleaser refer to Call.isIdle()
* 3. APIs to return first active call
* 4. APIs to return the connections of first active call
* 5. APIs to return other property of first active call
Change-Id: Ic30e28018d14e496e9427f96fec8a7c2ff7c1549