Exemple #1
0
static void meaMvDrViewOk(ctk_screen_handle scrid)
{
    CTK_UNUSED(scrid);
    if (hasMvInstance())
    {
        (void)MEA_SIGNAL_SENDTO(MEA_MV_FSM, MEA_SIG_MV_DEACTIVATE);
        widget_send_update_event_to_wap();
    }
    else
    {
        meaDeleteMvRrDrView();
        if (MEA_STARTUP_MODE_VIEW == meaGetStartupMode() || MEA_STARTUP_MODE_DOWNLOAD == meaGetStartupMode())
            (void)MEA_SIGNAL_SENDTO(MEA_CORE_FSM, MEA_SIG_CORE_TERMINATE_APP);
    }
}
Exemple #2
0
static void meaMvPropViewGoNext(ctk_screen_handle scrid)
{
    CTK_UNUSED(scrid);
    (void)MEA_SIGNAL_SENDTO(MEA_MV_FSM, MEA_SIG_MV_PROP_OK);
    widget_send_update_event_to_wap();
    return;
}
Exemple #3
0
static void meaMvPropViewGoBack(ctk_screen_handle scrid)
{
    CTK_UNUSED(scrid);
    //meaDeleteMvPropView();
    (void)MEA_SIGNAL_SENDTO(MEA_MV_FSM, MEA_SIG_MV_DEACTIVATE);
    widget_send_update_event_to_wap();
    return;
}
Exemple #4
0
/*!
 * \brief Deletes the dialog with dialogHandle .
 *
 * \param dialogHandle The handle of the window that is to be deleted.
 * \return TRUE if the window has been deleted, otherwise FALSE.
 *****************************************************************************/
MSF_BOOL meaDeleteDialog(MsfWindowHandle dialogHandle)
{
    /* Check all the global dialogs */
    if (0 == dialogHandle)
    {
        return TRUE;
    }
    else if (meaConfirmDialog.dialogHandle == dialogHandle)
    {
        /* Confirm dialog */
        (void)MSF_WIDGET_REMOVE(meaGetScreenHandle(), 
            meaConfirmDialog.dialogHandle);
        (void)MSF_WIDGET_RELEASE(meaConfirmDialog.dialogHandle);
        (void)MSF_WIDGET_RELEASE(meaConfirmDialog.okActionHandle);
        (void)MSF_WIDGET_RELEASE(meaConfirmDialog.cancelActionHandle);
        memset(&meaConfirmDialog, 0, sizeof(MeaConfirmDialog));
        return TRUE;
    }
    else if (meaDialog.dialogHandle == dialogHandle)
    {
        (void)MSF_WIDGET_RELEASE(meaDialog.dialogHandle);
        
        /* inform about removal of dialog, if requested */
        if (MEA_NOTUSED_FSM != meaDialog.fsm)
        {
            (void)MEA_SIGNAL_SENDTO(meaDialog.fsm, meaDialog.signal);
        }

        memset(&meaDialog, 0, sizeof(MeaDialog));

        /* Show the next dialog in the list */
        if (!showDialog() && terminating)
        {
            /* Terminate */
#ifdef __UNIFIED_MSG_SUPPORT__
            (void)MEA_SIGNAL_SENDTO(MEA_CORE_FSM, MEA_SIG_CORE_ABNORMAL_TERMINATE_APP);
#else
            (void)MEA_SIGNAL_SENDTO(MEA_CORE_FSM, MEA_SIG_CORE_TERMINATE_APP);
#endif
        }
        return TRUE;
    }
    return FALSE;
}
Exemple #5
0
/*!
 * \brief Signal handler for the multipart mixed message viewer 
 * \param sig The received signal 
 *****************************************************************************/
