Commit Graph

19 Commits

Author SHA1 Message Date
John Wang
0a30e454eb Use PhoneBase in the phone list.
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
2010-09-17 18:07:23 -07:00
John Wang
bd53554f8a Add debug function.
Change-Id: If2381b04b08876f78ac93833f848f099de5c6104
2010-09-17 13:53:45 -07:00
Chung-yih Wang
d8f3d16735 Add a new phone state ANSWERING.
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
2010-09-16 19:09:16 +08:00
John Wang
59f9bae81d Complete event registration in CallManager.
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
2010-09-14 16:01:50 -07:00
John Wang
bc0e400d78 Return immutable copies of private callList.
Change-Id: I3da97acf89e044515e98fa04233dd378c32c250d
2010-09-13 19:10:21 -07:00
John Wang
d028bd0a5f Register ServiceStateChanged to CallManager.
Change-Id: I216bac222e1bfd93ad36c0aeafa85c232dd60abe
2010-09-10 15:23:21 -07:00
John Wang
a48dc39bd5 Add hangupForegroundResumeBackground().
To fix bug 2968310.

Handle the operation of hangupForegroundResumeBackground while foreground call and background call come from different phones.

Change-Id: Id83ca1b75031a8391c95c7f8b2be40e9067dd4cd
2010-09-08 15:50:57 -07:00
John Wang
20bb22964e Add API to get all foreground calls.
Change-Id: I38293b2d7841f5d8708a7b9b516f686ab15de2b1
2010-09-02 17:12:28 -07:00
Hung-ying Tyan
0e05bd27be CallManager: remove unused Phone argument from stopDtmf() and sendBurstDtmf()
Change-Id: Ib0c83c373580f7be9cb1ee262cd0098c70db9c64
2010-08-25 18:18:15 +08:00
Hung-ying Tyan
3294d44b96 Add confcall management to SIP calls
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
2010-08-24 17:54:47 +08:00
Hung-ying Tyan
a4cb657e3a CallManager: add setAudioMode()
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
2010-08-18 10:21:10 +08:00
Hung-ying Tyan
8eac20eacd SIP: implement conference call
Change-Id: Ifd420ed95e77e744c6aff28ac63e7363f97d9dc6
2010-08-18 10:00:36 +08:00
Hung-ying Tyan
912e0f7d9e CallManager: do not deliver ring event if fg call is live.
Change-Id: If5b1bca1f09557a2ee4de9ba429d80a0393279a0
2010-08-17 17:52:34 +08:00
John Wang
c159c84699 Update switch call and accept call.
Change-Id: Ifdd1af77e3eca08f6c931605ecfb275835b78709
2010-08-12 14:52:39 -07:00
Chung-yih Wang
2725a65512 Fix a bug in unregisterPhone().
Change-Id: Ifaef66d45043dc5376688a77f9d18124a9c29576
2010-08-11 14:22:34 +08:00
Hung-ying Tyan
d122805bbf CallManager: add getAllPhones().
Change-Id: I50589aaec55925d93c392f15a22c70d2a6634b87
2010-08-09 16:14:15 +08:00
John Wang
0b80ac9825 Add register methods in CallManager "do not merge"
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
2010-08-02 15:33:48 -07:00
John Wang
4de9d20260 Handle call list in CallManager "do not merge".
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
2010-08-02 15:18:17 -07:00
John Wang
ccd88b6594 Create CallManager class "do not merge"
Cherry-pick from master.
Initial check-in to support multiple call channels.

Change-Id: I387bab4d69ee38d738c5e0e0a51f1ac6607b9759
2010-08-02 15:13:53 -07:00