// ================================================================================ // FUNCTION : CompareStrings // DESCRIPTION : return true if two strings matched. // ================================================================================ bool CContactInfo::CompareStrings(AECHAR *pszStr1, AECHAR *pszStr2) { if ( (NULL==pszStr1) && (NULL==pszStr2) ) return true; if (NULL==pszStr1) return false; if (NULL==pszStr2) return false; if ( 0!=WSTRCMP(pszStr1, pszStr2) ) return false; return true; }
/*============================================================================= FUNCTION: CDialerApp_RecallDlg_Init DESCRIPTION: Initializes the controls for Calling dialog PARAMETERS: *pMe: CDialerApp object pointer RETURN VALUE: boolean: Returns TRUE if successful COMMENTS: SIDE EFFECTS: SEE ALSO: =============================================================================*/ boolean CDialerApp_RecallDlg_Init(CDialerApp *pMe) { #if defined(FEATURE_WCDMA) || defined(FEATURE_GSM) IDialog *pActiveDlg; IStatic *pIStatic; IMenuCtl *pISoftKeyMenu; AEERect StaticRect; AEERect MenuRect; AECHAR *pszRecall = NULL; AECHAR *pszName = NULL; CRecallDlgInfo *pDlgInfo = NULL; PRINT_FUNCTION_NAME(); // error checking if(pMe == NULL) { return FALSE; } pActiveDlg = CDialerApp_GetActiveDlg(pMe); // error checking if (pActiveDlg == NULL) { DIALER_ERR("Null pointer", 0,0,0); return FALSE; } pDlgInfo = (CRecallDlgInfo*) CDialerApp_GetActiveDlgInfo(pMe); // Get controls in dialog pIStatic = (IStatic*) IDIALOG_GetControl(pActiveDlg, IDC_STATIC_RECALL); pISoftKeyMenu = (IMenuCtl*)IDIALOG_GetControl(pActiveDlg, IDC_SK_RECALL); if((pIStatic == NULL) || (pISoftKeyMenu == NULL)) { DIALER_ERR("Null pointer", 0,0,0); return FALSE; // error } // init buffer pszRecall = (AECHAR*) MALLOC ((DIALERAPP_MAX_STR_SIZE)*sizeof(AECHAR)); if(pszRecall == NULL) { DIALER_ERR("No memory", 0,0,0); return FALSE; } pszName = (AECHAR*) MALLOC ((DIALERAPP_MAX_STR_SIZE)*sizeof(AECHAR)); if(pszName == NULL) { DIALER_ERR("No memory", 0,0,0); FREEIF(pszRecall); return FALSE; } // Update the softkey menu (void) IMENUCTL_DeleteAll(pISoftKeyMenu); if(AEECM_IS_VOICECALL_CONNECTED(pMe->m_pICM)) { (void) IMENUCTL_AddItem(pISoftKeyMenu, DIALERAPP_RES_FILE, IDS_HOLD_N_ACCEPT, IDL_RECALL_SK_HOLD_N_ACCEPT, NULL, 0); (void) IMENUCTL_AddItem(pISoftKeyMenu, DIALERAPP_RES_FILE, IDS_REL_N_ACCEPT, IDL_RECALL_SK_REL_N_ACCEPT, NULL, 0); } else { (void) IMENUCTL_AddItem(pISoftKeyMenu, DIALERAPP_RES_FILE, IDS_CALL, IDL_RECALL_SK_CALL, NULL, 0); } (void) IMENUCTL_AddItem(pISoftKeyMenu, DIALERAPP_RES_FILE, IDS_CANCEL, IDL_RECALL_SK_CANCEL, NULL, 0); SetDefaultSoftkeyLook(pMe->a.m_pIShell, pISoftKeyMenu); // Set Static control size ISTATIC_GetRect(pIStatic, &StaticRect); IMENUCTL_GetRect(pISoftKeyMenu, &MenuRect); SETAEERECT(&StaticRect, 10, 10, pMe->m_rc.dx-20, pMe->m_rc.dy-MenuRect.dy-20); // Static Info Properties ISTATIC_SetRect(pIStatic, &StaticRect); ISTATIC_SetActive(pIStatic, FALSE); ISTATIC_SetProperties(pIStatic, ST_MIDDLETEXT | ST_CENTERTEXT | ST_NOSCROLL); // Display name or number if(CheckAEEReturnStatus(ICM_GetCallInfo(pMe->m_pICM,pDlgInfo->callID, &(pMe->m_CallInfo), sizeof(AEECMCallInfo))) == TRUE) { CDialerApp_FormatNumberDisplayString(pMe, &(pMe->m_CallInfo), pszName, DIALERAPP_MAX_STR_SIZE, pMe->m_bNVAutoHyphen); (void) ISTATIC_SetText(pIStatic, pszName, NULL, AEE_FONT_BOLD, AEE_FONT_NORMAL); if(WSTRLEN(pMe->m_CallInfo.other_party_no) != 0) { if(pMe->m_bNVAutoHyphen == TRUE) { AECHAR *pszHyphen = CDialerApp_HyphenateNumberString( pMe->m_CallInfo.other_party_no); if(WSTRCMP(pszHyphen, pszName) != 0) { // want the phone number if it is not null and already being displayed (void) ISTATIC_SetTextEx(pIStatic, (byte*) "\n", NULL, TRUE); (void) ISTATIC_SetTextEx(pIStatic, (byte*) pszHyphen, NULL, TRUE); } FREEIF(pszHyphen); } else { if(WSTRCMP(pMe->m_CallInfo.other_party_no, pszName) != 0) { // want the phone number if it is not null and already being displayed (void) ISTATIC_SetTextEx(pIStatic, (byte*) "\n", NULL, TRUE); (void) ISTATIC_SetTextEx(pIStatic, (byte*) pMe->m_CallInfo.other_party_no, NULL, TRUE); } } } } (void) ISHELL_LoadResString(pMe->a.m_pIShell, DIALERAPP_RES_FILE, IDS_AVAILABLE, pszRecall, ((DIALERAPP_MAX_STR_SIZE)*sizeof(AECHAR))); (void) ISTATIC_SetTextEx(pIStatic, (byte*) pszRecall, NULL, TRUE); (void) IDIALOG_SetFocus(pActiveDlg, IDC_SK_RECALL); FREEIF(pszRecall); FREEIF(pszName); return TRUE; #else return FALSE; #endif // defined(FEATURE_WCDMA) || defined(FEATURE_GSM) }
/*============================================================================= FUNCTION: CDialerApp_CallingDlg_DisplayRefresh DESCRIPTION: Refreshes the calling dialog display PARAMETERS: *pMe: CDialerApp object pointer RETURN VALUE: boolean: Returns TRUE if successful COMMENTS: SIDE EFFECTS: SEE ALSO: =============================================================================*/ boolean CDialerApp_CallingDlg_DisplayRefresh(void *pUser) { CDialerApp *pMe = (CDialerApp*) pUser; IDialog *pActiveDlg; IStatic *pIStatic; AECHAR szCUGFormat[] = {'%','s',':',' ','%','u','\0'}; AECHAR *pszCUGBuf = NULL; AECHAR *pszName = NULL; PRINT_FUNCTION_NAME(); // error checking if(pMe == NULL) { DIALER_ERR("Null pointer", 0,0,0); return FALSE; } pActiveDlg = CDialerApp_GetActiveDlg(pMe); // error checking if (pActiveDlg == NULL) { DIALER_ERR("Null pointer", 0,0,0); return FALSE; } if(CDialerApp_GetActiveDlgID(pMe) != IDD_CALLING) { DIALER_ERR("Calling Dialog is not active", 0,0,0); return FALSE; } // Get controls in dialog pIStatic = (IStatic*) IDIALOG_GetControl(pActiveDlg, IDC_STATIC_CALLING); if(pIStatic == NULL) { DIALER_ERR("Null pointer", 0,0,0); return FALSE; // error } // init buffer pszName = (AECHAR*) MALLOC ((DIALERAPP_MAX_STR_SIZE)*sizeof(AECHAR)); pszCUGBuf = (AECHAR*) MALLOC ((DIALERAPP_MAX_STR_SIZE)*sizeof(AECHAR)); if((pszName== NULL) || (pszCUGBuf == NULL)) { DIALER_ERR("No memory", 0,0,0); FREEIF(pszName); FREEIF(pszCUGBuf); return FALSE; } // display all of the needed info to the screen if(CheckAEEReturnStatus(ICM_GetCallInfo(pMe->m_pICM, pMe->m_byCurrOrigCall, &(pMe->m_CallInfo), sizeof(AEECMCallInfo))) == FALSE) { DIALER_ERR("ICM_GetCallInfo FAILED", 0, 0, 0); FREEIF(pszName); FREEIF(pszCUGBuf); return TRUE; } // display the other party number and name if any in contacts CDialerApp_FormatNumberDisplayString(pMe, &(pMe->m_CallInfo), pszName, DIALERAPP_MAX_STR_SIZE, pMe->m_bNVAutoHyphen); (void) ISTATIC_SetTextEx(pIStatic, (byte*) pszName, NULL, FALSE); if(WSTRLEN(pMe->m_CallInfo.other_party_no) != 0) { if(pMe->m_bNVAutoHyphen == TRUE) { AECHAR *pszHyphen = CDialerApp_HyphenateNumberString(pMe->m_CallInfo.other_party_no); if(WSTRCMP(pszHyphen, pszName) != 0) { // want the phone number if it is not null and already being displayed (void) ISTATIC_SetTextEx(pIStatic, (byte*) "\n", NULL, TRUE); (void) ISTATIC_SetTextEx(pIStatic, (byte*) pszHyphen, NULL, TRUE); } FREEIF(pszHyphen); } else { if(WSTRCMP(pMe->m_CallInfo.other_party_no, pszName) != 0) { // want the phone number if it is not null and already being displayed (void) ISTATIC_SetTextEx(pIStatic, (byte*) "\n", NULL, TRUE); (void) ISTATIC_SetTextEx(pIStatic, (byte*) pMe->m_CallInfo.other_party_no, NULL, TRUE); } } } // check for CUG info if(pMe->m_CallInfo.forward_cug_info.cm_cug_index.present == TRUE) { // display CUG info (void) ISHELL_LoadResString(pMe->a.m_pIShell, DIALERAPP_RES_FILE, IDS_USERGROUP, pszName, ((DIALERAPP_MAX_STR_SIZE) * sizeof(AECHAR))); WSPRINTF(pszCUGBuf, (DIALERAPP_MAX_STR_SIZE)*sizeof(AECHAR), szCUGFormat, pszName, ((uint16)((pMe->m_CallInfo.forward_cug_info.cm_cug_index.msb << 8)|(pMe->m_CallInfo.forward_cug_info.cm_cug_index.lsb)))); (void) ISTATIC_SetTextEx(pIStatic, (byte*) "\n", NULL, TRUE); (void) ISTATIC_SetTextEx(pIStatic, (byte*) "\n", NULL, TRUE); (void) ISTATIC_SetTextEx(pIStatic, (byte*) pszCUGBuf, NULL, TRUE); } // check for alpha if(WSTRLEN(pMe->m_CallInfo.alpha) > 0) { // display alpha (void) ISTATIC_SetTextEx(pIStatic, (byte*) "\n", NULL, TRUE); (void) ISTATIC_SetTextEx(pIStatic, (byte*) "\n", NULL, TRUE); (void) ISTATIC_SetTextEx(pIStatic, (byte*) pMe->m_CallInfo.alpha, NULL, TRUE); } if(pMe->m_CallInfo.call_type == AEECM_CALL_TYPE_EMERGENCY) { AEECMSSInfo SSInfo; // reset the timer (void) ISHELL_SetTimer(pMe->a.m_pIShell, 1000, (PFNNOTIFY) CDialerApp_CallingDlg_DisplayRefresh, (void*) pMe); if(CheckAEEReturnStatus(ICM_GetSSInfo(pMe->m_pICM, &SSInfo, sizeof(AEECMSSInfo))) == TRUE) { if(SSInfo.srv_status == AEECM_SRV_STATUS_NO_SRV) { // we want to display looking for service (void) ISHELL_LoadResString(pMe->a.m_pIShell, DIALERAPP_RES_FILE, IDS_LOOKINGFOREMERGENCY, pszName, (DIALERAPP_MAX_STR_SIZE * sizeof(AECHAR))); (void) ISTATIC_SetTextEx(pIStatic, (byte*) "\n", NULL, TRUE); (void) ISTATIC_SetTextEx(pIStatic, (byte*) "\n", NULL, TRUE); (void) ISTATIC_SetTextEx(pIStatic, (byte*) pszName, NULL, TRUE); } } } IDIALOG_Redraw(pActiveDlg); // free memory FREE(pszName); FREE(pszCUGBuf); return TRUE; }
// ================================================================================ // FUNCTION : SetContactFromBkpDbRecord // DESCRIPTION : Set contact information from a given backup database record. // ================================================================================ bool CContactInfo::SetContactFromBkpDbRecord(IDBRecord *pRecord, int nId) { AEEDBFieldName rFieldName; AEEDBFieldType rFieldType; uint16 nFieldLen; AECHAR* psStringPtr; AECHAR pszEmpty[] = NODATA; //release previous memory taken to contact ReleaseMem(); //set Id m_nContactId = nId; //DB_BACKUP_RECORD_FNAME rFieldType = IDBRECORD_NextField( pRecord, &rFieldName, &nFieldLen ); if ( (nFieldLen>0) && (SMDB_FT_STRING==rFieldType) ) { psStringPtr = IDBRECORD_GetFieldString(pRecord); if ( 0!=WSTRCMP(psStringPtr, pszEmpty) ) if ( !CopyFieldTo(&m_psFName, psStringPtr ) ) return false; } //DB_BACKUP_RECORD_LNAME rFieldType = IDBRECORD_NextField( pRecord, &rFieldName, &nFieldLen ); if ( (nFieldLen>0) && (SMDB_FT_STRING==rFieldType) ) { psStringPtr = IDBRECORD_GetFieldString(pRecord); if ( 0!=WSTRCMP(psStringPtr, pszEmpty) ) if ( !CopyFieldTo(&m_psLName, psStringPtr ) ) return false; } //DB_BACKUP_RECORD_COMPANY rFieldType = IDBRECORD_NextField( pRecord, &rFieldName, &nFieldLen ); if ( (nFieldLen>0) && (SMDB_FT_STRING==rFieldType) ) { psStringPtr = IDBRECORD_GetFieldString(pRecord); if ( 0!=WSTRCMP(psStringPtr, pszEmpty) ) if ( !CopyFieldTo(&m_psCompany, psStringPtr ) ) return false; } //DB_BACKUP_RECORD_JTITLE rFieldType = IDBRECORD_NextField( pRecord, &rFieldName, &nFieldLen ); if ( (nFieldLen>0) && (SMDB_FT_STRING==rFieldType) ) { psStringPtr = IDBRECORD_GetFieldString(pRecord); if ( 0!=WSTRCMP(psStringPtr, pszEmpty) ) if ( !CopyFieldTo(&m_psJTitle, psStringPtr ) ) return false; } //DB_BACKUP_RECORD_FAX rFieldType = IDBRECORD_NextField( pRecord, &rFieldName, &nFieldLen ); if ( (nFieldLen>0) && (SMDB_FT_STRING==rFieldType) ) { psStringPtr = IDBRECORD_GetFieldString(pRecord); if ( 0!=WSTRCMP(psStringPtr, pszEmpty) ) if ( !CopyFieldTo(&m_psFax, psStringPtr ) ) return false; } //DB_BACKUP_RECORD_FAXH rFieldType = IDBRECORD_NextField( pRecord, &rFieldName, &nFieldLen ); if ( (nFieldLen>0) && (SMDB_FT_STRING==rFieldType) ) { psStringPtr = IDBRECORD_GetFieldString(pRecord); if ( 0!=WSTRCMP(psStringPtr, pszEmpty) ) if ( !CopyFieldTo(&m_psFaxH, psStringPtr ) ) return false; } //DB_BACKUP_RECORD_FAXW rFieldType = IDBRECORD_NextField( pRecord, &rFieldName, &nFieldLen ); if ( (nFieldLen>0) && (SMDB_FT_STRING==rFieldType) ) { psStringPtr = IDBRECORD_GetFieldString(pRecord); if ( 0!=WSTRCMP(psStringPtr, pszEmpty) ) if ( !CopyFieldTo(&m_psFaxW, psStringPtr ) ) return false; } //DB_BACKUP_RECORD_MOBILE rFieldType = IDBRECORD_NextField( pRecord, &rFieldName, &nFieldLen ); if ( (nFieldLen>0) && (SMDB_FT_STRING==rFieldType) ) { psStringPtr = IDBRECORD_GetFieldString(pRecord); if ( 0!=WSTRCMP(psStringPtr, pszEmpty) ) if ( !CopyFieldTo(&m_psMobile, psStringPtr ) ) return false; } //DB_BACKUP_RECORD_MOBILEH rFieldType = IDBRECORD_NextField( pRecord, &rFieldName, &nFieldLen ); if ( (nFieldLen>0) && (SMDB_FT_STRING==rFieldType) ) { psStringPtr = IDBRECORD_GetFieldString(pRecord); if ( 0!=WSTRCMP(psStringPtr, pszEmpty) ) if ( !CopyFieldTo(&m_psMobileH, psStringPtr ) ) return false; } //DB_BACKUP_RECORD_MOBILEW rFieldType = IDBRECORD_NextField( pRecord, &rFieldName, &nFieldLen ); if ( (nFieldLen>0) && (SMDB_FT_STRING==rFieldType) ) { psStringPtr = IDBRECORD_GetFieldString(pRecord); if ( 0!=WSTRCMP(psStringPtr, pszEmpty) ) if ( !CopyFieldTo(&m_psMobileW, psStringPtr ) ) return false; } //DB_BACKUP_RECORD_TELEPHONE rFieldType = IDBRECORD_NextField( pRecord, &rFieldName, &nFieldLen ); if ( (nFieldLen>0) && (SMDB_FT_STRING==rFieldType) ) { psStringPtr = IDBRECORD_GetFieldString(pRecord); if ( 0!=WSTRCMP(psStringPtr, pszEmpty) ) if ( !CopyFieldTo(&m_psTelephone, psStringPtr ) ) return false; } //DB_BACKUP_RECORD_TELEPHONEH rFieldType = IDBRECORD_NextField( pRecord, &rFieldName, &nFieldLen ); if ( (nFieldLen>0) && (SMDB_FT_STRING==rFieldType) ) { psStringPtr = IDBRECORD_GetFieldString(pRecord); if ( 0!=WSTRCMP(psStringPtr, pszEmpty) ) if ( !CopyFieldTo(&m_psTelephoneH, psStringPtr ) ) return false; } //DB_BACKUP_RECORD_TELEPHONEW rFieldType = IDBRECORD_NextField( pRecord, &rFieldName, &nFieldLen ); if ( (nFieldLen>0) && (SMDB_FT_STRING==rFieldType) ) { psStringPtr = IDBRECORD_GetFieldString(pRecord); if ( 0!=WSTRCMP(psStringPtr, pszEmpty) ) if ( !CopyFieldTo(&m_psTelephoneW, psStringPtr ) ) return false; } //DB_BACKUP_RECORD_EMAIL rFieldType = IDBRECORD_NextField( pRecord, &rFieldName, &nFieldLen ); if ( (nFieldLen>0) && (SMDB_FT_STRING==rFieldType) ) { psStringPtr = IDBRECORD_GetFieldString(pRecord); if ( 0!=WSTRCMP(psStringPtr, pszEmpty) ) if ( !CopyFieldTo(&m_psEmail, psStringPtr ) ) return false; } //DB_BACKUP_RECORD_EMAILH rFieldType = IDBRECORD_NextField( pRecord, &rFieldName, &nFieldLen ); if ( (nFieldLen>0) && (SMDB_FT_STRING==rFieldType) ) { psStringPtr = IDBRECORD_GetFieldString(pRecord); if ( 0!=WSTRCMP(psStringPtr, pszEmpty) ) if ( !CopyFieldTo(&m_psEmailH, psStringPtr ) ) return false; } //DB_BACKUP_RECORD_EMAILW rFieldType = IDBRECORD_NextField( pRecord, &rFieldName, &nFieldLen ); if ( (nFieldLen>0) && (SMDB_FT_STRING==rFieldType) ) { psStringPtr = IDBRECORD_GetFieldString(pRecord); if ( 0!=WSTRCMP(psStringPtr, pszEmpty) ) if ( !CopyFieldTo(&m_psEmailW, psStringPtr ) ) return false; } return true; }