Esempio n. 1
0
void	mmi_frm_screen_rotate_req(mmi_frm_screen_rotate_enum rotate)
	{
	if(g_mmi_frm_screen_rotate != rotate){
		g_mmi_frm_screen_rotate_new = rotate; 
    //Notice camera the slide status, FALSE->ROTATE_0, TRUE->ROTATE_270
		//cam_screen_width_height_swapped = TRUE;

	if(IsScreenPresent(SCR_ID_FM_AUTO_TEST_START) || IsScreenPresent(SCR_ID_FM_ROOT)) return;

    EntryNewScreen(GLOBAL_SCR_DUMMY, NULL, NULL, NULL);
        GoBackHistory();
    }
}
Esempio n. 2
0
/**************************************************************

	FUNCTION NAME		: GoToAddEditScreen(void)
  	PURPOSE				: Go back to Add screen or edit screen.
	INPUT PARAMETERS	: nil
	OUTPUT PARAMETERS	: nil
	RETURNS				: void
  	Author				: Vanita Jain
 

**************************************************************/
void GoToAddEditScreen(void)
{
	if(IsScreenPresent(SCR_ID_SECSET_FDN_DETAILS))
		GoBackToHistory(SCR_ID_SECSET_FDN_DETAILS);
	else
		GoBackToHistory(SCR_ID_SECSET_FDN_LIST);
}
Esempio n. 3
0
/*****************************************************************************
 * FUNCTION
 *  mmi_vt_make_video_call
 * DESCRIPTION
 *  Make video call
 *  This function is exported to UCM
 * PARAMETERS
 *  strNumber       [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_vt_make_video_call(S8 *strNumber)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if ((GetExitScrnID() == SCR_ID_VT_INCALL) || (IsScreenPresent(SCR_ID_VT_INCALL)))
    {
        /* camera status should be set before entering vt incall screen */
    }
    else
    {
        if (g_vt_p->setting.dial_mode == MMI_VT_DIAL_MODE_STOP_CAMERA)
        {
            mmi_vt_set_camera_status(MMI_FALSE);
        }
        else
        {
            mmi_vt_set_camera_status(MMI_TRUE);
        }
    }
    
    mmi_ucs2ncpy((S8*)g_vt_p->mo_info.dial_pad_buffer, (S8*)strNumber, MMI_UCM_MAX_NUM_URI_LEN);    
    MakeCallEx(strNumber, FALSE, CSMCC_VIDEO_CALL);
}
Esempio n. 4
0
/*****************************************************************************
 * FUNCTION
 *  mmi_netset_set_user_ctrl_plmn_add_inline_editor
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_netset_set_user_ctrl_plmn_add_inline_editor(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    memset(gUserCtrlPlmnList.PlmnAddNumber, 0, (MAX_PLMN_LEN + 1) * ENCODING_LENGTH);
    memset(gUserCtrlPlmnList.PlmnAddString, 0, MAX_LENGTH_DISPLAY_NAME * ENCODING_LENGTH);

    if (!IsScreenPresent(SCR_ID_NETSET_USER_CTRL_PLMN_LIST))
    {
        mmi_asc_to_ucs2((S8*) gUserCtrlPlmnList.PlmnAddNumber, (S8*) gPLMN);
    }

    SetInlineItemActivation(&wgui_inline_items[0], INLINE_ITEM_ACTIVATE_WITHOUT_KEY_EVENT, 0);
    SetInlineItemCaption(&wgui_inline_items[0], (PU8) GetString(STR_ID_NETSET_PRR_MCC_CAPTION));

    SetInlineItemActivation(&wgui_inline_items[1], INLINE_ITEM_ACTIVATE_WITHOUT_KEY_EVENT, 0);
    SetInlineItemTextEdit(
        &wgui_inline_items[1],
        (PU8) gUserCtrlPlmnList.PlmnAddNumber,
        MAX_PLMN_LEN + 1,
        INPUT_TYPE_NUMERIC);
    //SetInlineItemFullWidth(&wgui_inline_items[1]);
    EnableInlineItemBoundary(&wgui_inline_items[1]);
    DisableInlineItemHighlight(&wgui_inline_items[1]);

    SetInlineItemActivation(&wgui_inline_items[2], INLINE_ITEM_ACTIVATE_WITHOUT_KEY_EVENT, 0);
    SetInlineItemCaption(&wgui_inline_items[2], (PU8) GetString(STR_ID_NETSET_OP_NAME_CAPTION));

    SetInlineItemActivation(&wgui_inline_items[3], INLINE_ITEM_ACTIVATE_WITHOUT_KEY_EVENT, 0);
    SetInlineItemTextEdit(
        &wgui_inline_items[3],
        (PU8) gUserCtrlPlmnList.PlmnAddString,
        MAX_LENGTH_DISPLAY_NAME,
        INPUT_TYPE_ALPHANUMERIC_LOWERCASE | INPUT_TYPE_USE_ONLY_ENGLISH_MODES);
#if defined(__MMI_TOUCH_SCREEN__)
    SetInlineTextEditCustomFunction(&wgui_inline_items[3], mmi_phb_op_email_custom_function);
#endif
    //SetInlineItemFullWidth(&wgui_inline_items[3]);
    EnableInlineItemBoundary(&wgui_inline_items[3]);
    DisableInlineItemHighlight(&wgui_inline_items[3]);

#if 0
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
#endif
}
Esempio n. 5
0
/*****************************************************************************
 * FUNCTION
 *  mmi_brw_recent_page_sort_by_site
 * DESCRIPTION
 *  This func is used for sorting the recent pages in site wise order
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_brw_recent_page_sort_by_site(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
 
    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
	if(IsScreenPresent(SCR_ID_BRW_INTERNET_SERVICES))
	{
		DeleteUptoScrID(SCR_ID_BRW_INTERNET_SERVICES);
	}
	else if(IsScreenPresent(SCR_ID_BRW_RENDERED_PAGE_OPTIONS))
	{
		DeleteUptoScrID(SCR_ID_BRW_RENDERED_PAGE_OPTIONS);
	}

	g_brw_cntx.sorting_method = WAP_BAM_RECENT_PAGE_SORT_OPTION_HOST;
	mmi_brw_recent_pages_write_sorting_method();
	mmi_brw_recent_pages_get_recent_pages_list_start_req();
}
Esempio n. 6
0
/*****************************************************************************
 * FUNCTION
 *  mmi_java_is_in_idle_screen
 * DESCRIPTION
 *  This function is used to detect "current screen" is idle screen or not
 * PARAMETERS
 *  void
 * RETURNS
 *  MMI_TRUE or MMI_FALSE
 *****************************************************************************/
BOOL mmi_java_is_in_idle_screen(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (mmi_shutdown_is_in_power_off_period() == MMI_TRUE)
    {
        return MMI_FALSE;
    }

    if (IsScreenPresent(SCR_SIM_INSERTION)  /* is sim insertion IN history ? */
        || IsScreenPresent(IDLE_SCREEN_ID)  /* is idle screen IN history ? */
        || IsScreenPresent(SCR_SIM_BLOCK))  /* is sim block IN history ? */
    {
        return MMI_FALSE;
    }
    return MMI_TRUE;
}
Esempio n. 7
0
/*****************************************************************************
 * FUNCTION
 *  mmi_rmgr_http_profile_done_go_back_to_rmgr_main
 * DESCRIPTION
 *  Go back to RMGR main menu
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
static void mmi_rmgr_http_profile_done_go_back_to_rmgr_main(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (IsScreenPresent(SCR_ID_RMGR_MAIN))
    {
        GoBackToHistory(SCR_ID_RMGR_MAIN);
    }
}
Esempio n. 8
0
/*****************************************************************************
 * FUNCTION
 *  mmi_brw_delete_all_push_messages
 * DESCRIPTION
 *  Deletes the entire recent page list
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_brw_delete_all_push_messages(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U16 msg_counter;
    JC_UINT32 brw_total_msg_count = 0;
    JC_UINT32 brw_unread_msg_count = 0;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* added by Vivek */
    HideStatusIcon(STATUS_ICON_WAP);

    mmi_brw_get_push_statistics(&brw_total_msg_count, &brw_unread_msg_count);

    for (msg_counter = 0; msg_counter < brw_total_msg_count; msg_counter++)
    {
        mmi_brw_delete_push_msg(0);
    }

    /* Added by Vivek - 13072006 */
    mmi_brw_push_free_service_value_struct(&g_mmi_brw_push_cntx.current_service_message);

    /* Edited By Vivek - 5 July 2006 */
    /* DisplayPopup((PU8) GetString(STR_GLOBAL_DONE), IMG_GLOBAL_DELETED, 1, UI_POPUP_NOTIFYDURATION_TIME, SUCCESS_TONE); */
    /* Edited by Vivek - 02082006. Now instead of displaying the image IMG_GLOBAL_DELETED
       we are displaying IMG_GLOBAL_ACTIVATED as we are doing in other part of browser */
    DisplayPopup((PU8) GetString(STR_GLOBAL_DONE), IMG_GLOBAL_ACTIVATED, 1, UI_POPUP_NOTIFYDURATION_TIME, SUCCESS_TONE);

    if (IsScreenPresent(SCR_ID_BRW_SERVICE_INBOX))
    {
        DeleteUptoScrID(SCR_ID_BRW_SERVICE_INBOX);
    }
    else    /* when message is deleted from idle screen */
    {
        mmi_brw_entry_service_inbox();
        DeleteScreenIfPresent(SCR_ID_BRW_PUSH_MESSAGE_READ_OPTIONS);
        DeleteScreenIfPresent(SCR_ID_BRW_NEW_PUSH_MESSAGE_IND);
        DeleteScreenIfPresent(SCR_ID_BRW_READ_SERVICE_MESSAGE);
    }

    /* Save to persistant storage */
    mmi_brw_save_current_push_info();
}
Esempio n. 9
0
static void i51CheckPlatQuit(void)
{

	//	author : Miki
	//	since : 2011.8.30
	// 	(C) PKIG Tech. Co., Ltd.
	
#if( I51_MTK_VS >= VS_11B_1212 )
	MMI_ID ParentScreen,Currentscreen;

	mmi_frm_get_active_scrn_id(&ParentScreen,&Currentscreen);
    if (Currentscreen != I51_SCREEN_ID )
    {
        if(!mmi_frm_group_is_present(I51_GROUP_ID))//!mmi_frm_scrn_is_present(I51_GROUP_ID,I51_SCREEN_ID,MMI_FRM_NODE_EXCLUDE_ACTIVE_SCRN_FLAG) )//!IsScreenPresent (I51_SCREEN_ID) )//2??úàúê·?á???D 
        {         
			if(l_InI51) 
            {   
                i51AdeOsLog( 0, "PORT : i51CheckPlatQuit , check find NoneScreen's i51");          
                i51KernelExit( i51_KERNEL_EXIT_DAP );        
            }
        }
        else
        {
            gui_start_timer( 100, i51CheckPlatQuit );
        }
    } 
#else	
    if ( GetActiveScreenId() != I51_SCREEN_ID )//不是当前屏幕
    {
        if( !IsScreenPresent (I51_SCREEN_ID) )//不在历史屏幕中
        {           
            if(l_InI51) 
            {   
                i51AdeOsLog( 0, "PORT : i51CheckPlatQuit , check find NoneScreen's i51");          
                i51KernelExit( i51_KERNEL_EXIT_DAP );        
            }
        }
        else
        {
            gui_start_timer( 100, i51CheckPlatQuit );
        }
    }    	
#endif
}
Esempio n. 10
0
/*****************************************************************************
 * FUNCTION
 *  mmi_java_is_in_voice_call
 * DESCRIPTION
 *  this function use to detect taht current have voice call or not
 * PARAMETERS
 *  void
 * RETURNS
 *  MMI_TRUE or MMI_FALSE
 *****************************************************************************/
BOOL mmi_java_is_in_voice_call(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/

    if( AlmIsTonePlaying())
    {
        return MMI_TRUE;
    }

    if ( isInCall() == MMI_TRUE )
    {
        /*
            wap call connecting  => true
            wap call connected => false
            other call connecting/connected => true
        */
        if( GetWapCallPresent() )
        {
            return MMI_FALSE;
        }
        else
        {
            return MMI_TRUE;
        }
    }
    else
    {
        if (GetActiveScreenId()==GetCmMarkerScrnID() ||
            IsScreenPresent(GetCmMarkerScrnID()))
        {
            /* special case here, sometimes CM change state too early
                but still have call marker in the history */
            return MMI_TRUE;
        }

        return MMI_FALSE;
    }
}
Esempio n. 11
0
iBOOL i51PortReleaseFrontEnd ()
{

	//	author : Jelo 
	//	since : 2011.10.19
	// 	(C) PKIG Tech. Co., Ltd.
	#if( I51_MTK_VS >= VS_11B_1212 )
		MMI_ID ParentScreen,Currentscreen;
	#endif
	
    i51AdeOsLog(i51_LOG_SC, "PORT : i51PortReleaseFrontEnd , Release Front-End S");
    l_InI51 = iFALSE;	

	#if( I51_MTK_VS >= VS_11B_1212 )
	
		mmi_frm_get_active_scrn_id(&ParentScreen,&Currentscreen);
    if( Currentscreen == I51_SCREEN_ID )
    {
         GoBackHistory();
    }
    if( mmi_frm_group_is_present(I51_GROUP_ID)) 
    {
        mmi_frm_group_close(I51_GROUP_ID); 
    }
	#else
	
    if( GetActiveScreenId() == I51_SCREEN_ID )
        GoBackHistory();
    if( IsScreenPresent (I51_SCREEN_ID) )//在历史屏幕中                             
        DeleteScreenIfPresent (I51_SCREEN_ID); 
	
	#endif
	
    i51ExitDo();
    i51AdeOsLog(i51_LOG_SC, "PORT : i51PortReleaseFrontEnd , Release Front-End E");
    return iTRUE ;
	
}
Esempio n. 12
0
/*****************************************************************************
 * FUNCTION
 *  mmi_ucm_app_make_call_with_source
 * DESCRIPTION
 *  Sample code
 * PARAMETERS
 *  call_type       [IN]            Call type
 *  num_uri			[IN]			Number or URI in unicode string
 * RETURNS
 *  void
 *****************************************************************************/
MMI_BOOL mmi_ucm_app_make_call_with_source(mmi_ucm_module_origin_enum module_id, mmi_ucm_call_type_enum call_type, U8 *num_uri)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    S32 unicodeLen = 0;
    U8* num_uri_ascii = NULL;
    MMI_BOOL result = TRUE;
    
    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if ((mmi_bootup_get_active_flight_mode()))
    {
        result = FALSE;
        return result;
    }
#ifdef __MMI_WLAN_FEATURES__
    else if ((mmi_netset_get_active_preferred_mode() == P_WLAN_ONLY) && (call_type != MMI_UCM_VOIP_CALL_TYPE))
    {
        result = FALSE;
        return result;
    }
#endif /* __MMI_WLAN_FEATURES__ */
    else if (mmi_ucm_is_pending_action() == MMI_TRUE)
    {
        result = FALSE;
        return result;
    }

    unicodeLen = (MMI_UCM_MAX_NUM_URI_LEN > mmi_ucs2strlen((S8*)num_uri)) ? (mmi_ucs2strlen((S8*)num_uri)) : (MMI_UCM_MAX_NUM_URI_LEN - 1);
    num_uri_ascii = OslMalloc((unicodeLen + 1) * ENCODING_LENGTH);
    memset(num_uri_ascii, 0, (unicodeLen + 1) * ENCODING_LENGTH);
    mmi_ucs2_n_to_asc((S8*)num_uri_ascii, (S8*)num_uri, unicodeLen * ENCODING_LENGTH);
    
    /* do not check sos number for SAT call */
    if ((module_id != MMI_UCM_FROM_SAT) && (mmi_ucm_is_sos_number(call_type, num_uri_ascii) == TRUE))
    {
        if (mmi_ucm_is_sos_in_call_list() == FALSE)
        {
        #if defined(__MMI_DUAL_SIM_MASTER__)
            mmi_ucm_set_call_channel(call_type);
        #endif /* __MMI_DUAL_SIM_MASTER__ */

            g_ucm_p->mo_info.module_id = module_id;
            g_ucm_p->mo_info.dial_type = call_type;
            memset(g_ucm_p->mo_info.dial_num.num_uri, 0, MMI_UCM_MAX_NUM_URI_LEN);
            mmi_ucs2_n_to_asc((S8*)g_ucm_p->mo_info.dial_num.num_uri, (S8*)num_uri, unicodeLen * ENCODING_LENGTH);

            /* If CSD number is ECC, the CSD call fails while ECC voice should be dialed. */
            if (call_type & MMI_UCM_CSD_CALL_TYPE)
            {
                g_ucm_p->mo_info.dial_type = MMI_UCM_VOICE_CALL_TYPE;
            
                if (g_ucm_p->mo_info.module_id == MMI_UCM_FROM_ABM)
                {
                    g_ucm_p->mo_info.module_id = MMI_UCM_FROM_IDLE;
                }
                result = FALSE;
            }
            else if (call_type & MMI_UCM_CSD_CALL_TYPE_SIM2)
            {
                g_ucm_p->mo_info.dial_type = MMI_UCM_VOICE_CALL_TYPE_SIM2;

                if (g_ucm_p->mo_info.module_id == MMI_UCM_FROM_ABM)
                {
                    g_ucm_p->mo_info.module_id = MMI_UCM_FROM_IDLE;
                }
                result = FALSE;                
            }

            if (mmi_ucm_app_total_call(MMI_UCM_CALL_TYPE_ALL) != 0)
            {
                PRINT_INFORMATION("\n[mmi_ucm_app_make_call_with_source] End All Calls before Dial SOS\n");
                g_ucm_p->mo_info.is_wait_dial = TRUE;
                mmi_ucm_end_all_action();
            }
            else
            {            
                PRINT_INFORMATION("\n[mmi_ucm_app_make_call_with_source] Directly Dial SOS\n");
                g_ucm_p->mo_info.is_wait_dial = TRUE;
                mmi_ucm_dial_action();
            }
        }
        else /* not allow to dial this sos number */
        {
            result = FALSE;
        }        
    }
    else /* not a sos number */
    {
        if (!strlen((S8*)num_uri_ascii)) /* empty number */
        {
            result = FALSE;
        }
        else if ((!mmi_bootup_is_sim_valid()) && 
                 (call_type != MMI_UCM_VOIP_CALL_TYPE) && 
                 !(call_type & MMI_UCM_SIM2_CALL_TYPE_ALL))
        {
            result = FALSE;
        }
    #if defined(__MMI_DUAL_SIM_MASTER__)
        else if ((!mmi_bootup_is_sim2_valid()) &&
                 (call_type & MMI_UCM_SIM2_CALL_TYPE_ALL))
        {
            result = FALSE;
        }
    #endif /* __MMI_DUAL_SIM_MASTER__ */
        /* Data/CSD call priority is lower than voice call priority. */
        else if (mmi_ucm_app_total_call(MMI_UCM_CALL_TYPE_ALL) && (call_type & (MMI_UCM_CALL_TYPE_DATA_CSD_ALL)))
        {
            result = FALSE;
        }
        else if ((mmi_ucm_is_busy() == FALSE) && (mmi_ucm_dial_option() == TRUE))
        {
        #if defined(__MMI_DUAL_SIM_MASTER__)
            mmi_ucm_set_call_channel(call_type);
        #endif /* __MMI_DUAL_SIM_MASTER__ */

            g_ucm_p->mo_info.module_id = module_id;
            g_ucm_p->mo_info.dial_type = call_type;
            memset(g_ucm_p->mo_info.dial_num.num_uri, 0, MMI_UCM_MAX_NUM_URI_LEN);
            mmi_ucs2_n_to_asc((S8*)g_ucm_p->mo_info.dial_num.num_uri, (S8*)num_uri, unicodeLen * ENCODING_LENGTH);
        
            if ((g_ucm_p->mo_info.dial_type & MMI_UCM_VOICE_CALL_TYPE_ALL) && 
                (SS_OPERATION == applib_ss_string_parsing((U8*)g_ucm_p->mo_info.dial_num.num_uri, (U8)strlen((S8*)g_ucm_p->mo_info.dial_num.num_uri))))
            {
                /* dial directly if SS operation or SIM operation */
                mmi_ucm_dial_action();
            }
            else if (mmi_ucm_app_total_call(MMI_UCM_CALL_TYPE_DATA_CSD_ALL) && (g_ucm_p->mo_info.dial_type & MMI_UCM_CALL_TYPE_NO_DATA_CSD))
            {
                /* normal call and data call cannot co-exist */
                PRINT_INFORMATION("\n[mmi_ucm_app_make_call_with_source] End All Calls before Dial %d\n", g_ucm_p->mo_info.dial_type);
                g_ucm_p->mo_info.is_wait_dial = TRUE;
                mmi_ucm_end_all_action();
            }
            else if (mmi_ucm_get_active_group(MMI_UCM_CALL_TYPE_ALL, FALSE, g_ucm_p->call_misc.index_list) == MMI_UCM_MAX_ACTIVE_TAB)
            {
                mmi_ucm_hold_and_dial_action();
            }
            else
            {
                mmi_ucm_dial_action();
            }
            result = TRUE;
        }
        else
        {
            result = FALSE;
        }
    }

    if (result == TRUE)
    {
        /* abort auto redial if necessary */
        if (GetExitScrnID() == SCR_ID_UCM_AUTO_REDIAL ||
            IsScreenPresent(SCR_ID_UCM_AUTO_REDIAL))
        {
            StopTimer(UCM_AUTO_REDIAL_TIMER);
            ClearDelScrnIDCallbackHandler(SCR_ID_UCM_AUTO_REDIAL, NULL);
            
            if (GetExitScrnID() == SCR_ID_UCM_AUTO_REDIAL)
            {
                EntryNewScreen(GLOBAL_SCR_DUMMY, NULL, NULL, NULL);
            }

            DeleteScreenIfPresent(SCR_ID_UCM_AUTO_REDIAL);
            if (g_ucm_p->auto_redial.abort_hdlr)
            {
                g_ucm_p->auto_redial.abort_hdlr();                
            }
            memset(&g_ucm_p->auto_redial, 0, sizeof(mmi_ucm_auto_redial_struct));
        }
    }

    OslMfree(num_uri_ascii);
    return result;
}
Esempio n. 13
0
/*****************************************************************************
 * FUNCTION
 *  mmi_ucm_app_make_call
 * DESCRIPTION
 *  Sample code
 * PARAMETERS
 *  call_type       [IN]            Call type
 *  num_uri			[IN]			Number or URI in unicode string
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_ucm_app_make_call(mmi_ucm_call_type_enum call_type, U8 *num_uri)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    S32 unicodeLen = 0;

#ifdef __MMI_BG_SOUND_EFFECT__
    U8 num_type = 0;
#endif /* __MMI_BG_SOUND_EFFECT__ */

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/    
    unicodeLen = (MMI_UCM_MAX_NUM_URI_LEN > mmi_ucs2strlen((S8*)num_uri)) ? (mmi_ucs2strlen((S8*)num_uri)) : (MMI_UCM_MAX_NUM_URI_LEN - 1);
    g_ucm_p->mo_info.module_id = MMI_UCM_FROM_IDLE;
    g_ucm_p->mo_info.dial_type = call_type;
    memset(g_ucm_p->mo_info.dial_num.num_uri, 0, MMI_UCM_MAX_NUM_URI_LEN);
    mmi_ucs2_n_to_asc((S8*)g_ucm_p->mo_info.dial_num.num_uri, (S8*)num_uri, unicodeLen * ENCODING_LENGTH);

