Loading src/java/com/android/internal/telephony/CommandException.java +1 −2 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package com.android.internal.telephony; import com.android.internal.telephony.RILConstants; import android.telephony.Rlog; /** Loading Loading @@ -52,6 +50,7 @@ public class CommandException extends RuntimeException { USSD_MODIFIED_TO_SS, USSD_MODIFIED_TO_USSD, SS_MODIFIED_TO_DIAL, SS_MODIFIED_TO_DIAL_VIDEO, SS_MODIFIED_TO_USSD, SS_MODIFIED_TO_SS, SIM_ALREADY_POWERED_OFF, Loading src/java/com/android/internal/telephony/GsmCdmaPhone.java +4 −2 Original line number Diff line number Diff line Loading @@ -1774,7 +1774,8 @@ public class GsmCdmaPhone extends Phone { if (isPhoneTypeGsm()) { Phone imsPhone = mImsPhone; if ((imsPhone != null) && (imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE)) { && ((imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE) || imsPhone.isUtEnabled())) { imsPhone.getOutgoingCallerIdDisplay(onComplete); return; } Loading @@ -1789,7 +1790,8 @@ public class GsmCdmaPhone extends Phone { if (isPhoneTypeGsm()) { Phone imsPhone = mImsPhone; if ((imsPhone != null) && (imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE)) { && ((imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE) || imsPhone.isUtEnabled())) { imsPhone.setOutgoingCallerIdDisplay(commandInterfaceCLIRMode, onComplete); return; } Loading src/java/com/android/internal/telephony/gsm/GsmMmiCode.java +3 −0 Original line number Diff line number Diff line Loading @@ -1252,6 +1252,9 @@ public final class GsmMmiCode extends Handler implements MmiCode { } else if (err == CommandException.Error.SS_MODIFIED_TO_SS) { Rlog.i(LOG_TAG, "SS_MODIFIED_TO_SS"); return mContext.getText(com.android.internal.R.string.stk_cc_ss_to_ss); } else if (err == CommandException.Error.OEM_ERROR_1) { Rlog.i(LOG_TAG, "OEM_ERROR_1 USSD_MODIFIED_TO_DIAL_VIDEO"); return mContext.getText(com.android.internal.R.string.stk_cc_ussd_to_dial_video); } } Loading src/java/com/android/internal/telephony/imsphone/ImsPhone.java +19 −2 Original line number Diff line number Diff line Loading @@ -1057,6 +1057,19 @@ public class ImsPhone extends ImsPhoneBase { break; case ImsReasonInfo.CODE_FDN_BLOCKED: error = CommandException.Error.FDN_CHECK_FAILURE; break; case ImsReasonInfo.CODE_UT_SS_MODIFIED_TO_DIAL: error = CommandException.Error.SS_MODIFIED_TO_DIAL; break; case ImsReasonInfo.CODE_UT_SS_MODIFIED_TO_USSD: error = CommandException.Error.SS_MODIFIED_TO_USSD; break; case ImsReasonInfo.CODE_UT_SS_MODIFIED_TO_SS: error = CommandException.Error.SS_MODIFIED_TO_SS; break; case ImsReasonInfo.CODE_UT_SS_MODIFIED_TO_DIAL_VIDEO: error = CommandException.Error.SS_MODIFIED_TO_DIAL_VIDEO; break; default: break; } Loading Loading @@ -1138,7 +1151,7 @@ public class ImsPhone extends ImsPhoneBase { * not on the list. */ Rlog.d(LOG_TAG, "onMMIDone: mmi=" + mmi); if (mPendingMMIs.remove(mmi) || mmi.isUssdRequest()) { if (mPendingMMIs.remove(mmi) || mmi.isUssdRequest() || mmi.isSsInfo()) { ResultReceiver receiverCallback = mmi.getUssdCallbackReceiver(); if (receiverCallback != null) { int returnCode = (mmi.getState() == MmiCode.State.COMPLETE) ? Loading Loading @@ -1224,7 +1237,11 @@ public class ImsPhone extends ImsPhoneBase { return cfInfo; } private CallForwardInfo[] handleCfQueryResult(ImsCallForwardInfo[] infos) { /** * Used to Convert ImsCallForwardInfo[] to CallForwardInfo[]. * Update received call forward status to default IccRecords. */ public CallForwardInfo[] handleCfQueryResult(ImsCallForwardInfo[] infos) { CallForwardInfo[] cfInfos = null; if (infos != null && infos.length != 0) { Loading src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +47 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { private static final int EVENT_GET_IMS_SERVICE = 24; private static final int EVENT_CHECK_FOR_WIFI_HANDOVER = 25; private static final int EVENT_ON_FEATURE_CAPABILITY_CHANGED = 26; private static final int EVENT_SUPP_SERVICE_INDICATION = 27; private static final int TIMEOUT_HANGUP_PENDINGMO = 500; Loading Loading @@ -293,6 +294,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { private int mImsServiceRetryCount; private ImsManager mImsManager; private ImsUtInterface mUtInterface; private int mServiceId = -1; private Call.SrvccState mSrvccState = Call.SrvccState.NONE; Loading Loading @@ -783,6 +785,13 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { mPhone.getExternalCallTracker().getExternalCallStateListener()); } //Set UT interface listener to receive UT indications. mUtInterface = getUtInterface(); if (mUtInterface != null) { mUtInterface.registerForSuppServiceIndication(this, EVENT_SUPP_SERVICE_INDICATION, null); } if (mCarrierConfigLoaded) { ImsManager.updateImsServiceConfig(mPhone.getContext(), mPhone.getPhoneId(), true); Loading Loading @@ -810,6 +819,9 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { mHandoverCall.dispose(); clearDisconnected(); if (mUtInterface != null) { mUtInterface.unregisterForSuppServiceIndication(this); } mPhone.getContext().unregisterReceiver(mReceiver); mPhone.getDefaultPhone().unregisterForDataEnabledChanged(this); removeMessages(EVENT_GET_IMS_SERVICE); Loading Loading @@ -1967,6 +1979,30 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { case ImsReasonInfo.CODE_EMERGENCY_PERM_FAILURE: return DisconnectCause.EMERGENCY_PERM_FAILURE; case ImsReasonInfo.CODE_DIAL_MODIFIED_TO_USSD: return DisconnectCause.DIAL_MODIFIED_TO_USSD; case ImsReasonInfo.CODE_DIAL_MODIFIED_TO_SS: return DisconnectCause.DIAL_MODIFIED_TO_SS; case ImsReasonInfo.CODE_DIAL_MODIFIED_TO_DIAL: return DisconnectCause.DIAL_MODIFIED_TO_DIAL; case ImsReasonInfo.CODE_DIAL_MODIFIED_TO_DIAL_VIDEO: return DisconnectCause.DIAL_MODIFIED_TO_DIAL_VIDEO; case ImsReasonInfo.CODE_DIAL_VIDEO_MODIFIED_TO_DIAL: return DisconnectCause.DIAL_VIDEO_MODIFIED_TO_DIAL; case ImsReasonInfo.CODE_DIAL_VIDEO_MODIFIED_TO_DIAL_VIDEO: return DisconnectCause.DIAL_VIDEO_MODIFIED_TO_DIAL_VIDEO; case ImsReasonInfo.CODE_DIAL_VIDEO_MODIFIED_TO_SS: return DisconnectCause.DIAL_VIDEO_MODIFIED_TO_SS; case ImsReasonInfo.CODE_DIAL_VIDEO_MODIFIED_TO_USSD: return DisconnectCause.DIAL_VIDEO_MODIFIED_TO_USSD; default: } Loading Loading @@ -2986,6 +3022,17 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { } break; } case EVENT_SUPP_SERVICE_INDICATION: { ar = (AsyncResult) msg.obj; ImsPhoneMmiCode mmiCode = new ImsPhoneMmiCode(mPhone); try { mmiCode.setIsSsInfo(true); mmiCode.processImsSsData(ar); } catch (ImsException e) { Rlog.e(LOG_TAG, "Exception in parsing SS Data: " + e); } break; } } } Loading Loading
src/java/com/android/internal/telephony/CommandException.java +1 −2 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package com.android.internal.telephony; import com.android.internal.telephony.RILConstants; import android.telephony.Rlog; /** Loading Loading @@ -52,6 +50,7 @@ public class CommandException extends RuntimeException { USSD_MODIFIED_TO_SS, USSD_MODIFIED_TO_USSD, SS_MODIFIED_TO_DIAL, SS_MODIFIED_TO_DIAL_VIDEO, SS_MODIFIED_TO_USSD, SS_MODIFIED_TO_SS, SIM_ALREADY_POWERED_OFF, Loading
src/java/com/android/internal/telephony/GsmCdmaPhone.java +4 −2 Original line number Diff line number Diff line Loading @@ -1774,7 +1774,8 @@ public class GsmCdmaPhone extends Phone { if (isPhoneTypeGsm()) { Phone imsPhone = mImsPhone; if ((imsPhone != null) && (imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE)) { && ((imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE) || imsPhone.isUtEnabled())) { imsPhone.getOutgoingCallerIdDisplay(onComplete); return; } Loading @@ -1789,7 +1790,8 @@ public class GsmCdmaPhone extends Phone { if (isPhoneTypeGsm()) { Phone imsPhone = mImsPhone; if ((imsPhone != null) && (imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE)) { && ((imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE) || imsPhone.isUtEnabled())) { imsPhone.setOutgoingCallerIdDisplay(commandInterfaceCLIRMode, onComplete); return; } Loading
src/java/com/android/internal/telephony/gsm/GsmMmiCode.java +3 −0 Original line number Diff line number Diff line Loading @@ -1252,6 +1252,9 @@ public final class GsmMmiCode extends Handler implements MmiCode { } else if (err == CommandException.Error.SS_MODIFIED_TO_SS) { Rlog.i(LOG_TAG, "SS_MODIFIED_TO_SS"); return mContext.getText(com.android.internal.R.string.stk_cc_ss_to_ss); } else if (err == CommandException.Error.OEM_ERROR_1) { Rlog.i(LOG_TAG, "OEM_ERROR_1 USSD_MODIFIED_TO_DIAL_VIDEO"); return mContext.getText(com.android.internal.R.string.stk_cc_ussd_to_dial_video); } } Loading
src/java/com/android/internal/telephony/imsphone/ImsPhone.java +19 −2 Original line number Diff line number Diff line Loading @@ -1057,6 +1057,19 @@ public class ImsPhone extends ImsPhoneBase { break; case ImsReasonInfo.CODE_FDN_BLOCKED: error = CommandException.Error.FDN_CHECK_FAILURE; break; case ImsReasonInfo.CODE_UT_SS_MODIFIED_TO_DIAL: error = CommandException.Error.SS_MODIFIED_TO_DIAL; break; case ImsReasonInfo.CODE_UT_SS_MODIFIED_TO_USSD: error = CommandException.Error.SS_MODIFIED_TO_USSD; break; case ImsReasonInfo.CODE_UT_SS_MODIFIED_TO_SS: error = CommandException.Error.SS_MODIFIED_TO_SS; break; case ImsReasonInfo.CODE_UT_SS_MODIFIED_TO_DIAL_VIDEO: error = CommandException.Error.SS_MODIFIED_TO_DIAL_VIDEO; break; default: break; } Loading Loading @@ -1138,7 +1151,7 @@ public class ImsPhone extends ImsPhoneBase { * not on the list. */ Rlog.d(LOG_TAG, "onMMIDone: mmi=" + mmi); if (mPendingMMIs.remove(mmi) || mmi.isUssdRequest()) { if (mPendingMMIs.remove(mmi) || mmi.isUssdRequest() || mmi.isSsInfo()) { ResultReceiver receiverCallback = mmi.getUssdCallbackReceiver(); if (receiverCallback != null) { int returnCode = (mmi.getState() == MmiCode.State.COMPLETE) ? Loading Loading @@ -1224,7 +1237,11 @@ public class ImsPhone extends ImsPhoneBase { return cfInfo; } private CallForwardInfo[] handleCfQueryResult(ImsCallForwardInfo[] infos) { /** * Used to Convert ImsCallForwardInfo[] to CallForwardInfo[]. * Update received call forward status to default IccRecords. */ public CallForwardInfo[] handleCfQueryResult(ImsCallForwardInfo[] infos) { CallForwardInfo[] cfInfos = null; if (infos != null && infos.length != 0) { Loading
src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +47 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { private static final int EVENT_GET_IMS_SERVICE = 24; private static final int EVENT_CHECK_FOR_WIFI_HANDOVER = 25; private static final int EVENT_ON_FEATURE_CAPABILITY_CHANGED = 26; private static final int EVENT_SUPP_SERVICE_INDICATION = 27; private static final int TIMEOUT_HANGUP_PENDINGMO = 500; Loading Loading @@ -293,6 +294,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { private int mImsServiceRetryCount; private ImsManager mImsManager; private ImsUtInterface mUtInterface; private int mServiceId = -1; private Call.SrvccState mSrvccState = Call.SrvccState.NONE; Loading Loading @@ -783,6 +785,13 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { mPhone.getExternalCallTracker().getExternalCallStateListener()); } //Set UT interface listener to receive UT indications. mUtInterface = getUtInterface(); if (mUtInterface != null) { mUtInterface.registerForSuppServiceIndication(this, EVENT_SUPP_SERVICE_INDICATION, null); } if (mCarrierConfigLoaded) { ImsManager.updateImsServiceConfig(mPhone.getContext(), mPhone.getPhoneId(), true); Loading Loading @@ -810,6 +819,9 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { mHandoverCall.dispose(); clearDisconnected(); if (mUtInterface != null) { mUtInterface.unregisterForSuppServiceIndication(this); } mPhone.getContext().unregisterReceiver(mReceiver); mPhone.getDefaultPhone().unregisterForDataEnabledChanged(this); removeMessages(EVENT_GET_IMS_SERVICE); Loading Loading @@ -1967,6 +1979,30 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { case ImsReasonInfo.CODE_EMERGENCY_PERM_FAILURE: return DisconnectCause.EMERGENCY_PERM_FAILURE; case ImsReasonInfo.CODE_DIAL_MODIFIED_TO_USSD: return DisconnectCause.DIAL_MODIFIED_TO_USSD; case ImsReasonInfo.CODE_DIAL_MODIFIED_TO_SS: return DisconnectCause.DIAL_MODIFIED_TO_SS; case ImsReasonInfo.CODE_DIAL_MODIFIED_TO_DIAL: return DisconnectCause.DIAL_MODIFIED_TO_DIAL; case ImsReasonInfo.CODE_DIAL_MODIFIED_TO_DIAL_VIDEO: return DisconnectCause.DIAL_MODIFIED_TO_DIAL_VIDEO; case ImsReasonInfo.CODE_DIAL_VIDEO_MODIFIED_TO_DIAL: return DisconnectCause.DIAL_VIDEO_MODIFIED_TO_DIAL; case ImsReasonInfo.CODE_DIAL_VIDEO_MODIFIED_TO_DIAL_VIDEO: return DisconnectCause.DIAL_VIDEO_MODIFIED_TO_DIAL_VIDEO; case ImsReasonInfo.CODE_DIAL_VIDEO_MODIFIED_TO_SS: return DisconnectCause.DIAL_VIDEO_MODIFIED_TO_SS; case ImsReasonInfo.CODE_DIAL_VIDEO_MODIFIED_TO_USSD: return DisconnectCause.DIAL_VIDEO_MODIFIED_TO_USSD; default: } Loading Loading @@ -2986,6 +3022,17 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { } break; } case EVENT_SUPP_SERVICE_INDICATION: { ar = (AsyncResult) msg.obj; ImsPhoneMmiCode mmiCode = new ImsPhoneMmiCode(mPhone); try { mmiCode.setIsSsInfo(true); mmiCode.processImsSsData(ar); } catch (ImsException e) { Rlog.e(LOG_TAG, "Exception in parsing SS Data: " + e); } break; } } } Loading