static void meaMmvMain(MeaSignal *sig)
{
    switch ((MeaMmvSignalId) sig->type)
    {
    case MEA_SIG_MMV_ACTIVATE:     
        if( mmvInstance != NULL )
        {
            break;
        }
        meaMmvCreateInstance(&mmvInstance,(MeaMessage*)sig->p_param);

        /* activate MOB and let it do the browsing of attachments */
#ifdef WAP_SUPPORT //Change string to View
        meaMobActivate(mmvInstance->moList, MEA_MOB_SOP_NO_OP,
            MEA_STR_ID_VIEW, MEA_MMV_FSM, 
            MEA_SIG_MMV_MOB_OP);
#else
        meaMobActivate(mmvInstance->moList, MEA_MOB_SOP_NO_OP,
            MEA_STR_ID_VIEW_ATTACHMENTS, MEA_MMV_FSM, 
            MEA_SIG_MMV_MOB_OP);
#endif /* WAP_SUPPORT */
        break; 
        
    case MEA_SIG_MMV_DEACTIVATE:
        /* Clean-up the mmv instance */
        if (mmvInstance)
        {
            meaMmvDeleteInstance(&mmvInstance);
#ifdef WAP_SUPPORT
            (void)MEA_SIGNAL_SENDTO(MEA_MV_FSM, MEA_SIG_MV_PLAY_DONE);
#endif /* WAP_SUPPORT */
        }
        else
        {
            /* No MMV instance, delete MV directly.*/
            (void)MEA_SIGNAL_SENDTO(MEA_MV_FSM, MEA_SIG_MV_DEACTIVATE);
        }

        break;

    case MEA_SIG_MMV_MOB_OP:
        /* Handle key press from MOB */
        if (MEA_MOB_DEACTIVATED == (MeaMobOperation)sig->u_param1)
        {
            /* User selected Back, or MOB was deactivated */
            (void)MEA_SIGNAL_SENDTO(MEA_MMV_FSM, MEA_SIG_MMV_DEACTIVATE);
        }
        else
        {
            handleMobOp(mmvInstance, (MeaMobOperation)sig->u_param1, 
                sig->i_param, sig->p_param);
        }           
        break;
        
    case MEA_SIG_MMV_MAKE_CALL_RSP:
        /* sig->u_param1 has a TRUE/FALSE result */
        /* deliberately ignored since srh handles error dialogs for us */        
        break;
            
    case MEA_SIG_MMV_NAV_DEACTIVATE:
        /* Displayed menu was deactivated */
        meaUiMmvDeleteMenu();
        break;

    case MEA_SIG_MMV_NAV_SAVE:
        /* Save operation selected from menu */
        saveMo(mmvInstance);
        break;

    case MEA_SIG_MMV_SAVE_DONE:
        /* Save operation finished */
        MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_MEA,
            MAMMV_25089AF8905EFF9704992FDBC00AC3E6, "%s(%d): Save object done\n", 
            __FILE__, __LINE__));
        meaUiMmvDeleteMenu();        
        break;

    case MEA_SIG_MMV_CRH_DONE:
        /* Content router handler finished */
        if (sig->u_param1 != MEA_CRH_VIEW_ATTACH_OK)
        {
            (void)meaShowDialog(MEA_GET_STR_ID(MEA_STR_ID_ATTACH_ERROR), 
                MEA_DIALOG_ALERT);
        }
        meaUiMmvDeleteMenu();
        break;

    case MEA_SIG_MMV_HANDLE_ACTION_RSP:
         /* Content router handler finished */
        if (sig->u_param1 != MEA_CRH_VIEW_ATTACH_OK)
        {
            (void)meaShowDialog(MEA_GET_STR_ID(MEA_STR_ID_ATTACH_ERROR), 
                MEA_DIALOG_ALERT);
        }
        meaUiMmvDeleteMenu();
        break;

    default: 
        MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_MEA,
            MAMMV_5D088F8A8F427BC1516107E77A681AE4, "%s(%d): mmvSignalHandler erroneous signal received(%d)\n", 
            __FILE__, __LINE__, sig->type));       
        break;
    }
    meaSignalDelete(sig);
}
Exemple #6
0
/*****************************************************************************
 * FUNCTION
 *  wap_bgsr_msg_hdlr
 * DESCRIPTION
 *  Message Handler for primitives from BGSR
 * PARAMETERS
 *  ilm_ptr     [in]
 * RETURNS
 *  void
 *****************************************************************************/
