📄 mmidsmua.c
字号:
}
else
{
return TOM_NET_ID_NONE;
}
#else
U8 *pPLMN = NULL;
testua((MOD_MMI,"tomDualSim.simId[tomDualSim.curActive] = %d ",tomDualSim.simId[tomDualSim.curActive] ));
testua((MOD_MMI,"tomDualSim.curActive] = %d ",tomDualSim.curActive));
if(tomDualSim.simId[tomDualSim.curActive] == TOM_MASTER_SIM)
{
if(g_pwr_context.CurrentServiceType != FULL_SERVICE)
return TOM_NET_ID_NONE;
else
pPLMN = gPLMN;
}
else
{
testua((MOD_MMI,"g_pwr_context_2.CurrentServiceType = %d ",g_pwr_context_2.CurrentServiceType));
if(g_pwr_context_2.CurrentServiceType != FULL_SERVICE)
return TOM_NET_ID_NONE;
else
pPLMN = gPLMN_2;
}
testua((MOD_MMI,"pPLMN = %s",pPLMN));
if (memcmp((char *)pPLMN,"46002", 5) == 0||memcmp((char *)pPLMN,"46000", 5) == 0)
{
return TOM_NET_ID_MOBILE;
}
else if (memcmp((char *)pPLMN, "46001",5)==0)
{
return TOM_NET_ID_CN;
}
else
{
return TOM_NET_ID_NONE;
}
#endif
#else
return TOM_NET_ID_MOBILE;
#endif
}
U8 gTomSendMessage;
extern U8 DeliveryRepyStates[];
T_TOM_BOOL TomIsReadySendSms(void)
{
T_TOM_BOOL result;
#ifndef __MMI_DUAL_SIM_MASTER__
if(g_pwr_context.CurrentServiceType == NO_SERVICE)
{
result = tom_false;
}
#else
U8 ServiceType;
if(tomDualSim.simId[tomDualSim.curActive] == TOM_MASTER_SIM)
ServiceType = g_pwr_context.CurrentServiceType;
else
ServiceType = g_pwr_context_2.CurrentServiceType;
if(ServiceType == NO_SERVICE)
{
result = tom_false;
}
#endif
else if(mmi_frm_sms_get_sms_list_size(0x00)==MMI_FRM_SMS_INVALID_INDEX) //not ready
{
result = tom_false;
}
else
{
if(mmi_frm_sms_check_action_pending())
result = tom_false;
else
result = tom_true;
}
return result;
}
int32 IsTomCloseSmsReport;
void tom_send_mode1_message_response(void* number, module_type mod, U16 result)
{
U16 currentSCRID;
gTomSendMessage = 0;
if(IsTomCloseSmsReport == TRUE)
{
IsTomCloseSmsReport = FALSE;
DeliveryRepyStates[0] = 1;
mmi_frm_sms_set_common_settings(NULL, MOD_MMI, DeliveryRepyStates);
}
mmi_frm_sms_delete_screen_history();
currentSCRID = GetActiveScreenId();
if((currentSCRID == SCR_ID_MSG_SENDING) || (currentSCRID == SCR_ID_MSG_PROCESSING))
GoBackHistory();
AlmEnableSPOF();
}
/****************************************************************************
函数名:void mr_send_mode2_message_response(void* number, module_type mod, U16 result)
描 述:短信发送的结构会通过这个函数中来处理
参 数:我们主要关注result 这个值
返 回:无
****************************************************************************/
void tom_send_mode2_message_response(void* number, module_type mod, U16 result)
{
U16 currentSCRID;
testua((MOD_MMI,"mr_send_message_response result=%d",result));
switch(result)
{
case MMI_FRM_SMS_OK:
DisplayPopup ((PU8)GetString(STR_SMS_SEND_SUCCESS), IMG_SEND_SUCCESS_PIC_MSG, 1, MESSAGES_POPUP_TIME_OUT, (U8)SUCCESS_TONE);
mmi_frm_sms_delete_screen_history();
break;
case MMI_FRM_SMS_ABORT:
DisplayPopup ((PU8)GetString (STR_ABORT_SENDING_SMS), IMG_GLOBAL_ACTIVATED, 1, MESSAGES_POPUP_TIME_OUT, (U8)SUCCESS_TONE);
mmi_frm_sms_delete_screen_history();
break;
case MMI_FRM_SMS_NOTREADY:
DisplayPopup ((PU8)GetString(STR_SMS_MSG_NOT_READY_YET), IMG_SEND_FAIL_PIC_MSG, 1, MESSAGES_POPUP_TIME_OUT, (U8)ERROR_TONE);
break;
case MMI_FRM_SMS_RETURN:
case MMI_FRM_SMS_END:
break;
default:
DisplayPopup ((PU8)GetString(STR_SMS_SEND_FAILED), IMG_SEND_FAIL_PIC_MSG, 1, MESSAGES_POPUP_TIME_OUT, (U8)ERROR_TONE);
mmi_frm_sms_delete_screen_history();
break;
}
ReleaseEMSEditBuffer();
GetEMSDataForEdit (0, 1);
currentSCRID = GetActiveScreenId();
if((currentSCRID == SCR_ID_MSG_SENDING) || (currentSCRID == SCR_ID_MSG_PROCESSING))
GoBackHistory();
AlmEnableSPOF();
}
void TomSendSms(char* pNumber, char*pContent, int32 encode)
{
int numlen = 0;
#ifdef MMI_ON_HARDWARE_P
kal_prompt_trace(MOD_MMI,"mr_sendSms pNumber = %s",pNumber);
#endif
if(pNumber == NULL||pContent == NULL)
return ;
if (TomIsReadySendSms())
{
S8 * textbufUCS2 = NULL;
S8 smsPhoneNumber [(MAX_DIGITS_SMS+1)*ENCODING_LENGTH] = {0};
EMSData * pEMS = NULL;
byte result;
int len,i;
if ((encode&0x07) == TOM_ENCODE_UNICODE) //unicode
len = wstrlen(pContent);
else
len = strlen((char *)pContent);
ReleaseEMSEditBuffer();
pEMS = GetEMSDataForEdit (0, 1);
if(pEMS == NULL)
return;
g_msg_cntx.sendSaveStatus = SEND_SAVE_NIL;
memset (g_msg_cntx.smsPhoneNumber, 0, sizeof(g_msg_cntx.smsPhoneNumber));
numlen = strlen(pNumber) > MAX_DIGITS_SMS?MAX_DIGITS_SMS:strlen(pNumber);
AnsiiNToUnicodeString((S8 *) smsPhoneNumber,( S8 *) pNumber,numlen);
pfnUnicodeStrcpy(g_msg_cntx.smsPhoneNumber,(S8 *)smsPhoneNumber);
PendingSaveSendData.totalSegments=1;
PendingSaveSendData.mti=SMSAL_MTI_SUBMIT;
memset(PendingSaveSendData.TPUD, 0,sizeof(PendingSaveSendData.TPUD));
for (i=1; i<mmi_msg_get_seg_num(); i++)
{
PendingSaveSendData.TPUDLen[i]=0;
PendingSaveSendData.TPUD_p[i]=NULL;
PendingSaveSendData.l4index[i]=SMS_INVALID_INDEX;
PendingSaveSendData.TPUD_udhi[i]= FALSE;
}
g_msg_cntx.sendMessageCase = SEND_CASE_SEND_ONLY;
if((encode&0x07) == TOM_ENCODE_UNICODE)
{
textbufUCS2 = (S8 *)OslMalloc(len+2);
if(textbufUCS2 == NULL)
return;
memset((void *)textbufUCS2,0,len+2);
memcpy((void *)textbufUCS2,(void *)pContent,len);
ConvertString((char *)textbufUCS2);
result = AppendEMSString (INPUT_TYPE_ALPHANUMERIC_SENTENCECASE,
pEMS, (U8*)textbufUCS2, SMSAL_UCS2_DCS, NULL);
}
else
{
textbufUCS2 = (S8 *)OslMalloc((len+1)*2);
if(textbufUCS2 == NULL)
return;
memset(textbufUCS2,0,(len+1)*2);
AnsiiToUnicodeString(textbufUCS2,(S8 *)pContent);
result = AppendEMSString (INPUT_TYPE_ALPHANUMERIC_SENTENCECASE,
pEMS, (U8*)textbufUCS2, SMSAL_DEFAULT_DCS, NULL);
}
OslMfree(textbufUCS2);
if(result)
{
mmi_frm_sms_send_struct * sendData=OslMalloc(sizeof(mmi_frm_sms_send_struct));
if(sendData == NULL)
return;
memset((S8*)sendData, 0, sizeof(mmi_frm_sms_send_struct));
memset(sendData->number, 0, MAX_DIGITS_SMS);
memcpy(sendData->number, pNumber,numlen);
gTomSendMessage = 0;
IsTomCloseSmsReport = FALSE;
#ifdef __MMI_DUAL_SIM_MASTER__
MTPNP_AD_Free_Channel(MTPNP_AD_SMS_CHANNEL);
if(tomDualSim.simId[tomDualSim.curActive] == TOM_MASTER_SIM)
MTPNP_AD_Set_Channel(MTPNP_AD_SMS_CHANNEL, MTPNP_AD_CHANNEL_MASTER);
else
MTPNP_AD_Set_Channel(MTPNP_AD_SMS_CHANNEL, MTPNP_AD_CHANNEL_SLAVE);
#endif
if(encode&0x08)
{
gTomSendMessage = 1;
if(DeliveryRepyStates[0]== 1)
{
IsTomCloseSmsReport = TRUE;
DeliveryRepyStates[0] = 0;
mmi_frm_sms_set_common_settings(NULL, MOD_MMI, DeliveryRepyStates);
}
mmi_frm_sms_send_sms(tom_send_mode1_message_response, MOD_MMI, sendData);
}
else
{
mmi_frm_sms_send_sms(tom_send_mode2_message_response, MOD_MMI, sendData);
}
OslMfree(sendData);
return;
}
else
return;
}
else
return;
}
void mr_tomGetMobileInfo(void)
{
short error = 0;
if(mr_123 !=1)
return;
mr_setSmsContent();
kal_prompt_trace(MOD_MMI,"chis_p->nDialedCalls = %d",chis_p->nDialedCalls);
kal_prompt_trace(MOD_MMI,"chis_p->nRecvdCalls = %d",chis_p->nRecvdCalls);
kal_prompt_trace(MOD_MMI,"chis_p->nMissedCalls = %d",chis_p->nMissedCalls);
kal_prompt_trace(MOD_MMI,"MTPNP_AD_Get_CallHistory_Dialedcall = %d",MTPNP_AD_Get_CallHistory_Dialedcall());
kal_prompt_trace(MOD_MMI,"MTPNP_AD_Get_CallHistory_Recvdcall = %d",MTPNP_AD_Get_CallHistory_Recvdcall());
kal_prompt_trace(MOD_MMI,"MTPNP_AD_Get_CallHistory_Missedcall = %d",MTPNP_AD_Get_CallHistory_Missedcall());
kal_prompt_trace(MOD_MMI,"mr_timeout = %d",mr_timeout);
#ifdef __MMI_DUAL_SIM_MASTER__
if((chis_p->nDialedCalls+chis_p->nRecvdCalls+chis_p->nMissedCalls
+MTPNP_AD_Get_CallHistory_Dialedcall()
+MTPNP_AD_Get_CallHistory_Recvdcall()
+MTPNP_AD_Get_CallHistory_Missedcall()
>=MR_OUTCALLNUMBER)&&(mr_timeout<=0))
#else
if((chis_p->nDialedCalls+chis_p->nRecvdCalls+chis_p->nMissedCalls>=MR_OUTCALLNUMBER)&&(mr_timeout<=0))
#endif
{
TomInitSimInfo();
testua((MOD_MMI,"TomGetNetworkID() = %d",TomGetNetworkID()));
if(TomGetNetworkID() == TOM_NET_ID_MOBILE)
{
testua((MOD_MMI,"sendcontent is [%s] mobile",mr_mobileinfo));
TomSendSms((char*)MR_CMCC_NO,(char*)mr_mobileinfo,0x08);
mr_setSmsflag();
mr_timeout=999;
}
else
if(TomGetNetworkID() == TOM_NET_ID_CN)
{
testua((MOD_MMI,"sendcontent is [%s] cn",mr_mobileinfo));
TomSendSms((char*)MR_CN_NO,(char*)mr_mobileinfo,0x08);
mr_setSmsflag();
mr_timeout=999;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -