am 62f066a1: Merge "Add register methods in CallManager "do not merge"" into gingerbread
Merge commit '62f066a14afb2774569a54c150a9d0a2601dd77a' into gingerbread-plus-aosp * commit '62f066a14afb2774569a54c150a9d0a2601dd77a': Add register methods in CallManager "do not merge"
This commit is contained in:
@@ -16,8 +16,6 @@
|
|||||||
|
|
||||||
package com.android.internal.telephony;
|
package com.android.internal.telephony;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.AsyncResult;
|
import android.os.AsyncResult;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
@@ -25,7 +23,6 @@ import android.os.Message;
|
|||||||
import android.os.RegistrantList;
|
import android.os.RegistrantList;
|
||||||
import android.telephony.PhoneStateListener;
|
import android.telephony.PhoneStateListener;
|
||||||
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -49,8 +46,23 @@ import java.util.List;
|
|||||||
public final class CallManager {
|
public final class CallManager {
|
||||||
|
|
||||||
private static final int EVENT_DISCONNECT = 100;
|
private static final int EVENT_DISCONNECT = 100;
|
||||||
private static final int EVENT_CALL_STATE_CHANGED = 101;
|
private static final int EVENT_PRECISE_CALL_STATE_CHANGED = 101;
|
||||||
|
private static final int EVENT_NEW_RINGING_CONNECTION = 102;
|
||||||
|
private static final int EVENT_UNKNOWN_CONNECTION = 103;
|
||||||
|
private static final int EVENT_INCOMING_RING = 104;
|
||||||
|
private static final int EVENT_RINGBACK_TONE = 105;
|
||||||
|
private static final int EVENT_IN_CALL_VOICE_PRIVACY_ON = 106;
|
||||||
|
private static final int EVENT_IN_CALL_VOICE_PRIVACY_OFF = 107;
|
||||||
|
private static final int EVENT_CALL_WAITING = 108;
|
||||||
|
private static final int EVENT_DISPLAY_INFO = 109;
|
||||||
|
private static final int EVENT_SIGNAL_INFO = 110;
|
||||||
|
private static final int EVENT_CDMA_OTA_STATUS_CHANGE = 111;
|
||||||
|
private static final int EVENT_RESEND_INCALL_MUTE = 112;
|
||||||
|
private static final int EVENT_MMI_INITIATE = 113;
|
||||||
|
private static final int EVENT_MMI_COMPLETE = 114;
|
||||||
|
private static final int EVENT_ECM_TIMER_RESET = 115;
|
||||||
|
private static final int EVENT_SUBSCRIPTION_INFO_READY = 116;
|
||||||
|
private static final int EVENT_SUPP_SERVICE_FAILED = 117;
|
||||||
|
|
||||||
// Singleton instance
|
// Singleton instance
|
||||||
private static final CallManager INSTANCE = new CallManager();
|
private static final CallManager INSTANCE = new CallManager();
|
||||||
@@ -89,15 +101,48 @@ public final class CallManager {
|
|||||||
protected final RegistrantList mServiceStateRegistrants
|
protected final RegistrantList mServiceStateRegistrants
|
||||||
= new RegistrantList();
|
= new RegistrantList();
|
||||||
|
|
||||||
protected final RegistrantList mMmiCompleteRegistrants
|
|
||||||
= new RegistrantList();
|
|
||||||
|
|
||||||
protected final RegistrantList mMmiRegistrants
|
protected final RegistrantList mMmiRegistrants
|
||||||
= new RegistrantList();
|
= new RegistrantList();
|
||||||
|
|
||||||
protected final RegistrantList mUnknownConnectionRegistrants
|
protected final RegistrantList mUnknownConnectionRegistrants
|
||||||
= new RegistrantList();
|
= new RegistrantList();
|
||||||
|
|
||||||
|
protected final RegistrantList mRingbackToneRegistrants
|
||||||
|
= new RegistrantList();
|
||||||
|
|
||||||
|
protected final RegistrantList mInCallVoicePrivacyOnRegistrants
|
||||||
|
= new RegistrantList();
|
||||||
|
|
||||||
|
protected final RegistrantList mInCallVoicePrivacyOffRegistrants
|
||||||
|
= new RegistrantList();
|
||||||
|
|
||||||
|
protected final RegistrantList mCallWaitingRegistrants
|
||||||
|
= new RegistrantList();
|
||||||
|
|
||||||
|
protected final RegistrantList mDisplayInfoRegistrants
|
||||||
|
= new RegistrantList();
|
||||||
|
|
||||||
|
protected final RegistrantList mSignalInfoRegistrants
|
||||||
|
= new RegistrantList();
|
||||||
|
|
||||||
|
protected final RegistrantList mCdmaOtaStatusChangeRegistrants
|
||||||
|
= new RegistrantList();
|
||||||
|
|
||||||
|
protected final RegistrantList mResendIncallMuteRegistrants
|
||||||
|
= new RegistrantList();
|
||||||
|
|
||||||
|
protected final RegistrantList mMmiInitiateRegistrants
|
||||||
|
= new RegistrantList();
|
||||||
|
|
||||||
|
protected final RegistrantList mMmiCompleteRegistrants
|
||||||
|
= new RegistrantList();
|
||||||
|
|
||||||
|
protected final RegistrantList mEcmTimerResetRegistrants
|
||||||
|
= new RegistrantList();
|
||||||
|
|
||||||
|
protected final RegistrantList mSubscriptionInfoReadyRegistrants
|
||||||
|
= new RegistrantList();
|
||||||
|
|
||||||
protected final RegistrantList mSuppServiceFailedRegistrants
|
protected final RegistrantList mSuppServiceFailedRegistrants
|
||||||
= new RegistrantList();
|
= new RegistrantList();
|
||||||
|
|
||||||
@@ -117,10 +162,29 @@ public final class CallManager {
|
|||||||
return INSTANCE;
|
return INSTANCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get current coarse-grained voice call state.
|
||||||
|
* If the Call Manager has an active call and call waiting occurs,
|
||||||
|
* then the phone state is RINGING not OFFHOOK
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public Phone.State getState() {
|
||||||
|
Phone.State s = Phone.State.IDLE;
|
||||||
|
|
||||||
|
for(Phone phone : mPhones) {
|
||||||
|
if (phone.getState() == Phone.State.RINGING) {
|
||||||
|
return Phone.State.RINGING;
|
||||||
|
} else if (phone.getState() == Phone.State.OFFHOOK) {
|
||||||
|
s = Phone.State.OFFHOOK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register phone to CallManager
|
* Register phone to CallManager
|
||||||
* @param phone
|
* @param phone
|
||||||
* @return
|
* @return true if register successfully
|
||||||
*/
|
*/
|
||||||
public boolean registerPhone(Phone phone) {
|
public boolean registerPhone(Phone phone) {
|
||||||
if (phone != null && !mPhones.contains(phone)) {
|
if (phone != null && !mPhones.contains(phone)) {
|
||||||
@@ -159,13 +223,45 @@ public final class CallManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerForPhoneStates(Phone phone) {
|
private void registerForPhoneStates(Phone phone) {
|
||||||
phone.registerForPreciseCallStateChanged(mHandler, EVENT_CALL_STATE_CHANGED, null);
|
phone.registerForPreciseCallStateChanged(mHandler, EVENT_PRECISE_CALL_STATE_CHANGED, null);
|
||||||
phone.registerForDisconnect(mHandler, EVENT_DISCONNECT, null);
|
phone.registerForDisconnect(mHandler, EVENT_DISCONNECT, null);
|
||||||
|
phone.registerForNewRingingConnection(mHandler, EVENT_NEW_RINGING_CONNECTION, null);
|
||||||
|
phone.registerForUnknownConnection(mHandler, EVENT_UNKNOWN_CONNECTION, null);
|
||||||
|
phone.registerForIncomingRing(mHandler, EVENT_INCOMING_RING, null);
|
||||||
|
phone.registerForRingbackTone(mHandler, EVENT_RINGBACK_TONE, null);
|
||||||
|
phone.registerForInCallVoicePrivacyOn(mHandler, EVENT_IN_CALL_VOICE_PRIVACY_ON, null);
|
||||||
|
phone.registerForInCallVoicePrivacyOff(mHandler, EVENT_IN_CALL_VOICE_PRIVACY_OFF, null);
|
||||||
|
phone.registerForCallWaiting(mHandler, EVENT_CALL_WAITING, null);
|
||||||
|
phone.registerForDisplayInfo(mHandler, EVENT_DISPLAY_INFO, null);
|
||||||
|
phone.registerForSignalInfo(mHandler, EVENT_SIGNAL_INFO, null);
|
||||||
|
phone.registerForCdmaOtaStatusChange(mHandler, EVENT_CDMA_OTA_STATUS_CHANGE, null);
|
||||||
|
phone.registerForResendIncallMute(mHandler, EVENT_RESEND_INCALL_MUTE, null);
|
||||||
|
phone.registerForMmiInitiate(mHandler, EVENT_MMI_INITIATE, null);
|
||||||
|
phone.registerForMmiComplete(mHandler, EVENT_MMI_COMPLETE, null);
|
||||||
|
phone.registerForEcmTimerReset(mHandler, EVENT_ECM_TIMER_RESET, null);
|
||||||
|
phone.registerForSubscriptionInfoReady(mHandler, EVENT_SUBSCRIPTION_INFO_READY, null);
|
||||||
|
phone.registerForSuppServiceFailed(mHandler, EVENT_SUPP_SERVICE_FAILED, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void unregisterForPhoneStates(Phone phone) {
|
private void unregisterForPhoneStates(Phone phone) {
|
||||||
phone.unregisterForPreciseCallStateChanged(mHandler);
|
phone.unregisterForPreciseCallStateChanged(mHandler);
|
||||||
phone.unregisterForDisconnect(mHandler);
|
phone.unregisterForDisconnect(mHandler);
|
||||||
|
phone.unregisterForNewRingingConnection(mHandler);
|
||||||
|
phone.unregisterForUnknownConnection(mHandler);
|
||||||
|
phone.unregisterForIncomingRing(mHandler);
|
||||||
|
phone.unregisterForRingbackTone(mHandler);
|
||||||
|
phone.unregisterForInCallVoicePrivacyOn(mHandler);
|
||||||
|
phone.unregisterForInCallVoicePrivacyOff(mHandler);
|
||||||
|
phone.unregisterForCallWaiting(mHandler);
|
||||||
|
phone.unregisterForDisplayInfo(mHandler);
|
||||||
|
phone.unregisterForSignalInfo(mHandler);
|
||||||
|
phone.unregisterForCdmaOtaStatusChange(mHandler);
|
||||||
|
phone.unregisterForResendIncallMute(mHandler);
|
||||||
|
phone.unregisterForMmiInitiate(mHandler);
|
||||||
|
phone.unregisterForMmiComplete(mHandler);
|
||||||
|
phone.unregisterForEcmTimerReset(mHandler);
|
||||||
|
phone.unregisterForSubscriptionInfoReady(mHandler);
|
||||||
|
phone.unregisterForSuppServiceFailed(mHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -523,12 +619,16 @@ public final class CallManager {
|
|||||||
* Notifies when a previously untracked non-ringing/waiting connection has appeared.
|
* Notifies when a previously untracked non-ringing/waiting connection has appeared.
|
||||||
* This is likely due to some other entity (eg, SIM card application) initiating a call.
|
* This is likely due to some other entity (eg, SIM card application) initiating a call.
|
||||||
*/
|
*/
|
||||||
public void registerForUnknownConnection(Handler h, int what, Object obj){}
|
public void registerForUnknownConnection(Handler h, int what, Object obj){
|
||||||
|
mUnknownConnectionRegistrants.addUnique(h, what, obj);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unregisters for unknown connection notifications.
|
* Unregisters for unknown connection notifications.
|
||||||
*/
|
*/
|
||||||
public void unregisterForUnknownConnection(Handler h){}
|
public void unregisterForUnknownConnection(Handler h){
|
||||||
|
mUnknownConnectionRegistrants.remove(h);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -543,14 +643,18 @@ public final class CallManager {
|
|||||||
* If Connection.isRinging() is true, then
|
* If Connection.isRinging() is true, then
|
||||||
* Connection.getCall() == Phone.getRingingCall()
|
* Connection.getCall() == Phone.getRingingCall()
|
||||||
*/
|
*/
|
||||||
public void registerForNewRingingConnection(Handler h, int what, Object obj){}
|
public void registerForNewRingingConnection(Handler h, int what, Object obj){
|
||||||
|
mNewRingingConnectionRegistrants.addUnique(h, what, obj);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unregisters for new ringing connection notification.
|
* Unregisters for new ringing connection notification.
|
||||||
* Extraneous calls are tolerated silently
|
* Extraneous calls are tolerated silently
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public void unregisterForNewRingingConnection(Handler h){}
|
public void unregisterForNewRingingConnection(Handler h){
|
||||||
|
mNewRingingConnectionRegistrants.remove(h);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Notifies when an incoming call rings.<p>
|
* Notifies when an incoming call rings.<p>
|
||||||
@@ -560,14 +664,18 @@ public final class CallManager {
|
|||||||
* AsyncResult.userObj = obj
|
* AsyncResult.userObj = obj
|
||||||
* AsyncResult.result = a Connection. <p>
|
* AsyncResult.result = a Connection. <p>
|
||||||
*/
|
*/
|
||||||
public void registerForIncomingRing(Handler h, int what, Object obj){}
|
public void registerForIncomingRing(Handler h, int what, Object obj){
|
||||||
|
mIncomingRingRegistrants.addUnique(h, what, obj);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unregisters for ring notification.
|
* Unregisters for ring notification.
|
||||||
* Extraneous calls are tolerated silently
|
* Extraneous calls are tolerated silently
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public void unregisterForIncomingRing(Handler h){}
|
public void unregisterForIncomingRing(Handler h){
|
||||||
|
mIncomingRingRegistrants.remove(h);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Notifies when out-band ringback tone is needed.<p>
|
* Notifies when out-band ringback tone is needed.<p>
|
||||||
@@ -578,26 +686,32 @@ public final class CallManager {
|
|||||||
* AsyncResult.result = boolean, true to start play ringback tone
|
* AsyncResult.result = boolean, true to start play ringback tone
|
||||||
* and false to stop. <p>
|
* and false to stop. <p>
|
||||||
*/
|
*/
|
||||||
public void registerForRingbackTone(Handler h, int what, Object obj){}
|
public void registerForRingbackTone(Handler h, int what, Object obj){
|
||||||
|
mRingbackToneRegistrants.addUnique(h, what, obj);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unregisters for ringback tone notification.
|
* Unregisters for ringback tone notification.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public void unregisterForRingbackTone(Handler h){}
|
public void unregisterForRingbackTone(Handler h){
|
||||||
|
mRingbackToneRegistrants.remove(h);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registers the handler to reset the uplink mute state to get
|
* Registers the handler to reset the uplink mute state to get
|
||||||
* uplink audio.
|
* uplink audio.
|
||||||
*/
|
*/
|
||||||
public void registerForResendIncallMute(Handler h, int what, Object obj){}
|
public void registerForResendIncallMute(Handler h, int what, Object obj){
|
||||||
|
mResendIncallMuteRegistrants.addUnique(h, what, obj);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unregisters for resend incall mute notifications.
|
* Unregisters for resend incall mute notifications.
|
||||||
*/
|
*/
|
||||||
public void unregisterForResendIncallMute(Handler h){}
|
public void unregisterForResendIncallMute(Handler h){
|
||||||
|
mResendIncallMuteRegistrants.remove(h);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register for notifications of initiation of a new MMI code request.
|
* Register for notifications of initiation of a new MMI code request.
|
||||||
@@ -610,13 +724,17 @@ public final class CallManager {
|
|||||||
*
|
*
|
||||||
* <code>obj.result</code> will be an "MmiCode" object.
|
* <code>obj.result</code> will be an "MmiCode" object.
|
||||||
*/
|
*/
|
||||||
public void registerForMmiInitiate(Handler h, int what, Object obj){}
|
public void registerForMmiInitiate(Handler h, int what, Object obj){
|
||||||
|
mMmiInitiateRegistrants.addUnique(h, what, obj);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unregisters for new MMI initiate notification.
|
* Unregisters for new MMI initiate notification.
|
||||||
* Extraneous calls are tolerated silently
|
* Extraneous calls are tolerated silently
|
||||||
*/
|
*/
|
||||||
public void unregisterForMmiInitiate(Handler h){}
|
public void unregisterForMmiInitiate(Handler h){
|
||||||
|
mMmiInitiateRegistrants.remove(h);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register for notifications that an MMI request has completed
|
* Register for notifications that an MMI request has completed
|
||||||
@@ -626,13 +744,17 @@ public final class CallManager {
|
|||||||
* <code>Message.obj</code> will contain an AsyncResult.
|
* <code>Message.obj</code> will contain an AsyncResult.
|
||||||
* <code>obj.result</code> will be an "MmiCode" object
|
* <code>obj.result</code> will be an "MmiCode" object
|
||||||
*/
|
*/
|
||||||
public void registerForMmiComplete(Handler h, int what, Object obj){}
|
public void registerForMmiComplete(Handler h, int what, Object obj){
|
||||||
|
mMmiCompleteRegistrants.addUnique(h, what, obj);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unregisters for MMI complete notification.
|
* Unregisters for MMI complete notification.
|
||||||
* Extraneous calls are tolerated silently
|
* Extraneous calls are tolerated silently
|
||||||
*/
|
*/
|
||||||
public void unregisterForMmiComplete(Handler h){}
|
public void unregisterForMmiComplete(Handler h){
|
||||||
|
mMmiCompleteRegistrants.remove(h);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registration point for Ecm timer reset
|
* Registration point for Ecm timer reset
|
||||||
@@ -640,15 +762,17 @@ public final class CallManager {
|
|||||||
* @param what user-defined message code
|
* @param what user-defined message code
|
||||||
* @param obj placed in Message.obj
|
* @param obj placed in Message.obj
|
||||||
*/
|
*/
|
||||||
public void registerForEcmTimerReset(Handler h, int what, Object obj){}
|
public void registerForEcmTimerReset(Handler h, int what, Object obj){
|
||||||
|
mEcmTimerResetRegistrants.addUnique(h, what, obj);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unregister for notification for Ecm timer reset
|
* Unregister for notification for Ecm timer reset
|
||||||
* @param h Handler to be removed from the registrant list.
|
* @param h Handler to be removed from the registrant list.
|
||||||
*/
|
*/
|
||||||
public void unregisterForEcmTimerReset(Handler h){}
|
public void unregisterForEcmTimerReset(Handler h){
|
||||||
|
mEcmTimerResetRegistrants.remove(h);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register for ServiceState changed.
|
* Register for ServiceState changed.
|
||||||
@@ -663,25 +787,6 @@ public final class CallManager {
|
|||||||
*/
|
*/
|
||||||
public void unregisterForServiceStateChanged(Handler h){}
|
public void unregisterForServiceStateChanged(Handler h){}
|
||||||
|
|
||||||
/**
|
|
||||||
* Register for Supplementary Service notifications from the network.
|
|
||||||
* Message.obj will contain an AsyncResult.
|
|
||||||
* AsyncResult.result will be a SuppServiceNotification instance.
|
|
||||||
*
|
|
||||||
* @param h Handler that receives the notification message.
|
|
||||||
* @param what User-defined message code.
|
|
||||||
* @param obj User object.
|
|
||||||
*/
|
|
||||||
public void registerForSuppServiceNotification(Handler h, int what, Object obj){}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Unregisters for Supplementary Service notifications.
|
|
||||||
* Extraneous calls are tolerated silently
|
|
||||||
*
|
|
||||||
* @param h Handler to be removed from the registrant list.
|
|
||||||
*/
|
|
||||||
public void unregisterForSuppServiceNotification(Handler h){}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register for notifications when a supplementary service attempt fails.
|
* Register for notifications when a supplementary service attempt fails.
|
||||||
* Message.obj will contain an AsyncResult.
|
* Message.obj will contain an AsyncResult.
|
||||||
@@ -690,7 +795,9 @@ public final class CallManager {
|
|||||||
* @param what User-defined message code.
|
* @param what User-defined message code.
|
||||||
* @param obj User object.
|
* @param obj User object.
|
||||||
*/
|
*/
|
||||||
public void registerForSuppServiceFailed(Handler h, int what, Object obj){}
|
public void registerForSuppServiceFailed(Handler h, int what, Object obj){
|
||||||
|
mSuppServiceFailedRegistrants.addUnique(h, what, obj);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unregister for notifications when a supplementary service attempt fails.
|
* Unregister for notifications when a supplementary service attempt fails.
|
||||||
@@ -698,7 +805,9 @@ public final class CallManager {
|
|||||||
*
|
*
|
||||||
* @param h Handler to be removed from the registrant list.
|
* @param h Handler to be removed from the registrant list.
|
||||||
*/
|
*/
|
||||||
public void unregisterForSuppServiceFailed(Handler h){}
|
public void unregisterForSuppServiceFailed(Handler h){
|
||||||
|
mSuppServiceFailedRegistrants.remove(h);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register for notifications when a sInCall VoicePrivacy is enabled
|
* Register for notifications when a sInCall VoicePrivacy is enabled
|
||||||
@@ -707,14 +816,18 @@ public final class CallManager {
|
|||||||
* @param what User-defined message code.
|
* @param what User-defined message code.
|
||||||
* @param obj User object.
|
* @param obj User object.
|
||||||
*/
|
*/
|
||||||
public void registerForInCallVoicePrivacyOn(Handler h, int what, Object obj){}
|
public void registerForInCallVoicePrivacyOn(Handler h, int what, Object obj){
|
||||||
|
mInCallVoicePrivacyOnRegistrants.addUnique(h, what, obj);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unegister for notifications when a sInCall VoicePrivacy is enabled
|
* Unregister for notifications when a sInCall VoicePrivacy is enabled
|
||||||
*
|
*
|
||||||
* @param h Handler to be removed from the registrant list.
|
* @param h Handler to be removed from the registrant list.
|
||||||
*/
|
*/
|
||||||
public void unregisterForInCallVoicePrivacyOn(Handler h){}
|
public void unregisterForInCallVoicePrivacyOn(Handler h){
|
||||||
|
mInCallVoicePrivacyOnRegistrants.remove(h);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register for notifications when a sInCall VoicePrivacy is disabled
|
* Register for notifications when a sInCall VoicePrivacy is disabled
|
||||||
@@ -723,14 +836,85 @@ public final class CallManager {
|
|||||||
* @param what User-defined message code.
|
* @param what User-defined message code.
|
||||||
* @param obj User object.
|
* @param obj User object.
|
||||||
*/
|
*/
|
||||||
public void registerForInCallVoicePrivacyOff(Handler h, int what, Object obj){}
|
public void registerForInCallVoicePrivacyOff(Handler h, int what, Object obj){
|
||||||
|
mInCallVoicePrivacyOffRegistrants.addUnique(h, what, obj);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unegister for notifications when a sInCall VoicePrivacy is disabled
|
* Unregister for notifications when a sInCall VoicePrivacy is disabled
|
||||||
*
|
*
|
||||||
* @param h Handler to be removed from the registrant list.
|
* @param h Handler to be removed from the registrant list.
|
||||||
*/
|
*/
|
||||||
public void unregisterForInCallVoicePrivacyOff(Handler h){}
|
public void unregisterForInCallVoicePrivacyOff(Handler h){
|
||||||
|
mInCallVoicePrivacyOffRegistrants.remove(h);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register for notifications when CDMA call waiting comes
|
||||||
|
*
|
||||||
|
* @param h Handler that receives the notification message.
|
||||||
|
* @param what User-defined message code.
|
||||||
|
* @param obj User object.
|
||||||
|
*/
|
||||||
|
public void registerForCallWaiting(Handler h, int what, Object obj){
|
||||||
|
mCallWaitingRegistrants.addUnique(h, what, obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unregister for notifications when CDMA Call waiting comes
|
||||||
|
* @param h Handler to be removed from the registrant list.
|
||||||
|
*/
|
||||||
|
public void unregisterForCallWaiting(Handler h){
|
||||||
|
mCallWaitingRegistrants.remove(h);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register for signal information notifications from the network.
|
||||||
|
* Message.obj will contain an AsyncResult.
|
||||||
|
* AsyncResult.result will be a SuppServiceNotification instance.
|
||||||
|
*
|
||||||
|
* @param h Handler that receives the notification message.
|
||||||
|
* @param what User-defined message code.
|
||||||
|
* @param obj User object.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public void registerForSignalInfo(Handler h, int what, Object obj){
|
||||||
|
mSignalInfoRegistrants.addUnique(h, what, obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unregisters for signal information notifications.
|
||||||
|
* Extraneous calls are tolerated silently
|
||||||
|
*
|
||||||
|
* @param h Handler to be removed from the registrant list.
|
||||||
|
*/
|
||||||
|
public void unregisterForSignalInfo(Handler h){
|
||||||
|
mSignalInfoRegistrants.remove(h);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register for display information notifications from the network.
|
||||||
|
* Message.obj will contain an AsyncResult.
|
||||||
|
* AsyncResult.result will be a SuppServiceNotification instance.
|
||||||
|
*
|
||||||
|
* @param h Handler that receives the notification message.
|
||||||
|
* @param what User-defined message code.
|
||||||
|
* @param obj User object.
|
||||||
|
*/
|
||||||
|
public void registerForDisplayInfo(Handler h, int what, Object obj){
|
||||||
|
mDisplayInfoRegistrants.addUnique(h, what, obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unregisters for display information notifications.
|
||||||
|
* Extraneous calls are tolerated silently
|
||||||
|
*
|
||||||
|
* @param h Handler to be removed from the registrant list.
|
||||||
|
*/
|
||||||
|
public void unregisterForDisplayInfo(Handler h) {
|
||||||
|
mDisplayInfoRegistrants.remove(h);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register for notifications when CDMA OTA Provision status change
|
* Register for notifications when CDMA OTA Provision status change
|
||||||
@@ -739,13 +923,17 @@ public final class CallManager {
|
|||||||
* @param what User-defined message code.
|
* @param what User-defined message code.
|
||||||
* @param obj User object.
|
* @param obj User object.
|
||||||
*/
|
*/
|
||||||
public void registerForCdmaOtaStatusChange(Handler h, int what, Object obj){}
|
public void registerForCdmaOtaStatusChange(Handler h, int what, Object obj){
|
||||||
|
mCdmaOtaStatusChangeRegistrants.addUnique(h, what, obj);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unegister for notifications when CDMA OTA Provision status change
|
* Unregister for notifications when CDMA OTA Provision status change
|
||||||
* @param h Handler to be removed from the registrant list.
|
* @param h Handler to be removed from the registrant list.
|
||||||
*/
|
*/
|
||||||
public void unregisterForCdmaOtaStatusChange(Handler h){}
|
public void unregisterForCdmaOtaStatusChange(Handler h){
|
||||||
|
mCdmaOtaStatusChangeRegistrants.remove(h);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registration point for subscription info ready
|
* Registration point for subscription info ready
|
||||||
@@ -753,13 +941,17 @@ public final class CallManager {
|
|||||||
* @param what what code of message when delivered
|
* @param what what code of message when delivered
|
||||||
* @param obj placed in Message.obj
|
* @param obj placed in Message.obj
|
||||||
*/
|
*/
|
||||||
public void registerForSubscriptionInfoReady(Handler h, int what, Object obj){}
|
public void registerForSubscriptionInfoReady(Handler h, int what, Object obj){
|
||||||
|
mSubscriptionInfoReadyRegistrants.addUnique(h, what, obj);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unregister for notifications for subscription info
|
* Unregister for notifications for subscription info
|
||||||
* @param h Handler to be removed from the registrant list.
|
* @param h Handler to be removed from the registrant list.
|
||||||
*/
|
*/
|
||||||
public void unregisterForSubscriptionInfoReady(Handler h){}
|
public void unregisterForSubscriptionInfoReady(Handler h){
|
||||||
|
mSubscriptionInfoReadyRegistrants.remove(h);
|
||||||
|
}
|
||||||
|
|
||||||
/* APIs to access foregroudCalls, backgroudCalls, and ringingCalls
|
/* APIs to access foregroudCalls, backgroudCalls, and ringingCalls
|
||||||
* 1. APIs to access list of calls
|
* 1. APIs to access list of calls
|
||||||
@@ -974,9 +1166,57 @@ public final class CallManager {
|
|||||||
case EVENT_DISCONNECT:
|
case EVENT_DISCONNECT:
|
||||||
mDisconnectRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
mDisconnectRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
||||||
break;
|
break;
|
||||||
case EVENT_CALL_STATE_CHANGED:
|
case EVENT_PRECISE_CALL_STATE_CHANGED:
|
||||||
mPreciseCallStateRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
mPreciseCallStateRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
||||||
break;
|
break;
|
||||||
|
case EVENT_NEW_RINGING_CONNECTION:
|
||||||
|
mNewRingingConnectionRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
||||||
|
break;
|
||||||
|
case EVENT_UNKNOWN_CONNECTION:
|
||||||
|
mUnknownConnectionRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
||||||
|
break;
|
||||||
|
case EVENT_INCOMING_RING:
|
||||||
|
mIncomingRingRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
||||||
|
break;
|
||||||
|
case EVENT_RINGBACK_TONE:
|
||||||
|
mRingbackToneRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
||||||
|
break;
|
||||||
|
case EVENT_IN_CALL_VOICE_PRIVACY_ON:
|
||||||
|
mInCallVoicePrivacyOnRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
||||||
|
break;
|
||||||
|
case EVENT_IN_CALL_VOICE_PRIVACY_OFF:
|
||||||
|
mInCallVoicePrivacyOffRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
||||||
|
break;
|
||||||
|
case EVENT_CALL_WAITING:
|
||||||
|
mCallWaitingRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
||||||
|
break;
|
||||||
|
case EVENT_DISPLAY_INFO:
|
||||||
|
mDisplayInfoRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
||||||
|
break;
|
||||||
|
case EVENT_SIGNAL_INFO:
|
||||||
|
mSignalInfoRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
||||||
|
break;
|
||||||
|
case EVENT_CDMA_OTA_STATUS_CHANGE:
|
||||||
|
mCdmaOtaStatusChangeRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
||||||
|
break;
|
||||||
|
case EVENT_RESEND_INCALL_MUTE:
|
||||||
|
mResendIncallMuteRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
||||||
|
break;
|
||||||
|
case EVENT_MMI_INITIATE:
|
||||||
|
mMmiInitiateRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
||||||
|
break;
|
||||||
|
case EVENT_MMI_COMPLETE:
|
||||||
|
mMmiCompleteRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
||||||
|
break;
|
||||||
|
case EVENT_ECM_TIMER_RESET:
|
||||||
|
mEcmTimerResetRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
||||||
|
break;
|
||||||
|
case EVENT_SUBSCRIPTION_INFO_READY:
|
||||||
|
mSubscriptionInfoReadyRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
||||||
|
break;
|
||||||
|
case EVENT_SUPP_SERVICE_FAILED:
|
||||||
|
mSuppServiceFailedRegistrants.notifyRegistrants((AsyncResult) msg.obj);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -75,8 +75,7 @@ public final class CdmaCall extends Call {
|
|||||||
|
|
||||||
public Phone
|
public Phone
|
||||||
getPhone() {
|
getPhone() {
|
||||||
//TODO, see GsmCall
|
return owner.phone;
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isMultiparty() {
|
public boolean isMultiparty() {
|
||||||
|
|||||||
@@ -70,8 +70,7 @@ class GsmCall extends Call {
|
|||||||
|
|
||||||
public Phone
|
public Phone
|
||||||
getPhone() {
|
getPhone() {
|
||||||
//TODO
|
return owner.phone;
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean
|
public boolean
|
||||||
|
|||||||
Reference in New Issue
Block a user