void wap_bgsr_msg_hdlr(ilm_struct *ilm_ptr)
{
    switch(ilm_ptr->msg_id)
    {
        case    MSG_ID_MMS_BGSR_CANCEL_SEND_RSP:
        case    MSG_ID_MMS_BGSR_CANCEL_DOWNLOAD_RSP:
        case    MSG_ID_MMS_BGSR_CANCEL_ALL_INBOX_RSP:
          meaDeleteMvStatusView();
#ifdef __UNIFIED_MSG_SUPPORT__
            /* for notification prop/Dr/Rr screen (option menu is from these screen)*/
            (void)MEA_SIGNAL_SENDTO(MEA_MV_FSM, MEA_SIG_MV_DEACTIVATE);
#endif
            /* Bring down the navigation menu */
            (void)MEA_SIGNAL_SENDTO(MEA_MH_FSM, MEA_SIG_MH_NAV_DEACTIVATE);

            (void)MEA_SIGNAL_SENDTO_I(MEA_MH_FSM, MEA_SIG_MH_UPDATE_FOLDER, 
            MEA_FOLDER_NONE);
            
            break;
        case    MSG_ID_MMS_BGSR_SEND_RSP:
          meaDeleteMvStatusView();
#ifdef __UNIFIED_MSG_SUPPORT__
            /* for notification prop/Dr/Rr screen (option menu is from these screen)*/
            (void)MEA_SIGNAL_SENDTO_U(MEA_MV_FSM, MEA_SIG_MV_DEACTIVATE, mmi_mms_bgsr_send_msg_id);
#endif
            /* Bring down the navigation menu */
            (void)MEA_SIGNAL_SENDTO(MEA_MH_FSM, MEA_SIG_MH_NAV_DEACTIVATE);

            (void)MEA_SIGNAL_SENDTO_IUU(MEA_MH_FSM, MEA_SIG_MH_UPDATE_FOLDER, 
            MEA_FOLDER_NONE, mmi_mms_bgsr_send_msg_id, mmi_mms_bgsr_result);
            
            break;
        case    MSG_ID_MMS_BGSR_DOWNLOAD_RSP:
#ifdef MMS_SUPPORT
            mmcIsRecvMMSForJava(mmi_mms_bgsr_download_msg_id);
#endif            
#ifdef MMS_FILE_PROTECT_SUPPORT
            if (genChkSumFile(mmi_mms_bgsr_download_msg_id)==MMS_RESULT_INSUFFICIENT_PERSISTENT_STORAGE)
            {
                meaShowDialog(MEA_GET_STR_ID(MEA_STR_ID_NO_PERSISTENT_STORAGE), MEA_DIALOG_ERROR);
                fldrMgrDeleteMessage(mmi_mms_bgsr_download_msg_id);
            }
#endif /* MMS_FILE_PROTECT_SUPPORT */
          meaDeleteMvStatusView(); 
#ifdef __UNIFIED_MSG_SUPPORT__
            /* for notification prop/Dr/Rr screen (option menu is from these screen)*/
            (void)MEA_SIGNAL_SENDTO_U(MEA_MV_FSM, MEA_SIG_MV_DEACTIVATE, mmi_mms_bgsr_download_msg_id);
#endif
            /* Bring down the navigation menu */
            (void)MEA_SIGNAL_SENDTO(MEA_MH_FSM, MEA_SIG_MH_NAV_DEACTIVATE);
            (void)MEA_SIGNAL_SENDTO_IUU(MEA_MH_FSM, MEA_SIG_MH_UPDATE_FOLDER, 
            MEA_FOLDER_NONE, mmi_mms_bgsr_download_msg_id, mmi_mms_bgsr_result);

            break;
        case    MSG_ID_MMS_BGSR_MOVE_TO_FOLDER_RSP:
            if(mmi_mms_bgsr_result == MMI_MMS_BGSR_RESULT_OK)
            {
                (void)MEA_SIGNAL_SENDTO_UU(MEA_MH_FSM, MEA_SIG_MH_BGSR_MOVE_TO_DRAFT_RSP, 
                0, mmi_mms_bgsr_op_msg_id);
            }
            else
            {
                (void)MEA_SIGNAL_SENDTO_UU(MEA_MH_FSM, MEA_SIG_MH_BGSR_MOVE_TO_DRAFT_RSP, 
                1, mmi_mms_bgsr_op_msg_id);
            }
            break;
        case    MSG_ID_MMS_BGSR_NAV_ACTIVATE_BGSR_RSP:
            {
                (void)MEA_SIGNAL_SENDTO(MEA_MH_FSM, MEA_SIG_MH_NAV_ACTIVATE_BGSR_RSP);
                break;
            }
        case    MSG_ID_MMS_BGSR_DELETE_MSG_RSP:
            if(mmi_mms_bgsr_result == MMI_MMS_BGSR_RESULT_OK ||
               mmi_mms_bgsr_result == MMI_MMS_BGSR_RESULT_FAIL_FILE_NOT_FOUND )
            {
                (void)MEA_SIGNAL_SENDTO_UU(MEA_MH_FSM, MEA_SIG_MH_DELETE_MSG, 
                0, mmi_mms_bgsr_op_msg_id);
            }
            else
            {
                (void)MEA_SIGNAL_SENDTO_UU(MEA_MH_FSM, MEA_SIG_MH_DELETE_MSG, 
                1, mmi_mms_bgsr_op_msg_id);
            }
            break;
        case    MSG_ID_MMS_BGSR_DELETE_ALL_INBOX_RSP:
#ifdef __UNIFIED_MSG_SUPPORT__
            (void)MEA_SIGNAL_SENDTO_UU(MEA_MH_FSM, MEA_SIG_MH_UM_DELETE_ALL_MSG_REQ, 
            0, MEA_FOLDER_INBOX);
#else
            (void)MEA_SIGNAL_SENDTO_UU(MEA_MH_FSM, MEA_SIG_MH_DELETE_ALL_MSG, 
            0, MEA_FOLDER_INBOX);
#endif    
            break;
        case    MSG_ID_MMS_BGSR_DELETE_ALL_OUTBOX_RSP:
#ifdef __UNIFIED_MSG_SUPPORT__
            (void)MEA_SIGNAL_SENDTO_UU(MEA_MH_FSM, MEA_SIG_MH_UM_DELETE_ALL_MSG_REQ, 
            0, MEA_FOLDER_OUTBOX);
#else
            (void)MEA_SIGNAL_SENDTO_UU(MEA_MH_FSM, MEA_SIG_MH_DELETE_ALL_MSG, 
            0, MEA_FOLDER_OUTBOX);
#endif    
            break;
        default:
			break;
    }   
}
Exemple #7
0
/*!
 * \brief Read the header of the message to retrieve a body-part from
 * \param req The content routing request data
 * \return TRUE if successful, otherwise FALSE.
 *****************************************************************************/