#ifdef __MMI_BG_SOUND_EFFECT__

    num_type = applib_ss_string_parsing((U8*)g_ucm_p->mo_info.dial_num.num_uri, (U8)unicodeLen);

    if (mmi_bgsnd_common_get_mo_bgs_permit_state() &&
        ((call_type & MMI_UCM_VOICE_CALL_TYPE_ALL) || (call_type == MMI_UCM_VOIP_CALL_TYPE)) &&
        mmi_ucm_app_total_call(MMI_UCM_CALL_TYPE_NO_CSD) == 0 &&
        mmi_ucm_emergency_call_present() == FALSE &&
        num_type == CC_OPERATION &&
    #ifdef __CTM_SUPPORT__
        (mmi_gsm_ctm_is_on() == FALSE) &&
    #endif /* __CTM_SUPPORT__ */ 
        mmi_ucm_is_sos_number(g_ucm_p->mo_info.dial_type, g_ucm_p->mo_info.dial_num.num_uri) == FALSE &&
        mmi_bootup_get_active_flight_mode() == FLIGHTMODE_OFF)
    {        
        if (g_ucm_p->call_misc.is_bgs_selected == FALSE)
        {
            /* select background sound effect */
            mmi_ucm_entry_bgs_effect_select();

            return;
        }
        else
        {
            /* reset the flag and continue outgoing call procedure */
            g_ucm_p->call_misc.is_bgs_selected = FALSE;

            /* delete idle dial pad related screens */
            mmi_idle_delete_dialpad_from_history();
        }
    }
#endif /* __MMI_BG_SOUND_EFFECT__ */
    
    mmi_ucm_outgoing_call_sendkey();

    /* abort auto redial if necessary */
    if (GetExitScrnID() == SCR_ID_UCM_AUTO_REDIAL || IsScreenPresent(SCR_ID_UCM_AUTO_REDIAL))
    {
        StopTimer(UCM_AUTO_REDIAL_TIMER);
        ClearDelScrnIDCallbackHandler(SCR_ID_UCM_AUTO_REDIAL, NULL);
        
        if (GetExitScrnID() == SCR_ID_UCM_AUTO_REDIAL)
        {
            EntryNewScreen(GLOBAL_SCR_DUMMY, NULL, NULL, NULL);
        }

        DeleteScreenIfPresent(SCR_ID_UCM_AUTO_REDIAL);
        if (g_ucm_p->auto_redial.abort_hdlr)
        {
            g_ucm_p->auto_redial.abort_hdlr();                
        }
        memset(&g_ucm_p->auto_redial, 0, sizeof(mmi_ucm_auto_redial_struct));
    }
}
Esempio n. 14
0
/*****************************************************************************
 * FUNCTION
 *  mmi_netset_entry_user_ctrl_plmn_add_data
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_netset_entry_user_ctrl_plmn_add_data(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 *guiBuffer;          /* Buffer holding history data */
    U8 *inputBuffer;        /* added for inline edit history */
    U16 inputBufferSize;    /* added for inline edit history */
    U16 IconList[] = {IMG_GLOBAL_L1, 0, IMG_GLOBAL_L2, 0};

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    EntryNewScreen(SCR_ID_NETSET_USER_CTRL_PLMN_ADD, mmi_netset_exit_user_ctrl_plmn_add_data, NULL, NULL);

    guiBuffer = GetCurrGuiBuffer(SCR_ID_NETSET_USER_CTRL_PLMN_ADD);
    inputBuffer = GetCurrNInputBuffer(SCR_ID_NETSET_USER_CTRL_PLMN_ADD, &inputBufferSize);      /* added for inline edit history */

    InitializeCategory57Screen();
    mmi_netset_set_user_ctrl_plmn_add_inline_editor();

    if (inputBuffer != NULL)
    {
        SetCategory57Data(wgui_inline_items, 4, inputBuffer);
    }

    ClearHighlightHandler();

    if (IsScreenPresent(SCR_ID_NETSET_USER_CTRL_PLMN_LIST))
    {
        ShowCategory57Screen(
            STR_GLOBAL_ADD,
            MAIN_MENU_TITLE_SETTINGS_ICON,
            STR_GLOBAL_OK,
            IMG_GLOBAL_OK,
            STR_GLOBAL_BACK,
            IMG_GLOBAL_BACK,
            4,
            IconList,
            wgui_inline_items,
            1,
            guiBuffer);
    }
    else
    {
        ShowCategory57Screen(
            STR_GLOBAL_ADD,
            MAIN_MENU_TITLE_SETTINGS_ICON,
            STR_GLOBAL_OK,
            IMG_GLOBAL_OK,
            STR_GLOBAL_BACK,
            IMG_GLOBAL_BACK,
            4,
            IconList,
            wgui_inline_items,
            3,
            guiBuffer);
    }

    SetCategory57RightSoftkeyFunctions(mmi_netset_save_user_ctrl_plmn_confirm, GoBackHistory);

    DeleteScreenIfPresent(SCR_ID_NETSET_UNKNOWN_PLMN_MSG);
}
Esempio n. 15
0
/*****************************************************************************
 * FUNCTION
 *  ShowCallManagementErrorMessage
 * DESCRIPTION
 *  This function shows the failure in case of call management
 *  
 *  This is a part of other hardware application.
 * PARAMETERS
 *  cause       [IN]        
 *  TRUE(?)     [OUT]       Or FALSE
 * RETURNS
 *  pBOOL(?)
 *****************************************************************************/
