FreeCalypso > hg > fc-magnetite
view src/aci2/bmi/AUIWapMMS.c @ 639:026c98f757a6
tpudrv12.h & targets/gtm900.h: our current support is for MGC2GSMT version only
As it turns out, there exist two different Huawei-made hw platforms both
bearing the marketing name GTM900-B: one is MG01GSMT, the other is MGC2GSMT.
The two are NOT fw-compatible: aside from flash chip differences which
should be handled by autodetection, the two hw platforms are already known
to have different RFFEs with different control signals, and there may be
other differences not yet known. Our current gtm900 build target is for
MGC2GSMT only; we do not yet have a specimen of MG01GSMT on hand, hence
no support for that version will be possible until and unless someone
provides one.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 30 Jan 2020 18:19:01 +0000 |
parents | 3c2acfa1a72f |
children |
line wrap: on
line source
/******************************************************************************* Texas Instrument - SH ******************************************************************************** This software product is the property of TI Ltd and may not be disclosed to any third party without the express permission of the owner. ******************************************************************************** $Project name: $Project code: $Module: $File: AUIWapMMS.c $Revision: $Author: TISH $Date: ******************************************************************************** Description: The user interface for WAP MMS. ******************************************************************************** $History: AUIWapMMS.c xrashmic 27 Jan, 2006 MMI-SPR-OMAPS00053357 To delete the please wait screen when we start receving a mms while we are trying to send one. xrashmic 23 Nov, 2005 MMI-SPR-OMAPS00047637 Sepearted the call back funtion for the sending and receving mms info dialog screns. Jun 30 2005 REF: MMI-SPR-30212 x0012849 Display 100% sent before displaying MMS sent. Jun 30 2005 REF: MMI-SPR-30213 x0012849 To avoid "connecting" dialog coming up while receiving MMS . May 11 2005 REF: MMI-SPR-29887 x0012849 To Implement the deferred MMS retrieval. xreddymn Mar-05-2005 MMI-SPR-26144 Added changes for cancel sending MMS xreddymn May-15-2005 MMI-SPR-30962: Added changes to maintain WAP busy state during MMS transactions. Mar 22 2005 REF: MMI-SPR-29368 x0012849 Description :when receiving MMS. Between the message "receiving MMS" and "New MMS", there is a short second that the screen will turn white. Solution : Instead of deleting and drawing a new window update the window contents. xreddymn Mar-05-2005 MMI-SPR-26144 Added changes for cancel sending MMS Feb 28 2005 REF: MMI-SPR-28222 x0012849 To avoid showing a dialog box saying New MMS received, when it is actually not there in inbox. xrashmic 08 Feb, 2005 MMI-SPR-27853 Error handling in sending MMS and also displaying the progress value xrashmic 19 Aug, 2004 Bug: 2, 3, 36 and 42 All the status screen, .i.e sending, receiving etc. are displayed separatly for the MMS module. Previously the WAP screens were being used. 29/09/03 - TISH - Created $End *******************************************************************************/ #include <stdio.h> #include <string.h> #include <stdlib.h> #if defined (NEW_FRAME) #include "typedefs.h" #include "vsi.h" #include "pei.h" #include "custom.h" #include "gsm.h" #else /* NEW_FRAME */ #include "STDDEFS.H" #include "custom.h" #include "gsm.h" #include "vsi.h" #endif /* NEW_FRAME */ #include "mfw_sys.h" #include "mfw_mfw.h" #include "mfw_win.h" #include "mfw_kbd.h" #include "mfw_edt.h" #include "mfw_tim.h" #include "mfw_phb.h" #include "mfw_sms.h" #include "mfw_icn.h" #include "mfw_mnu.h" #include "mfw_lng.h" #include "mfw_sat.h" #include "mfw_kbd.h" #include "mfw_nm.h" #include "mfw_cm.h" #include "dspl.h" #include "wapmic_types.h" #include "MmiMmi.h" #include "MmiMain.h" #include "MmiDummy.h" #include "MmiDialogs.h" #include "MmiLists.h" #include "mmiCall.h" #include "MmiMenu.h" #include "MmiSoftKeys.h" #include "MmiResources.h" #include "MmiBlkLangDB.h" #include "MmiBookUtils.h" //#include "MmiEditor.h" //#include "MmiEditor_i.h" #include "MmiBookShared.h" #include "ATBData.h" #include "ATBWapAUI.h" #include "mmiSmsMenu.h" #include "mmismssend.h" #include "AUIWapext.h" #include "AUIWap.h" //xrashmic 08 Feb, 2005 MMI-SPR-27853 #include "MmiDialogs.h" #ifdef MMI_GPRS_ENABLED #include "MmiGprs.h" #endif #include "cus_aci.h" #include "prim.h" #ifndef PCM_2_FFS #include "pcm.h" #endif #include "mmiColours.h" #include "font_bitmaps.h" #if 0 typedef signed int INT16; typedef signed long INT32; typedef unsigned long UINT32; #include "capiclnt.h" #endif #ifdef FF_MMI_MMS // Jun 23 2005 REF: MMI-SPR-29887 x0012849 UBYTE rtvprogressValue=0; char AUI_MMS_rtv_progress_string[8]; extern BOOL is_downloadcancelled; void AUI_mms_wap_start_cb(UBYTE result); //xrashmic 08 Feb, 2005 MMI-SPR-27853 extern int progressValue; void AUI_mms_error_dialog(SHORT errorCode); // May 12 2005 REF: MMI-SPR-29887 x0012849 extern BOOL is_deferdownload; /******************************************************************************* $Function: AUI_mms_wap_start $Description: Start MMS SPR#2088 - TISH - Added $Returns: None $Arguments: None *******************************************************************************/ //xmzhou02 static void AUI_mms_wap_start_cb(UBYTE result) void AUI_mms_wap_start_cb(UBYTE result) { T_WAP_DATA *data; TRACE_FUNCTION("AUI_mms_wap_start_cb"); if (!result) { TRACE_EVENT("*** Failed to start up for WAP PUSH ***"); return; } data = AUI_wap_data(); //to do return; } void AUI_mms_wap_start() { #ifdef TRACE_AUIWAP TRACE_FUNCTION("AUI_mms_wap_start()"); #endif AUI_wap_start(WAP_MMS, (T_WAP_CB)AUI_mms_wap_start_cb); return; } // xreddymn Mar-05-2005 MMI-SPR-26144: Changes for cancel sending MMS void AUI_mms_cancel_cb(T_MFW_HND win, USHORT identifier, USHORT reason); void mms_post_error(void); void AUI_mms_status_notify(int status); char AUI_MMS_progress_string[8]; // May 11 2005 REF: MMI-SPR-29887 x0012849 void AUI_mms_recieve_cancel_cb(T_MFW_HND win, USHORT identifier, USHORT reason); /******************************************************************************* $Function: AUI_mms_send_progress $Description: Displays progress for MMS send $Returns: None. $Arguments: progress: an integer value between 0 and 100 *******************************************************************************/ void AUI_mms_send_progress(int progress) { progressValue=progress; // AUI_mms_status_notify(MMS_SEND_PROGRESS); } /******************************************************************************* $Function: AUI_mms_send_start $Description: Displays the initial "connecting" dialog $Returns: None. $Arguments: None. *******************************************************************************/ void AUI_mms_send_start(void) { progressValue=0; AUI_mms_status_notify(MMS_SEND_START); } /******************************************************************************* $Function: AUI_wap_net_send_ind $Description: Displays progress for MMS send $Returns: None. $Arguments: None. *******************************************************************************/ void AUI_wap_net_send_ind(void) { T_WAP_DATA *data = AUI_wap_data(); // xreddymn May-19-2005 MMI-SPR-29887: Call AUI_mms_status notify only // during a MMS send operation if( (data->mms_win != NULL) && ((MMS_TYPE_SEND_START == data->mms_win_type) || (MMS_TYPE_SEND_PROGRESS == data->mms_win_type)) ) { AUI_mms_status_notify(MMS_SEND_PROGRESS); } } // xreddymn May-15-2005 MMI-SPR-30962: external functions extern void MMS_set_WAP_busy(void); extern void MMS_reset_WAP_busy(void); extern void MMS_process_push_queue(void); /******************************************************************************* $Function: AUI_mms_status_notify $Description: xrashmic 08 Feb, 2005 MMI-SPR-27853 MMS send/rcv state is displayed to the user here All calls to AUI_wap_status_notify is routed to this function for MMS module xrashmic 19 Aug, 2004 Bug: 2, 3, 36 and 42 $Returns: None. $Arguments: *******************************************************************************/ void AUI_mms_status_notify(int status) { T_WAP_DATA *data = AUI_wap_data(); T_MFW_HND win_handle; T_MFW_WIN * win_data ; T_dialog_info * mms_info_dialog_data ; if (!data) { return; } switch (status) { // May 11 2005 REF: MMI-SPR-29887 x0012849 // Control comes to this case immediately after coming to know that the retrieval condition is deferred case MMS_NOTIFICATION_PROGRESS: TRACE_EVENT("MMS_NOTIFICATION_PROGRESS"); data->mms_win_type = MMS_TYPE_NOTIFICATION_PROGRESS; break; // May 11 2005 REF: MMI-SPR-29887 x0012849 // Control comes to here once the Notification is responded case MMS_NOTIFICATION_RECEIVED: TRACE_EVENT("MMS_NOTIFICATION_RECEIVED"); if(MMS_TYPE_NOTIFICATION_PROGRESS == data->mms_win_type) { //xrashmic 23 Nov, 2005 MMI-SPR-OMAPS00047637 //Sepearted the call back funtion for the sending and receving mms info dialog screns. data->mms_win=information_dialog(TxtNew,TxtMMSNotification,NULL,NULL,TxtNull,TxtSoftBack,FOREVER,KEY_RIGHT,(T_VOID_FUNC)AUI_mmsrcv_cb); data->mms_win_type = MMS_TYPE_NOTIFICATION_RECEIVED; } break; case MMS_PLEASEWAIT: data->mms_win_type = MMS_TYPE_PLEASEWAIT; data->mms_win=information_dialog(TxtPleaseWait,TxtNull,NULL,NULL,TxtNull,TxtNull,FOREVER,0,NULL); break; case MMS_SEND_PROGRESS: // If user has canceled sending MMS, do not display any more dialogs if(data->mms_cancel) break; // xreddymn Mar-05-2005 MMI-SPR-26144 // Handle the "connecting" dialog box if((MMS_TYPE_PLEASEWAIT == data->mms_win_type) || (MMS_TYPE_SEND_START == data->mms_win_type)) { SEND_EVENT(data->mms_win, DIALOG_DESTROY, 0, 0); data->mms_win_type = MMS_TYPE_NONE; } // xreddymn Mar-05-2005 MMI-SPR-26144 // Display MMS send progress in percentage if(progressValue < 0) { progressValue = 0; } if(progressValue > 100) { progressValue = 100; } sprintf(AUI_MMS_progress_string, "%d", progressValue); strcat(AUI_MMS_progress_string, "%"); if(MMS_TYPE_NONE == data->mms_win_type) { data->mms_win=information_dialog(TxtMMSSendng, TxtNull, NULL, AUI_MMS_progress_string, TxtNull, TxtCancel, FOREVER, KEY_RIGHT|KEY_HUP, (T_VOID_FUNC)AUI_mms_cancel_cb); data->mms_win_type = MMS_TYPE_SEND_PROGRESS; win_data = ((T_MFW_HDR *) data->mms_win)->data; mms_info_dialog_data = (T_dialog_info *)win_data->user; } else if(MMS_TYPE_SEND_PROGRESS == data->mms_win_type) { win_data = ((T_MFW_HDR *) data->mms_win)->data; mms_info_dialog_data = (T_dialog_info *)win_data->user; dspl_Enable(0); winShow(data->mms_win); dspl_Enable(1); } break; // xreddymn Feb-25-2005 MMI-SPR-26144: This is displayed while waiting for WAP to connect case MMS_SEND_START: // Jun 30 2005 REF: MMI-SPR-30213 x0012849 // To avoid "connecting" dialog coming up while receiving MMS . if(MMS_TYPE_PLEASEWAIT == data->mms_win_type) { SEND_EVENT(data->mms_win, DIALOG_DESTROY, 0, 0); data->mms_win=information_dialog(TxtConnecting,TxtNull,NULL,NULL,TxtNull,TxtNull,FOREVER,0,(T_VOID_FUNC)AUI_mms_cancel_cb); data->mms_win_type = MMS_TYPE_SEND_START; } break; case MMS_SEND_SUCCESS: // xreddymn Mar-05-2005 MMI-SPR-26144: Handle "please wait" // and "connecting" windows dspl_Enable(0); if((MMS_TYPE_SEND_PROGRESS == data->mms_win_type) || (MMS_TYPE_PLEASEWAIT == data->mms_win_type) || (MMS_TYPE_SEND_START == data->mms_win_type)) { // Jun 30 2005 REF: MMI-SPR-30212 x0012849 // Display 100% sent before displaying MMS sent. progressValue=100; sprintf(AUI_MMS_progress_string, "%d", progressValue); strcat(AUI_MMS_progress_string, "%"); SEND_EVENT(data->mms_win, DIALOG_DESTROY, 0, 0); data->mms_win=information_dialog(TxtMMSSendng, TxtNull, NULL, AUI_MMS_progress_string, TxtNull, TxtNull, ONE_SECS, TxtNull,NULL ); data->mms_win_type = MMS_TYPE_NONE; } data->mms_win_type = MMS_TYPE_SEND_SUCCESS; //xrashmic 23 Nov, 2005 MMI-SPR-OMAPS00047637 //Sepearted the call back funtion for the sending and receving mms info dialog screns. data->mms_win = information_dialog(TxtMMS,TxtMMSSendSucess,NULL,NULL,TxtNull,TxtSoftBack,FOREVER,KEY_RIGHT,(T_VOID_FUNC)AUI_mmssend_cb); dspl_Enable(1); break; case MMS_RECEIVE_PROGRESS: //xrashmic 27 Jan, 2006 MMI-SPR-OMAPS00053357 //To delete the please wait screen when we start receving a mms while we are trying to send one. if(MMS_TYPE_NONE != data->mms_win_type && MMS_TYPE_RECIEVE_PROGRESS != data->mms_win_type) { SEND_EVENT(data->mms_win, DIALOG_DESTROY, 0, 0); data->mms_win_type = MMS_TYPE_NONE; } TRACE_EVENT("MMS_RECEIVE_PROGRESS"); // May 12 2005 REF: MMI-SPR-29887 x0012849 // When The MMS_RECEIVE_PROGRESS if(TRUE == is_deferdownload ) { // Jun 23 2005 REF: MMI-SPR-29887 x0012849 //Display the progress while retrieving MMS. if(FALSE == is_downloadcancelled) { sprintf(AUI_MMS_rtv_progress_string, "%d", rtvprogressValue); strcat(AUI_MMS_rtv_progress_string, "%"); if(MMS_TYPE_NONE == data->mms_win_type) { data->mms_win=information_dialog(TxtMMSRetrieving,TxtNull,NULL,AUI_MMS_rtv_progress_string,TxtNull,TxtCancel, FOREVER, KEY_RIGHT|KEY_HUP, (T_VOID_FUNC)AUI_mms_recieve_cancel_cb); data->mms_win_type = MMS_TYPE_RECIEVE_PROGRESS; win_data = ((T_MFW_HDR *) data->mms_win)->data; mms_info_dialog_data = (T_dialog_info *)win_data->user; } else if(MMS_TYPE_RECIEVE_PROGRESS == data->mms_win_type) { win_data = ((T_MFW_HDR *) data->mms_win)->data; mms_info_dialog_data = (T_dialog_info *)win_data->user; dspl_Enable(0); winShow(data->mms_win); dspl_Enable(1); } } } else { data->mms_win_type = MMS_TYPE_RECIEVE_PROGRESS; data->mms_win=information_dialog(TxtMMSDownloading,TxtMMSDots,NULL,NULL,TxtNull,TxtNull,FOREVER,0,NULL); } break; case MMS_RECEIVE_SUCCESS: TRACE_EVENT("MMS_RECEIVE_SUCCESS"); // May 12 2005 REF: MMI-SPR-29887 x0012849 // Instead of showing NewMMS, show MMS Retrieved. if(TRUE == is_deferdownload) { if(MMS_TYPE_RECIEVE_PROGRESS == data->mms_win_type) { SEND_EVENT(data->mms_win, DIALOG_DESTROY, 0, 0); data->mms_win_type = MMS_TYPE_NONE; } data->mms_win_type=MMS_TYPE_RECIEVE_SUCCESS; is_deferdownload=FALSE; //xrashmic 23 Nov, 2005 MMI-SPR-OMAPS00047637 //Sepearted the call back funtion for the sending and receving mms info dialog screns. data->mms_win = information_dialog(TxtMMSRetrieved, TxtNull, NULL, NULL, TxtNull, TxtNull, FIVE_SECS, 0, (T_VOID_FUNC)AUI_mmsrcv_cb); } else { // Mar 22 2005 REF: MMI-SPR-29368 x0012849 //Instead of Destroying and drawing a new window to diaply new MMS , update the erlier window contents. data->mms_win_type = MMS_TYPE_RECIEVE_SUCCESS; win_data = ((T_MFW_HDR *) data->mms_win)->data; mms_info_dialog_data = (T_dialog_info *)win_data->user; mms_info_dialog_data->TextId= TxtNewMMS; mms_info_dialog_data->TextId2 = TxtNull; //xrashmic 23 Nov, 2005 MMI-SPR-OMAPS00047637 //Sepearted the call back funtion for the sending and receving mms info dialog screns. mms_info_dialog_data->Callback=(T_VOID_FUNC)AUI_mmsrcv_cb; mms_info_dialog_data->Time = FOREVER; mms_info_dialog_data->KeyEvents = KEY_RIGHT; mms_info_dialog_data->RightSoftKey= TxtSoftBack; dspl_Enable(0); winShow(data->mms_win); dspl_Enable(1); } break; //xrashmic 23 Feb, 2005 MMI-SPR-28222 // Added support to display the receive fail for MMS case MMS_RECEIVE_FAIL: // May 12 2005 REF: MMI-SPR-29887 x0012849 // Instead of showing Receive Failed show Retrieve Failed if((data->mms_win_type != MMS_TYPE_RECIEVE_FAILED) && (data->mms_win_type != MMS_TYPE_ERROR)) { if(MMS_TYPE_RECIEVE_PROGRESS == data->mms_win_type) { SEND_EVENT(data->mms_win, DIALOG_DESTROY, 0, 0); data->mms_win_type = MMS_TYPE_NONE; } data->mms_win_type = MMS_TYPE_RECIEVE_FAILED; if(TRUE == is_deferdownload) { //xrashmic 23 Nov, 2005 MMI-SPR-OMAPS00047637 //Sepearted the call back funtion for the sending and receving mms info dialog screns. is_deferdownload=FALSE; data->mms_win = information_dialog(TxtRetrieve, TxtFailed, NULL, NULL, TxtNull, TxtNull, FIVE_SECS, 0, (T_VOID_FUNC)AUI_mmsrcv_cb); } else { //xrashmic 23 Nov, 2005 MMI-SPR-OMAPS00047637 //Sepearted the call back funtion for the sending and receving mms info dialog screns. data->mms_win = information_dialog(TxtMMS, TxtMMSRcvFail, NULL, NULL, TxtNull, TxtSoftBack, FOREVER, KEY_RIGHT, (T_VOID_FUNC)AUI_mmsrcv_cb); } } // xreddymn May-15-2005 MMI-SPR-30962: Clear WAP busy state once MMS transaction is complete MMS_reset_WAP_busy(); MMS_process_push_queue(); break; //xrashmic 23 Feb, 2005 MMI-SPR-28222 // Added support to display the receive fail for MMS when MMS folder is full case MMS_NO_MEMORY: if(data->mms_win_type != MMS_TYPE_RECIEVE_FAILED) { if(MMS_TYPE_RECIEVE_PROGRESS == data->mms_win_type) { SEND_EVENT(data->mms_win, DIALOG_DESTROY, 0, 0); data->mms_win_type = MMS_TYPE_NONE; } data->mms_win_type = MMS_TYPE_RECIEVE_FAILED; //xrashmic 23 Nov, 2005 MMI-SPR-OMAPS00047637 //Sepearted the call back funtion for the sending and receving mms info dialog screns. data->mms_win = information_dialog(TxtNewMMS, TxtErrorOutOfMem, NULL, NULL, TxtNull, TxtSoftBack, FOREVER, KEY_RIGHT, (T_VOID_FUNC)AUI_mmsrcv_cb); } break; case MMS_SEND_FAIL: case ATB_WAP_DEACTIVATING: case ATB_WAP_ATTACH_FAILED: case ATB_WAP_ERROR: case ATB_WAP_ACTIVATE_FAILED: // xreddymn Feb-17-2005 MMI-SPR-26144: handle errors when sending MMS mms_post_error(); dspl_Enable(0); // Disable screen refresh while we change dialogs // xreddymn Mar-07-2005 MMI-SPR-26144: Modified this so that Error // dialog is displayed if FFS write failed when sending MMS if(data->mms_cancel) { data->mms_cancel=0; if((MMS_TYPE_SEND_PROGRESS==data->mms_win_type)||(MMS_TYPE_PLEASEWAIT==data->mms_win_type)) { SEND_EVENT(data->mms_win, DIALOG_DESTROY, 0, 0); data->mms_win_type=MMS_TYPE_NONE; } } else { AUI_mms_error_dialog(MMS_ERROR); } // xreddymn May-15-2005 MMI-SPR-30962: Clear WAP busy state once MMS transaction is complete MMS_reset_WAP_busy(); MMS_process_push_queue(); dspl_Enable(1); // Enable screen refresh after invoking the new dialog break; default: break; } return; } /******************************************************************************* $Function: AUI_mms_error_dialog $Description: //xrashmic 08 Feb, 2005 MMI-SPR-27853 The mms send/rcv failure are displayed here All calls to AUI_error_dialog is routed to this function for MMS module //xrashmic 19 Aug, 2004 Bug: 2, 3, 36 and 42 $Returns: None. $Arguments: *******************************************************************************/ void AUI_mms_error_dialog(SHORT errorCode) { T_WAP_DATA *data = AUI_wap_data(); int txtId=TxtNull; TRACE_EVENT("AUI_mms_error_dialog"); if (!data) { return; } if(MMS_TYPE_SEND_PROGRESS == data->mms_win_type || MMS_TYPE_PLEASEWAIT == data->mms_win_type || MMS_TYPE_SEND_START == data->mms_win_type) { txtId=TxtMMSSendFail; } else if(data->mms_win_type == MMS_TYPE_RECIEVE_PROGRESS) { txtId=TxtMMSRcvFail; } if(MMS_TYPE_RECIEVE_PROGRESS == data->mms_win_type || MMS_TYPE_SEND_PROGRESS == data->mms_win_type || data->mms_win_type==MMS_TYPE_PLEASEWAIT || MMS_TYPE_SEND_START == data->mms_win_type) { SEND_EVENT(data->mms_win, DIALOG_DESTROY, 0, 0); data->mms_win_type = MMS_TYPE_NONE; } // May 25 2005 REF: MMI-SPR-29887 xrashmic // Display Retrieve failed instead of recieve failed. if(txtId != TxtNull && data->mms_win_type != MMS_TYPE_ERROR) { data->mms_win_type = MMS_TYPE_ERROR; if(TRUE == is_deferdownload && txtId==TxtMMSRcvFail) { is_deferdownload=FALSE; //xrashmic 23 Nov, 2005 MMI-SPR-OMAPS00047637 //Sepearted the call back funtion for the sending and receving mms info dialog screns. data->mms_win = information_dialog(TxtRetrieve, TxtFailed, NULL, NULL, TxtNull, TxtNull, FIVE_SECS, 0, (T_VOID_FUNC)AUI_mmsrcv_cb); } else { //xrashmic 23 Nov, 2005 MMI-SPR-OMAPS00047637 //Sepearted the call back funtion for the sending and receving mms info dialog screns. if(txtId == TxtMMSRcvFail) data->mms_win=information_dialog(TxtMMS,txtId,NULL,NULL,TxtNull,TxtSoftBack,FOREVER,KEY_RIGHT,(T_VOID_FUNC)AUI_mmsrcv_cb); else data->mms_win=information_dialog(TxtMMS,txtId,NULL,NULL,TxtNull,TxtSoftBack,FOREVER,KEY_RIGHT,(T_VOID_FUNC)AUI_mmssend_cb); } } return; } #endif