static void crhReadBodyPart(CrhRequest *req)
{
    unsigned long size = MEA_CRH_BUFFER_SIZE;
    MmsResult res;
    /* Check if the transaction has been opened */
    if (NULL == req->transactionHandle)
    {
        /* Open transaction */
        if (MMS_RESULT_OK != MMSlib_transactionOpen(MSF_MODID_MEA, 
            &req->transactionHandle))
        {
            crhCleanupInstance(MEA_CRH_VIEW_ATTACH_ERROR);
            return;
        }
    }
    /* Read body-part */
    res = MMSlib_getBodyPart(MSF_MODID_MEA, req->bodyPartToRead->index, 
        req->buffer, &size, &req->msgHandle, 
        &req->transactionHandle);
    /*lint -e{788} */
    switch (res)
    {
    case MMS_RESULT_OK:
    case MMS_RESULT_BUFFER_FULL:
        req->bodyPartToRead->readPos += size;
        req->sizeToWrite = (signed)size;
        switch (crhWriteToPipe())
        {
        case MEA_CRH_WRITE_DONE:
                /* Done */
                crhCleanupInstance(MEA_CRH_VIEW_ATTACH_OK);
            break;
        
        case MEA_CRH_WRITE_ERROR:
                /* Failed */
                crhCleanupInstance(MEA_CRH_VIEW_ATTACH_ERROR);
            break;
        case MEA_CRH_WRITE_MORE_DATA:
            (void)MEA_SIGNAL_SENDTO(MEA_CRH_FSM, MEA_SIG_CRH_READ_BODYPART);
            break;

		case MEA_CRH_PIPE_DELAYED:
            /* A pipe notify is generated when the pipe can be read again */
			break;

        default:
            MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_MEA, 
                MACRH_D5ACEAD4EA5BF3C5AA3960BD4D04ABCE, "(%s) (%d) Unhandled pipe result\n", __FILE__, __LINE__));
            return;
        }
        break;
    case MMS_RESULT_DELAYED:
        meaAsyncRegister(MMSlib_getFileHandle(MSF_MODID_MEA, 
            req->transactionHandle), 
            MEA_CRH_FSM, MEA_SIG_CRH_READ_BODYPART, 0);
        break;
    default:
        /* Major fault */
        crhCleanupInstance(MEA_CRH_VIEW_ATTACH_ERROR);
        MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_MEA, 
            MACRH_AAD39B378E27C013B68735CA95448AD8, "(%s) (%d) erroneous read result\n", __FILE__, __LINE__));
        break;
    }
}
Exemple #8
0
static void crhMain(MeaSignal *sig)
{
    if (NULL == sig)
    {
        meaPanic(TRUE);
        return;
    }
    if ((sig->type != MEA_SIG_CRH_START) && (NULL == crhInstance))
    {
        MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_MEA,
            MACRH_40161465EE234C2892643D1BC846B15A, "(%s) (%d) No instance!\n", __FILE__, __LINE__));
        return;
    }
    switch (sig->type)
    {
    case MEA_SIG_CRH_START:
        if (!crhCreateInstance())
        {
            MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_MEA,
                MACRH_416E055D9FBD63FD20D07D4FB5143070, "(%s) (%d) failed to create instance\n", __FILE__, __LINE__));
            /* Delete signal data */
            MEA_FREE(sig->p_param);
            sig->p_param = NULL;
        }
        /* Init state */
        crhInstance->state = MEA_CRH_STATE_INIT;
        /* Copy signal data */
        crhInstance->bodyPartToRead = (MeaCrhBodyPart *)sig->p_param;
        sig->p_param = NULL;
        crhInitContentRouting(crhInstance->bodyPartToRead->fileName);
        break;
    case MEA_SIG_CRH_FILE_NOTIFY:
        switch (crhInstance->state)
        {
        case MEA_CRH_STATE_INIT:
            /* The previous get header was delayed, try again */
            if (crhGetHeader())
            {
                (void)MEA_SIGNAL_SENDTO(MEA_CRH_FSM, 
                    MEA_SIG_CRH_READ_BODYPART);
                crhInstance->state = MEA_CRH_STATE_PROCESS;
            }
            break;
        case MEA_CRH_STATE_PROCESS:
            /* The previous get body-part was delayed, try again */
            crhReadBodyPart(crhInstance);
            break;
        }
        break;
    case MEA_SIG_CRH_READ_BODYPART:
        /* Read body-part */
        crhReadBodyPart(crhInstance);
        break;
    case MEA_SIG_CRH_CANCEL:
        /* Cleanup if the operation was cancelled */
        crhCleanupInstance(MEA_CRH_VIEW_ATTACH_OK);
        break;
    case MEA_SIG_CRH_NOTIFY:
        /* */
        crhPipeNotify((MSF_INT32)sig->u_param1, (MSF_INT16)sig->i_param);
        break;
    case MEA_SIG_CRH_SEND_RSP:
        /* Check wheter the content can be handled */
        if (MSF_CONTENT_STATUS_FAILED == sig->u_param1)
        {
            /* End content routing */
            crhCleanupInstance(MEA_CRH_VIEW_ATTACH_NO_HANDLER);
        }
        else
        {
            /* Open message */ 
            if (MMS_RESULT_OK != MMSlib_messageOpen(MSF_MODID_MEA, 
                crhInstance->bodyPartToRead->mmsMsgId, 
                crhInstance->bodyPartToRead->fileType , &crhInstance->msgHandle))
            {
                crhCleanupInstance(MEA_CRH_VIEW_ATTACH_ERROR);
                break;
            }
            /* Open transaction */
            if (MMS_RESULT_OK != MMSlib_transactionOpen(MSF_MODID_MEA, 
                &(crhInstance->transactionHandle)))
            {
                crhCleanupInstance(MEA_CRH_VIEW_ATTACH_ERROR);
                break;
            }

            /* Show progress meter */
            /*(void)meaPmViewShow(MEA_STR_ID_SHOW_ATTACH_PROGRESS, FALSE,
                TRUE, MEA_CRH_FSM, MEA_SIG_CRH_CANCEL);*/
            /* Get header */
            if (crhGetHeader())
            {
                /* If the header was successfully retrieved start to read
                   the requested bodypart */
                (void)MEA_SIGNAL_SENDTO(MEA_CRH_FSM, MEA_SIG_CRH_READ_BODYPART);
                crhInstance->state = MEA_CRH_STATE_PROCESS;
            }
        }
        break;
    default:
        MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_MEA, 
            MACRH_39E08AA63293875A5025796ECF3C5CBA, "(%s) (%d) unhandled signal\n", __FILE__, __LINE__));
        break;            
    }
    /* Deallocate the signal */
    meaSignalDelete(sig);
}
Exemple #9
0
void meaTerminateApp(void)
{
    (void)MEA_SIGNAL_SENDTO(MEA_CORE_FSM, MEA_SIG_CORE_TERMINATE_APP);
}