void ShowCallManagementErrorMessage(U16 cause)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U16 error_code, img_id = IMG_ERROR_NOTIFY;
    U16 tone_id = ERROR_TONE_IN_CALL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    MMI_TRACE(MMI_TRACE_G5_CM, MMI_CM_FUNC_ShowCallManagementErrorMessage);

    if (GetCallEndCause() == 0)
    {
        SetCallEndCause(cause);
    }
    SetCbackAfterSS(NULL);
    if (GetNotifySSFlag())
    {
        MMI_TRACE(MMI_TRACE_G5_CM, MMI_CM_INFO_ShowErrorAfterNotifySS);
        SetCbackAfterSS((FuncPtr) ShowCallManagementErrorMessage);
        return;
    }

    EntryNewScreen(CM_SCR_ERR_MSG, ExitScrCMErrMsg, NULL, NULL);

    switch (GetCallEndCause())
    {
        case ERR_UNASSIGNED_NUM:
        	tone_id = NUM_UNOBTAIN_TONE;
        case ERR_INVALID_NUMBER_FORMAT:
            error_code = ERROR_UNRECOGNIZED_NUMBER;
            break;

        case ERR_SWITCH_EQUIPMENT_CONGESTION:
			tone_id = CONGESTION_TONE;
        case ERR_CALL_REJECTED:
			tone_id= AUTH_FAIL_TONE;
        case ERR_NO_ROUTE_TO_DESTINATION:
        case ERR_DEST_OUT_OF_ORDER:
        case ERR_FACILITY_REJECT:
        case ERR_TEMPORARY_FAILURE:
        case ERR_SER_UNAVAILABLE:
        case ERR_BEARER_SER_UNIMPL:
        case ERR_INVALID_TI_VALUE:
        case ERR_USER_NOT_IN_CUG:
        case ERR_INCOMPATIBLE_DEST:
        case ERR_SEMANTIC_ERR:
        case ERR_INTER_WRK_UNSPECIFIED:
        case ERR_CSMCC_ILLEGAL_CALL_ID:
        case ERR_CSMCC_CALL_ALLOC_FAIL:
        case ERR_CSMCC_BC_FILL_FAIL:
        case ERR_CSMCC_ILLEGAL_BC:
        case ERR_CSMCC_MODIFY_ACTUAL_MODE:
        case ERR_CSMCC_DATA_ACT_FAIL:
        case ERR_MAC_FAILURE:
        case ERR_SYNC_FAILURE:
        case ERR_CONGESTION:
        case ERR_ILLEGAL_MS:
        case ERR_ILLEGAL_ME:
        case ERR_CM_MM_CM_ENQUEUE_FAIL:
        case ERR_CM_MM_NOT_UPDATED:
        case ERR_CM_MM_STATE_NOT_ALLOWED_CM:
            error_code = ERROR_FAIL;
            break;

        case ERR_CHANNEL_UN_ACCP:
        case ERR_NO_CIRCUIT_CHANNEL_AVAIL:
        case ERR_NETWORK_OUT_OF_ORDER:
        case ERR_QOS_UNAVAIL:
        case ERR_INVALID_TRANSIT_NW_SEL:
        case ERR_CSMCC_NO_RESPONSE_FROM_NW:
        case ERR_NETWORK_FAILURE:
        case ERR_CM_MM_RR_CONN_RELEASE:
        case ERR_CM_SS_SYSTEMFAILURE:
            error_code = ERROR_NETWORK_FAIL;
            break;

        case ERR_REQUESTED_CKT_CHANEL_NOT_AVIL:
        case ERR_RESOURCE_UNAVAIL_UNSPECIFIED:
        case ERR_CM_MM_AUTH_FAILURE:
            error_code = ERROR_NETWORK_NOT_AVAILABLE;
            break;

        case ERR_OPR_DTR_BARRING:
        case ERR_CALL_BARRED:
        case ERR_IC_BAR_CUG:
        case ERR_BEARER_CAP_NOT_AVAIL:
        case ERR_CM_MM_ACCESS_BARRED:
            error_code = INCOMING_DEFAULT_ERROR;
            break;

        case ERR_USER_BUSY:
        {
            /* voice call shows user busy, csd call shows network busy */
            if (cm_p->state_info.CallStructureForCallLog.call_type == CM_VOICE_CALL)
            {
                error_code = ERROR_USER_BUSY;
            }
            else
            {
                error_code = ERROR_BUSY_NETWORK;
            }
        }
            break;

        case ERR_NO_USER_RESPONDING:
            error_code = ERROR_NOT_RESPONDING;
            break;

        case ERR_NO_ANSWER_ON_ALERT:
            error_code = ERROR_NO_ANSWER;
            break;

        case ERR_ACM_EXCEEDED:
            error_code = ERROR_ACM_EXCEEDED;
            break;

        case ERR_REQ_FACILITY_UNAVAIL:
        case ERR_IE_NOT_IMPLEMENTED:
        case ERR_CONDITIONAL_MM_IE_ERROR:
        case ERR_CM_MM_ASSIGNMENT_REJECT:
            error_code = ERROR_UNAVAILABLE;
            break;

        case ERR_CSMCC_ILLEGAL_DTMF_TONE:
        case ERR_CSMCC_CALL_ACCEPT_NOT_ALLOW:
        case ERR_MS_ID_NOT_DERIVED_BY_NW:
        case ERR_IMPLICIT_DETACH:
        case ERR_MSG_NOT_COMPAT_WITH_PROTO_STATE:
        case ERR_PROTO_ERROR_UNSPECIFIED:
            error_code = ERROR_UNEXPECTED_ERROR;
            break;

        case ERR_IMSI_UNKNOWN_IN_HLR:
        case ERR_IMSI_UNKNOWN_IN_VLR:
        case ERR_CM_MM_IMSI_DETACH:
            error_code = ERROR_IMSI_UNKNOWN;
            break;

        case ERR_IMEI_NOT_ACCEPTED:
            error_code = ERROR_IMEI_ERROR;
            break;

        case ERR_GPRS_NOT_ALLOWED:
        case ERR_GPRS_NON_GPRS_NOT_ALLOWED:
            error_code = ERROR_GPRS_NOT_ALLOWED;
            break;

        case ERR_CM_MT_DATA_CALL:
            error_code = ERROR_MT_DATA_CALL;
            break;

        case ERR_REQ_FAC_NOT_SUBS:
        case ERR_PLMN_NOT_ALLOWED:
        case ERR_LOCATION_AREA_NOT_ALLOWED:
        case ERR_ROAMING_AREA_NOT_ALLOWED:
        case ERR_GPRS_NOT_ALLOWED_IN_PLMN:
        case ERR_NO_SUITABLE_CELLS_IN_LA:
        case ERR_MSC_TEMP_NOT_REACHABLE:
        case ERR_CM_MM_ABORT_BY_NW:
            /* case ERR_CM_MM_STATE_NOT_ALLOWED_CM: */
        case ERR_BEARER_CAP_NOT_AUTHORISED:
            error_code = ERROR_NETWORK_NOT_ALLOWED;
            break;

        case ERR_CSMCC_CMD_NOT_ALLOW:
        case ERR_SERV_OPTION_NOT_SUPPORTED:
        case ERR_REQ_SERV_OPTION_NOT_SUBSCRIBED:
        case ERR_SERV_OPTION_TEMP_OUT_OF_ORDER:
        case ERR_CALL_CANNOT_BE_IDENTIFIED:
            error_code = ERROR_COMMAND_NOT_SUPPORTED;
            break;

        case ERR_NO_PDP_CONTEXT_ACTIVATED:
        case ERR_SEMANTICALLY_INCORRECT_MSG:
        case ERR_INVALID_MM_MAND_INFO:
            error_code = ERROR_DATA_ERROR;
            break;

        case ERR_MSG_TYPE_NON_EXISTENT:
        case ERR_MSG_TYPE_INCOMPAT_WITH_PROTO_STATE:
            error_code = ERROR_MESSAGE_TYPE_ERROR;
            break;

        case ERR_ACCESS_CLASS_BARRED:
        case ERR_CM_MM_RANDOM_ACCES_FAILURE:
            error_code = ERROR_ACCESS_FAIL;
            break;

        case ERR_CM_MM_CONN_TIMEOUT:
            error_code = ERROR_TIMER_EXPIRED;
            break;

        case ERR_NORMAL_CALL_CLR:
        case ERR_NORMAL_UNSPECIFIED:
            error_code = STR_CALL_ENDED;
            img_id = IMG_CM_STATE_ENDED;
            break;
        case ERR_L4C_USSD_ABORT:
            error_code = ERROR_USSD_ABORTED;
            break;
        case ERR_CM_MM_RR_NO_SERVICE:
        case ERR_CM_MM_NO_SERVICE:
        case ERR_RESERVED:
        case ERR_NUMBER_CHANGED:
        case ERR_PRE_EMPTION:
        case ERR_NON_SEL_USER_CLEAR:
        case ERR_RES_STATUS_ENQ:
        case ERR_ACCESS_INFO_DISCARDED:
        case ERR_RESTR_DIGITAL_INFO:
        case ERR_SER_OPT_UNIMPL:
        case ERR_INVALID_MANDATORY_INF:
        case ERR_MSG_TYPE_UNIMPL:
        case ERR_MSG_TYPE_NOT_COMPATIBLE:
        case ERR_IE_NON_EX:
        case ERR_COND_IE_ERR:
        case ERR_INCOMP_MESG_WITH_STATE:
        case ERR_RECOVERY_ON_TIMER_EXPIRY:
        case ERR_PROTOCOL_ERR_UNSPECIFIED:
        case ERR_CSMCC_CALL_RE_EST:
        case ERR_RETRY_UPON_ENTRY_INTO_NEWCELL_MIN:
        case ERR_RETRY_UPON_ENTRY_INTO_NEWCELL_MAX:
        case ERR_CM_MM_CAUSE_NONE:
        case ERR_L4C_GEN_CAUSE:
            error_code = INCOMING_DEFAULT_ERROR;
            break;

        case ERR_L4C_FDN_FAIL:
            error_code = ERROR_FDN_FAIL;
            break;

        case NO_ACTIVE_CALL:
            error_code = ERROR_INVALID_COMMAND;
            break;

        case ERR_CM_UNKNOWN:
            error_code = INCOMING_UNKNOWN_ERROR;
            break;

        default:
            error_code = INCOMING_DEFAULT_ERROR;
            break;
    }   /* End of Switch */

    ShowCategory62Screen(error_code, img_id, NULL);

    TurnOnBacklight(1);

    SetCallEndCause(0);

    if (GetTotalActiveCallCount() == 0 && GetTotalHoldCallCount() == 0)
    {
        /* only play error tone when not in-call */
        playRequestedTone(tone_id);
        SetErrorToneFlag(tone_id);
    }

    if (cm_p->redial_info.RedialTimer == TRUE)
    {
        /* cannot press key before pop up disappear,
           buy more time for call log writing */
        DeleteSubLCDScreen(SUB_LCD_SCR1001_CM_OUTGOINGCALLSCREEN);
        GoBackSubLCDHistory();
        if (IsScreenPresent(CM_SCR_MARKER))
        {
            DeleteUptoCmScreen();
        }
        DeleteScreenIfPresent(CM_SCR_MARKER);
        ClearInputEventHandler(MMI_DEVICE_ALL);
        SetPOPUpFlag(TRUE);
        SetKeyHandler(ResetRedialAndGoBack, KEY_END, KEY_EVENT_DOWN);
        cm_p->redial_info.ErrRedialScreen = TRUE;
        StartTimer(CM_NOTIFYDURATION_TIMER, CM_NOTIFY_TIMEOUT, ShowRedialScreen);
    }
    else
    {
        /* cannot press key before pop up disappear,
           buy more time for call log writing */
        ClearInputEventHandler(MMI_DEVICE_ALL);
        SetKeyHandler((FuncPtr) GoBackfromNotifyScr, KEY_END, KEY_EVENT_DOWN);
        SetPOPUpFlag(TRUE);
        StartTimer(CM_NOTIFYDURATION_TIMER, CM_NOTIFY_TIMEOUT, GoBackfromNotifyScr);
    }

}
Esempio n. 16
0
void MTPNP_PFAL_Rearrange_RootScreen(DUALMODE_SWITCH_STATUS *dm_switch)
{
    extern MTPNP_UINT16 simErrorDisplayString;
    DUALMODE_SWITCH_STATUS tmp_dm_switch;

    MTPNP_PFAL_Refresh_Slave_Idle_ServiceArea();
    memcpy(&tmp_dm_switch, dm_switch, sizeof (DUALMODE_SWITCH_STATUS));

    if (tmp_dm_switch.src_status == MTPNP_FLIGHTMODE_CONFIG && (g_pwr_context.CurrentServiceType == FULL_SERVICE || g_pwr_context_2.CurrentServiceType == FULL_SERVICE))
    {
        /* play camp on tone */
        g_pwr_context.IsCampOnTonePlayed = 1;
        g_pwr_context_2.IsCampOnTonePlayed = 1;
        mmi_phnset_flight_mode_camp_on_tone_hdlr();
    }

    if (g_idle_context.IsOnIdleScreen || g_idle_context.IsOnSimErrorScreen)
    {
        /* force to add root screen to history if current is on root screen */
        EntryNewScreen(GLOBAL_SCR_DUMMY, NULL, NULL, NULL);
    }

    if (MTPNP_AD_Get_Card1Status() != MTPNP_AD_SIMCARD_ABSENT)
    {
        if (MTPNP_AD_Get_Card2Status() != MTPNP_AD_SIMCARD_ABSENT)
        {
            // case 4, 8 ,12
            // still idle screen
            if ((MTPNP_AD_Get_Startup_Mode() == MTPNP_AD_NVRAM_CARD1 && MTPNP_PFAL_Is_Card1CHVBlocked()) || 
                (MTPNP_AD_Get_Startup_Mode() == MTPNP_AD_NVRAM_CARD2 && MTPNP_PFAL_Is_Card2CHVBlocked()))
            {
                simErrorDisplayString = STR_SIM_BLOCK_MSG;
                HistoryReplace(IDLE_SCREEN_ID, SCR_SIM_BLOCK, EntryScrnSimBlockRsp);
            }
            else
            {
                HistoryReplace(SCR_SIM_BLOCK, IDLE_SCREEN_ID, EntryIdleScreen);
            }
        }
        else
        {
            // case 2, 6 ,10
            if (MTPNP_AD_Get_Startup_Mode() == MTPNP_AD_NVRAM_CARD2)
            {
                simErrorDisplayString = STR_SIM_INSERTION_MSG;
                HistoryReplace(IDLE_SCREEN_ID, SCR_SIM_INSERTION, EntryScrnSimErrorScreen);
                HistoryReplace(SCR_SIM_BLOCK, SCR_SIM_INSERTION, EntryScrnSimErrorScreen);
            }
            else
            {
                if (MTPNP_AD_Get_Startup_Mode() == MTPNP_AD_NVRAM_CARD1 && MTPNP_PFAL_Is_Card1CHVBlocked())
                {
                    simErrorDisplayString = STR_SIM_BLOCK_MSG;
                    HistoryReplace(IDLE_SCREEN_ID, SCR_SIM_BLOCK, EntryScrnSimBlockRsp);
                    HistoryReplace(SCR_SIM_INSERTION, SCR_SIM_BLOCK, EntryScrnSimBlockRsp);
                }
                else
                {
                    HistoryReplace(SCR_SIM_INSERTION, IDLE_SCREEN_ID, EntryIdleScreen);
                    HistoryReplace(SCR_SIM_BLOCK, IDLE_SCREEN_ID, EntryIdleScreen);
                }
            }
        }
    }
    else
    {
        if (MTPNP_AD_Get_Card2Status() != MTPNP_AD_SIMCARD_ABSENT)
        {
            // case 3, 7 ,11
            if (MTPNP_AD_Get_Startup_Mode() == MTPNP_AD_NVRAM_CARD1)
            {
                simErrorDisplayString = STR_SIM_INSERTION_MSG;
                HistoryReplace(IDLE_SCREEN_ID, SCR_SIM_INSERTION, EntryScrnSimErrorScreen);
                HistoryReplace(SCR_SIM_BLOCK, SCR_SIM_INSERTION, EntryScrnSimErrorScreen);
            }
            else
            {
                if (MTPNP_AD_Get_Startup_Mode() == MTPNP_AD_NVRAM_CARD2 && MTPNP_PFAL_Is_Card2CHVBlocked())
                {
                    simErrorDisplayString = STR_SIM_BLOCK_MSG;
                    HistoryReplace(IDLE_SCREEN_ID, SCR_SIM_BLOCK, EntryScrnSimBlockRsp);
                    HistoryReplace(SCR_SIM_INSERTION, SCR_SIM_BLOCK, EntryScrnSimBlockRsp);
                }
                else
                {
                    HistoryReplace(SCR_SIM_INSERTION, IDLE_SCREEN_ID, EntryIdleScreen);
                    HistoryReplace(SCR_SIM_BLOCK, IDLE_SCREEN_ID, EntryIdleScreen);
                }
            }
        }
        else
        {
            // case 1, 5 ,7
            // still insert sim screen
            if (MTPNP_AD_Get_Startup_Mode() == MTPNP_AD_NVRAM_CARD1 || MTPNP_AD_Get_Startup_Mode() == MTPNP_AD_NVRAM_CARD2)
            {
                simErrorDisplayString = STR_SIM_INSERTION_MSG;
                HistoryReplace(IDLE_SCREEN_ID, SCR_SIM_INSERTION, EntryScrnSimErrorScreen);
            }
            else
            {
                HistoryReplace(SCR_SIM_INSERTION, IDLE_SCREEN_ID, EntryIdleScreen);
            }
        }
    }

    /* reset all channels because the previous channel may no longer available after mode switch */
    MTPNP_AD_Free_Channel(MTPNP_AD_CALL_CHANNEL);
    MTPNP_AD_Free_Channel(MTPNP_AD_SMS_CHANNEL);
    MTPNP_AD_Free_Channel(MTPNP_AD_DATA_SERVICE_CHANNEL);
    MTPNP_AD_Free_Channel(MTPNP_AD_AUDIO_RECORD);

    /* sim error menu */
    if (IsScreenPresent(IDLE_SCREEN_ID))
    {
        mmi_sim_error_unhide_menu_items();
    }
    else
    {
        mmi_sim_error_hide_menu_items();
    }
}
Esempio n. 17
0
/*****************************************************************************
 * FUNCTION
 *  mmi_syncml_finish_sync_ind
 * DESCRIPTION
 *  Protocol event handler
 * PARAMETERS
 *  info        [IN]            message content
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_syncml_finish_sync_ind(void *info)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    mmi_syncml_finish_sync_ind_struct *local_data = (mmi_syncml_finish_sync_ind_struct*) info;

    U16 string_id = STR_ID_SYNC_DEFAULT_FAIL;
    U16 image_id = IMG_GLOBAL_UNFINISHED;
    U8 tone_id = ERROR_TONE;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (!mmi_syncml_is_phb_sync_now() && !mmi_syncml_is_tdl_sync_now())
    {
        return;
    }

    g_syncml_context.contact_sync_state = 0;
    g_syncml_context.calendar_sync_state = 0;
    g_syncml_context.abort_state = 0;
    g_syncml_context.sync_progress = 0xFF;
    g_syncml_context.contact_send_noc = 0;
    g_syncml_context.contact_send_current = 0;
    g_syncml_context.contact_recv_noc = 0;
    g_syncml_context.contact_recv_current = 0;
    g_syncml_context.calendar_send_noc = 0;
    g_syncml_context.calendar_send_current = 0;
    g_syncml_context.calendar_recv_noc = 0;
    g_syncml_context.calendar_recv_current = 0;

    mmi_syncml_free_vobj_buffer();

    switch (local_data->result)
    {
        /* process local err */
        case SYNCML_LOCAL_DB_FULL:
            string_id = STR_ID_SYNC_LOCALDB_FULL; 
            break;
            
        /* process server err */
        case SYNCML_OK: /* 200 */
            string_id = STR_ID_SYNC_DONE;
            image_id = IMG_GLOBAL_ACTIVATED;
            tone_id = SUCCESS_TONE;
            break;

        case SYNCML_INVALID_CREDENTIAL: /* 401 */
            string_id = STR_ID_SYNC_INVALID_CREDENTIAL;
            break;

        case SYNCML_MISSING_CREDENTIAL: /* 407 */
            string_id = STR_ID_SYNC_MISSING_CREDENTIAL;
            break;

        case SYNCML_PAYMENT_REQUIRED: /* 402 */
            string_id = STR_ID_SYNC_PAYMENT_REQUIRED;
            image_id = IMG_GLOBAL_WARNING;
            tone_id = WARNING_TONE;
            break;

        case SYNCML_CODE_FORBIDDEN: /* 403 */
            string_id = STR_ID_SYNC_CODE_FORBIDDEN;
            break;
            
        case SYNCML_INCOMPLETE_CMD: /* 412 */
            string_id = STR_ID_SYNC_INCOMPLETE_CMD;
            break;
            
        case SYNCML_DEVICE_FULL: /* 420 */
            string_id = STR_ID_SYNC_SVR_DEVICE_FULL;
            break;

        case SYNCML_SERVICE_UNAVAILABLE: /* 503 */
            string_id = STR_ID_SYNC_SERVICE_UNAVAILABLE;
            break;
            
        case SYNCML_DATASTORE_FAIL: /* 510 */
            string_id = STR_ID_SYNC_DATASTORE_FAIL;
            break;
            
        case SYNCML_SVR_FAIL: /* 511 */
            string_id = STR_ID_SYNC_SVR_FAIL;
            break;
            
        case SYNCML_ERR_OCCUR: /* 512 */
            string_id = STR_ID_SYNC_ERR_OCCUR;
            break;

        case SYNCML_PROTOCOL_UNSUPPORT: /* 513 */
            string_id = STR_ID_SYNC_PROTOCOL_UNSUPPORT;
            break;

        case SYNCML_FAIL: /* 500 */
			string_id = STR_ID_SYNC_FAIL;
			break;
		case SYNCML_ABORT_SYNC:
        default:
            break;
    }

    DisplayPopup(
        (U8*) GetString(string_id),
        image_id,
        1,
        UI_POPUP_NOTIFYDURATION_TIME,
        tone_id);

    SetDelScrnIDCallbackHandler(SCR_ID_SYNC_NOW, NULL);

    DeleteScreenIfPresent(SCR_ID_SYNC_ABORT);
    DeleteScreenIfPresent(SCR_ID_SYNC_BACKGROUND_QUERY);

    if (local_data->result == SYNCML_OK)
    {
        /* update the last anchor because of sync completion */
        if (g_syncml_context.applications_to_sync & SYNCML_DB_PHONEBOOK)
        {
            g_syncml_context.last_phb_anchor[g_syncml_context.active_profile - 1] = g_syncml_context.next_phb_anchor;
          
            memcpy(g_syncml_context.svr_contact_ok_cnt, 
                local_data->svr_contact_ok_cnt, 
                sizeof(g_syncml_context.svr_contact_ok_cnt));
            g_syncml_context.svr_contact_ng_cnt = local_data->svr_contact_ng_cnt;
        }
        if (g_syncml_context.applications_to_sync & SYNCML_DB_TODOLIST)
        {
            g_syncml_context.last_tdl_anchor[g_syncml_context.active_profile - 1] = g_syncml_context.next_tdl_anchor;
            
            memcpy(g_syncml_context.svr_calendar_ok_cnt, 
                local_data->svr_calendar_ok_cnt, 
                sizeof(g_syncml_context.svr_calendar_ok_cnt));
            g_syncml_context.svr_calendar_ng_cnt = local_data->svr_calendar_ng_cnt;
        }
        mmi_syncml_update_settings_to_nvram();
        /* sync report */
        if (g_syncml_context.sync_report_status)
        {
            if (IsScreenPresent(SCR_ID_SYNC_NOW))
            {
                HistoryReplace(SCR_ID_SYNC_NOW, SCR_ID_SYNC_REPORT, mmi_syncml_entry_sync_report);
            }
            else if (isInCall())
            {
                mmi_frm_add_history_before_cm_marker(SCR_ID_SYNC_REPORT, mmi_syncml_entry_sync_report);
            }
            else
            {
                GenericExitScreen(SCR_ID_SYNC_REPORT, mmi_syncml_entry_sync_report);
            }
        }
        else
        {
            DeleteScreenIfPresent(SCR_ID_SYNC_NOW);
        }
    }
    else
    {
        DeleteScreenIfPresent(SCR_ID_SYNC_NOW);
        if (g_syncml_context.applications_to_sync & SYNCML_DB_PHONEBOOK)
        {
            g_syncml_context.next_phb_anchor = g_syncml_context.last_phb_anchor[g_syncml_context.active_profile - 1];
        }
        if (g_syncml_context.applications_to_sync & SYNCML_DB_TODOLIST)
        {
            g_syncml_context.next_tdl_anchor = g_syncml_context.last_tdl_anchor[g_syncml_context.active_profile - 1];
        }
    }

    if (g_syncml_context.applications_to_sync & SYNCML_DB_TODOLIST)
    {
        AlmEnableExpiryHandler(); /* enable alarm */
    }

#ifdef __MMI_SYNCML_SERVER_ALERT_SYNC_SUPPORT__
    mmi_syncml_sas_finish();
#endif
}
Esempio n. 18
0
/*****************************************************************************
 * FUNCTION
 *  jvm_terminating_time_out_hdlr
 * DESCRIPTION
 *  Check if VM is real terminated
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_java_terminating_time_out_hdlr(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/

    kal_trace(TRACE_GROUP_1, MMI_JAVA_TERMINATEING_TIMEOUT, jvm_is_busy());
    ClearDelScrnIDCallbackHandler(SCR_JAVA_VM_TERMINATING, NULL);

    if(mmi_java_go_to_idle_after_terminated)
    {
        mmi_java_go_to_idle_after_terminated = MMI_FALSE;

        if (IsScreenPresent(SCR_SIM_INSERTION))
        {
            DeleteUptoScrID(SCR_SIM_INSERTION);
        }
        else if (IsScreenPresent(SCR_SIM_BLOCK))
        {
            DeleteUptoScrID(SCR_SIM_BLOCK);
        }
        else
        {
            DeleteUptoScrID(IDLE_SCREEN_ID);
        }
    }

#if 0
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
#endif
}