EmailAppMain.c
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:9k
源码类别:

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*****************************************************************************
  36.  *
  37.  * Filename:
  38.  * ---------
  39.  * EmailAppMain.c
  40.  *
  41.  * Project:
  42.  * --------
  43.  * MAUI
  44.  *
  45.  * Description:
  46.  * ------------
  47.  * This file implements main utilities for Email application.
  48.  *
  49.  * Author:
  50.  * -------
  51.  * -------
  52.  *
  53.  *============================================================================
  54.  *             HISTORY
  55.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  56.  *------------------------------------------------------------------------------
  57.  * removed!
  58.  *
  59.  * removed!
  60.  * removed!
  61.  * removed!
  62.  *
  63.  * removed!
  64.  * removed!
  65.  * removed!
  66.  *
  67.  * removed!
  68.  * removed!
  69.  * removed!
  70.  *
  71.  * removed!
  72.  * removed!
  73.  * removed!
  74.  *
  75.  * removed!
  76.  * removed!
  77.  * removed!
  78.  *
  79.  * removed!
  80.  * removed!
  81.  * removed!
  82.  *
  83.  *------------------------------------------------------------------------------
  84.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  85.  *============================================================================
  86.  ****************************************************************************/
  87.  /**
  88.  * Copyright Notice
  89.  * ?2002 - 2003, Pixtel Communications, Inc., 1489 43rd Ave. W.,
  90.  * Vancouver, B.C. V6M 4K8 Canada. All Rights Reserved.
  91.  *  (It is illegal to remove this copyright notice from this software or any
  92.  *  portion of it)
  93.  */
  94. /**************************************************************
  95.    FILENAME : EmailAppMain.c
  96.    PURPOSE     : nil
  97.    REMARKS     : nil
  98.    AUTHOR      : Magesh k
  99.    DATE     : 30-01-2004
  100. **************************************************************/
  101. #ifndef _MMI_EMAILAPPMAIN_C
  102. #define _MMI_EMAILAPPMAIN_C
  103. #include "MMI_features.h"
  104. #ifdef __MMI_EMAIL__
  105. #include "stdC.h"
  106. #include "L4Dr1.h"
  107. #include "mdi_datatype.h"
  108. #include "FileSystemDef.h"
  109. #include "FileMgr.h"
  110. #include "custom_nvram_editor_data_item.h"
  111. #include "custom_data_account.h"
  112. #include "EmailAppProt.h"
  113. #include "DebugInitDef.h"
  114. #include "EmailAppGProt.h"
  115. #include "Conversions.h"
  116. #include "SimDetectionGprot.h"
  117. #ifdef __USB_IN_NORMAL_MODE__
  118. #include "USBDeviceGprot.h"
  119. #endif
  120. mmi_email_context_struct g_email_cntx;  /* global context of email */
  121. mmi_email_context_struct *email_p = &g_email_cntx;
  122. /*****************************************************************************
  123.  * FUNCTION
  124.  *  mmi_email_init
  125.  * DESCRIPTION
  126.  *  Initialize Email application
  127.  * PARAMETERS
  128.  *  void
  129.  * RETURNS
  130.  *  void
  131.  *****************************************************************************/
  132. void mmi_email_init(void)
  133. {
  134.     /*----------------------------------------------------------------*/
  135.     /* Local Variables                                                */
  136.     /*----------------------------------------------------------------*/
  137.     /*----------------------------------------------------------------*/
  138.     /* Code Body                                                      */
  139.     /*----------------------------------------------------------------*/
  140.     mmi_email_init_hilite_hdlr();   /* highlight handler */
  141.     mmi_email_init_protocol_hdlr(); /* protocol event handler */
  142.     mmi_email_ps_init_req();        /* initialize email module */
  143. #ifdef __USB_IN_NORMAL_MODE__
  144.     /* the temporary folder will be deleted exactly once to ensure there is no dangling file in the temporary folder */
  145.     if (mmi_usb_is_in_mass_storage_mode() &&
  146.         ((email_p->main_info.ready_state & EMAIL_CLEAR_BUFF_DONE) == EMAIL_CLEAR_BUFF_DONE))
  147.     {
  148.         /* 
  149.          * if it is reinit by usb normal mode and the folder has been deleted before (at least one email_init procedure successful before),
  150.          * do not delete the temporary folder again because the folder may contain composed email attachment
  151.          */
  152.     }
  153.     else
  154. #endif /* __USB_IN_NORMAL_MODE__ */
  155.     {
  156.         mmi_email_fs_del_all_tmp_file_req();    /* clear file buffer */
  157.     }
  158. }
  159. /*****************************************************************************
  160.  * FUNCTION
  161.  *  mmi_email_deinit
  162.  * DESCRIPTION
  163.  *  Deinitialize Email application
  164.  * PARAMETERS
  165.  *  void
  166.  * RETURNS
  167.  *  void
  168.  *****************************************************************************/
  169. void mmi_email_deinit(void)
  170. {
  171.     /*----------------------------------------------------------------*/
  172.     /* Local Variables                                                */
  173.     /*----------------------------------------------------------------*/
  174.     /*----------------------------------------------------------------*/
  175.     /* Code Body                                                      */
  176.     /*----------------------------------------------------------------*/
  177.     /* reset EMAIL_PS_INIT_DONE bit but keep EMAIL_CLEAR_BUFF_DONE bit */
  178.     email_p->main_info.ready_state = (email_p->main_info.ready_state >> 1) << 1;
  179.     mmi_email_ps_deinit_req();  /* de-initialize email module */
  180. }
  181. #ifdef __USB_IN_NORMAL_MODE__
  182. /*****************************************************************************
  183.  * FUNCTION
  184.  *  mmi_email_check_to_deinit
  185.  * DESCRIPTION
  186.  *  A check function provided to usb normal mode before calling deinit function
  187.  * PARAMETERS
  188.  *  void
  189.  * RETURNS
  190.  *  TRUE means email has to deinit; FALSE means email doesn't need to deinit
  191.  *****************************************************************************/
  192. U8 mmi_email_check_to_deinit(void)
  193. {
  194.     /*----------------------------------------------------------------*/
  195.     /* Local Variables                                                */
  196.     /*----------------------------------------------------------------*/
  197.     S8 filePath[20];
  198.     S8 drive;
  199.     
  200.     /*----------------------------------------------------------------*/
  201.     /* Code Body                                                      */
  202.     /*----------------------------------------------------------------*/
  203. #ifdef APP_STORAGE_IN_SYS_DRV
  204.     /* Invisible NOR only */
  205.     drive = FS_GetDrive(FS_DRIVE_I_SYSTEM, 1, FS_NO_ALT_DRIVE);
  206. #else
  207.     /* Order: 1. Visible NOR 2. Invisible NOR */
  208.     drive = FS_GetDrive(FS_DRIVE_V_NORMAL, 1, FS_DRIVE_I_SYSTEM);
  209. #endif
  210.     sprintf(filePath, "%c:\@email\", drive);
  211.     /* no sim is inserted or email drive is not exported, email doesn't have to deinit */
  212.     if (mmi_bootup_is_sim_valid() && mmi_usb_check_path_exported(filePath))
  213.     {
  214.         return TRUE;
  215.     }
  216.     else
  217.     {
  218.         return FALSE;
  219.     }
  220. }
  221. #endif /* __USB_IN_NORMAL_MODE__ */
  222. /*****************************************************************************
  223.  * FUNCTION
  224.  *  mmi_email_util_get_stop_cause
  225.  * DESCRIPTION
  226.  *  Get stop cause of Email.
  227.  * PARAMETERS
  228.  *  void
  229.  * RETURNS
  230.  *  Stop cause of Email
  231.  *****************************************************************************/
  232. U8 mmi_email_util_get_stop_cause(void)
  233. {
  234.     /*----------------------------------------------------------------*/
  235.     /* Local Variables                                                */
  236.     /*----------------------------------------------------------------*/
  237.     /*----------------------------------------------------------------*/
  238.     /* Code Body                                                      */
  239.     /*----------------------------------------------------------------*/
  240.     return email_p->main_info.stop_cause;
  241. }
  242. #endif /* __MMI_EMAIL__ */
  243. #endif /* _MMI_EMAILAPPMAIN_C */