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

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.  *  mmi_imps_main.c
  40.  *
  41.  * Project:
  42.  * --------
  43.  *  MAUI
  44.  *
  45.  * Description:
  46.  * ------------
  47.  *  This file implements main routines for IMPS 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.  *------------------------------------------------------------------------------
  68.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  69.  *============================================================================
  70.  ****************************************************************************/
  71. #ifndef _MMI_IMPS_MAIN_C
  72. #define _MMI_IMPS_MAIN_C
  73. #include "MMI_features.h"
  74. #ifdef __MMI_IMPS__
  75. /*  Include: MMI header file */
  76. #include "stdC.h"
  77. #include "L4Dr1.h"
  78. #include "PixtelDataTypes.h"
  79. #include "GlobalDefs.h"
  80. #include "CommonScreens.h"
  81. #include "DebugInitDef.h"
  82. #include "GlobalConstants.h"
  83. #include "FrameworkStruct.h"
  84. #include "EventsGprot.h"
  85. #include "HistoryGprot.h"
  86. #include "wgui_categories.h"
  87. #include "wgui_categories_inputs.h"
  88. #include "wgui_inline_edit.h"
  89. #include "mmi_imps_prot.h"
  90. #include "mmi_imps_gprot.h"
  91. /*  Include: PS header file */
  92. /* ... Add More PS header */
  93. mmi_imps_context_struct g_mmi_imps_cntx;
  94. mmi_imps_context_struct *imps_p = &g_mmi_imps_cntx;
  95. /***************************************************************************** 
  96. * Define
  97. *****************************************************************************/
  98. /***************************************************************************** 
  99. * Typedef 
  100. *****************************************************************************/
  101. /***************************************************************************** 
  102. * Local Variable
  103. *****************************************************************************/
  104. /***************************************************************************** 
  105. * Local Function
  106. *****************************************************************************/
  107. /***************************************************************************** 
  108. * Global Variable
  109. *****************************************************************************/
  110. /***************************************************************************** 
  111. * Global Function
  112. *****************************************************************************/
  113. /*****************************************************************************
  114.  * FUNCTION
  115.  *  mmi_imps_init_nvram
  116.  * DESCRIPTION
  117.  *  Init NVRAM data and some PS handlers right after power on
  118.  * PARAMETERS
  119.  *  void
  120.  * RETURNS
  121.  *  void
  122.  *****************************************************************************/
  123. void mmi_imps_init_nvram(void)
  124. {
  125.     /*----------------------------------------------------------------*/
  126.     /* Local Variables                                                */
  127.     /*----------------------------------------------------------------*/
  128.     /*----------------------------------------------------------------*/
  129.     /* Code Body                                                      */
  130.     /*----------------------------------------------------------------*/
  131.     mmi_imps_init_ps_before_idle();
  132.     mmi_imps_prof_read_nvram(IMPS_NVRAM_INIT);
  133. }
  134. /*****************************************************************************
  135.  * FUNCTION
  136.  *  mmi_imps_init
  137.  * DESCRIPTION
  138.  *  Init function for IMPS application
  139.  * PARAMETERS
  140.  *  void
  141.  * RETURNS
  142.  *  void
  143.  *****************************************************************************/
  144. void mmi_imps_init(void)
  145. {
  146.     /*----------------------------------------------------------------*/
  147.     /* Local Variables                                                */
  148.     /*----------------------------------------------------------------*/
  149.     /*----------------------------------------------------------------*/
  150.     /* Code Body                                                      */
  151.     /*----------------------------------------------------------------*/
  152.     mmi_imps_init_hilite_hdlr();
  153.     /* mmi_imps_util_init_list(); */
  154.     mmi_imps_init_ps_hdlr();
  155.     mmi_imps_init_icon_list();
  156. }
  157. /*****************************************************************************
  158.  * FUNCTION
  159.  *  mmi_imps_reset_cntx
  160.  * DESCRIPTION
  161.  *  Reset context of IMPS application
  162.  * PARAMETERS
  163.  *  void
  164.  * RETURNS
  165.  *  void
  166.  *****************************************************************************/
  167. void mmi_imps_reset_cntx(void)
  168. {
  169.     /*----------------------------------------------------------------*/
  170.     /* Local Variables                                                */
  171.     /*----------------------------------------------------------------*/
  172.     S32 i;
  173.     mmi_imps_cont_struct *cont;
  174.     U8 ps_ready_state;  /* state to indicate if the PS is currently ready */
  175.     /*----------------------------------------------------------------*/
  176.     /* Code Body                                                      */
  177.     /*----------------------------------------------------------------*/
  178.     /* store ready state for resuming */
  179.     ps_ready_state = imps_p->gen_info.ps_ready_state;
  180.     /* reset global context */
  181.     memset(&imps_p->gen_info, 0, sizeof(mmi_imps_general_info_struct));
  182.     memset(&imps_p->chat_info, 0, sizeof(mmi_imps_chat_info_struct));
  183.     memset(&imps_p->room_info, 0, sizeof(mmi_imps_room_info_struct));
  184.     memset(&imps_p->invite_info, 0, sizeof(mmi_imps_invite_info_struct));
  185.     /* store ready state for resuming */
  186.     imps_p->gen_info.ps_ready_state = ps_ready_state;
  187.     /* reset all contacts to REFRESH state */
  188.     for (i = 1; i < IMPS_MAX_NO_CONT; i++)
  189.     {
  190.         cont = &imps_p->cont_info.cont_list[i];
  191.         if (strlen((S8*) cont->id))
  192.         {
  193.             cont->comm_state = 0;
  194.             cont->availability = IMPS_PA_USER_UNKNOWN;
  195.         }
  196.         else
  197.         {
  198.             break;
  199.         }
  200.     }
  201.     /* reset state of group */
  202.     for (i = 0; i < IMPS_MAX_NO_GROUP; i++)
  203.     {
  204.         imps_p->group_info.group_list[i].is_sync = FALSE;
  205.     }
  206. }
  207. /*****************************************************************************
  208.  * FUNCTION
  209.  *  mmi_imps_notify_rac_ready
  210.  * DESCRIPTION
  211.  *  Function to indicate that the RAC is ready so that we can start auto-login
  212.  * PARAMETERS
  213.  *  void
  214.  * RETURNS
  215.  *  void
  216.  *****************************************************************************/
  217. void mmi_imps_notify_rac_ready(void)
  218. {
  219.     /*----------------------------------------------------------------*/
  220.     /* Local Variables                                                */
  221.     /*----------------------------------------------------------------*/
  222.     /*----------------------------------------------------------------*/
  223.     /* Code Body                                                      */
  224.     /*----------------------------------------------------------------*/
  225.     imps_p->gen_info.ps_ready_state |= IMPS_LOGIN_RAC_READY;
  226.     mmi_imps_auto_login();
  227. }
  228. /*****************************************************************************
  229.  * FUNCTION
  230.  *  mmi_imps_notify_idle_reached
  231.  * DESCRIPTION
  232.  *  Notify IDLE screen is reached
  233.  * PARAMETERS
  234.  *  void
  235.  * RETURNS
  236.  *  void
  237.  *****************************************************************************/
  238. void mmi_imps_notify_idle_reached(void)
  239. {
  240.     /*----------------------------------------------------------------*/
  241.     /* Local Variables                                                */
  242.     /*----------------------------------------------------------------*/
  243.     /*----------------------------------------------------------------*/
  244.     /* Code Body                                                      */
  245.     /*----------------------------------------------------------------*/
  246.     imps_p->gen_info.ps_ready_state |= IMPS_LOGIN_IDLE_REACHED;
  247.     mmi_imps_auto_login();
  248. }
  249. /*****************************************************************************
  250.  * FUNCTION
  251.  *  mmi_imps_check_invite_in_idle
  252.  * DESCRIPTION
  253.  *  Check if there is any pending invite when go to idle screen.
  254.  * PARAMETERS
  255.  *  void
  256.  * RETURNS
  257.  *  TRUE if there is some pending invitation; otherwise, FALSE.
  258.  *****************************************************************************/
  259. BOOL mmi_imps_check_invite_in_idle(void)
  260. {
  261.     /*----------------------------------------------------------------*/
  262.     /* Local Variables                                                */
  263.     /*----------------------------------------------------------------*/
  264.     /*----------------------------------------------------------------*/
  265.     /* Code Body                                                      */
  266.     /*----------------------------------------------------------------*/
  267.     if (imps_p->invite_info.reminder_flag)
  268.     {
  269.         if (g_keylock_context.gKeyPadLockFlag == 0)
  270.         {
  271.             mmi_imps_entry_invite_reminder();
  272.         }
  273.         else
  274.         {
  275.             mmi_imps_entry_invite_key_lokced(
  276.                 g_keylock_context.KeyLockLSKStringID,
  277.                 g_keylock_context.KeyLockLSKIconID,
  278.                 g_keylock_context.KeyLockRSKStringID,
  279.                 g_keylock_context.KeyLockRSKIconID);
  280.         }
  281.         return TRUE;
  282.     }
  283.     return FALSE;
  284. }
  285. #endif /* __MMI_IMPS__ */ /* #ifdef __MMI_IMPS__ */
  286. #endif /* _MMI_IMPS_MAIN_C */