/*
* Copyright 2012 Samsung Electronics Co., Ltd
- *
+ *
* Licensed under the Flora License, Version 1.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
- * http://www.tizenopensource.org/license
- *
+ *
+ * http://www.tizenopensource.org/license
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* limitations under the License.
*/
-#include <TapiEvent.h>
-#include <ITapiSs.h>
-#include <ITapiSat.h>
-#include <TapiCommon.h>
#include "ciss-tapi-request.h"
#include "ciss-parser.h"
#include "ciss-util.h"
#include "ciss-resp.h"
#include "ciss-converter.h"
-typedef struct _EventHandler {
- int event_type;
- unsigned int event_id;
- TelAppCallback func;
-} EventHandler;
+static void __ciss_tapi_ss_rel_complete_cb(TapiHandle *tapi_handle, const char *event_type, void *data, void *user_data);
+static void __ciss_ss_forward_resp_cb(TapiHandle *handle, int result, void *data, void *user_data);
+static void __ciss_ss_barring_resp_cb(TapiHandle *handle, int result, void *data, void *user_data);
+static void __ciss_ss_waiting_resp_cb(TapiHandle *handle, int result, void *data, void *user_data);
+static void __ciss_ss_cli_resp_cb(TapiHandle *handle, int result, void *data, void *user_data);
+static void __ciss_change_ss_barring_pw_resp_cb(TapiHandle *handle, int result, void *data, void *user_data);
+static void __ciss_ss_ussd_resp_cb(TapiHandle *handle, int result, void *data, void *user_data);
EventHandler event_list[] = {
- {TAPI_EVENT_SS_BARRING_CHANGEPASS_CNF, 0, _ciss_on_tapi_ss_event},
- {TAPI_EVENT_SS_BARRING_CNF, 0, _ciss_on_tapi_ss_event},
- {TAPI_EVENT_SS_BARRING_QUERYSTATUS_CNF, 0, _ciss_on_tapi_ss_event},
- {TAPI_EVENT_SS_CLI_QUERYSTATUS_CNF, 0, _ciss_on_tapi_ss_event},
- {TAPI_EVENT_SS_FORWARD_CNF, 0, _ciss_on_tapi_ss_event},
- {TAPI_EVENT_SS_FORWARD_QUERYSTATUS_CNF, 0, _ciss_on_tapi_ss_event},
- {TAPI_EVENT_SS_USSD_CANCEL_CNF, 0, _ciss_on_tapi_ussd_event},
- {TAPI_EVENT_SS_USSD_CNF, 0, _ciss_on_tapi_ussd_event},
- {TAPI_EVENT_SS_WAITING_CNF, 0, _ciss_on_tapi_ss_event},
- {TAPI_EVENT_SS_WAITING_QUERYSTATUS_CNF, 0, _ciss_on_tapi_ss_event},
- {TAPI_EVENT_SAT_SEND_SS_IND, 0, _ciss_on_tapi_sat_ss_event},
- {TAPI_EVENT_SAT_SEND_USSD_IND, 0, _ciss_on_tapi_sat_ussd_event},
- {TAPI_EVENT_SS_REL_COMP_MSG_NOTIFY, 0, _ciss_on_tapi_ss_rel_complete_noti},
+ {TAPI_NOTI_SS_RELEASE_COMPLETE, 0, __ciss_tapi_ss_rel_complete_cb},
};
-int _ciss_tapi_event_setup(struct appdata *ad)
+int _ciss_tapi_event_setup(ciss_appdata_t *ad)
{
DBG("Enter");
int i = 0;
len = sizeof(event_list) / sizeof(EventHandler);
- if (tel_init() == 0) {
+ ad->tapi_handle = tel_init(NULL);
+ if (ad->tapi_handle) {
for (i = 0; i < len; i++) {
- tel_register_event(event_list[i].event_type, &(event_list[i].event_id), event_list[i].func, (void *)ad);
+ api_err = tel_register_noti_event(ad->tapi_handle, event_list[i].event_type, event_list[i].func, (void *) ad);
+ if (api_err != TAPI_API_SUCCESS) {
+ DBG("tapi_register_noti_event() ret : %d", api_err);
+ break;
+ }
}
-
- if ((api_err = tel_register_app_name("org.tizen.ciss-mmi")) != TAPI_API_SUCCESS)
- DBG("tel_register_app_name failed error=%d", api_err);
- } else
- DBG("TelTapiInitEcore() failed.");
+ } else {
+ DBG("tapi_init() failed.");
+ }
DBG("Leave");
return 0;
}
-void _ciss_deregister_tel_event(void)
+void _ciss_deregister_tel_event(void *data)
{
DBG("Enter");
- int len, ret, i;
+ ret_if(data == NULL);
- len = sizeof(event_list) / sizeof(EventHandler);
+ ciss_appdata_t *ad = (ciss_appdata_t *)data;
+ int ret = TAPI_API_SUCCESS;
- for (i = 0; i < len; i++) {
- ret = tel_deregister_event(event_list[i].event_id);
- if (ret != TAPI_API_SUCCESS)
- DBG("tel_deregister_event error=%d", ret);
+ ret = tel_deinit(ad->tapi_handle);
+ if (ret != TAPI_API_SUCCESS) {
+ DBG("tapi_deinit() ret : %d", ret);
}
-
- ret = tel_deinit();
- if (ret != TAPI_API_SUCCESS)
- DBG("TAPI delinit() ret : %d", ret);
}
-ciss_err_t _ciss_send_tapi_request(ciss_mmi_context_t *mmi_ctx)
+ciss_err_t _ciss_send_tapi_request(ciss_mmi_context_t *mmi_ctx, void *data)
{
DBG("Enter");
+ retv_if(data == NULL, CISS_ERR_UNKNOWN);
+
+ ciss_appdata_t *ad = (ciss_appdata_t *)data;
TelSsUssdMsgInfo_t stUssdRecord;
TelSsForwardInfo_t stCfActReq;
- TelSsCallBarringInfo_t stCbReq;
+ TelSsBarringInfo_t stCbReq;
TelSsWaitingInfo_t stCwReq;
- int RequestId;
- TapiResult_t err = TAPI_API_SUCCESS;
+ int err = TAPI_API_SUCCESS;
+ TelSsCliType_t cliType;
ciss_err_t error_code = CISS_ERR_NONE;
- if (mmi_ctx->ss_type == TAPI_SS_TYPE_FORWARDING) {
+ if (mmi_ctx->ss_type == CISS_SERVICE_FORWARDING) {
memset(&stCfActReq, 0, sizeof(TelSsForwardInfo_t));
- stCfActReq.Condition = TAPI_SS_FORWARD_WHEN_UNCONDITIONAL_EV;
stCfActReq.Condition = (TelSsForwardWhen_t) mmi_ctx->ss_flavor;
DBG("\n [CISS-ENGINE] ss_flavor= %d,%d", stCfActReq.Condition, mmi_ctx->ss_flavor);
- _ciss_get_tapi_forward_type(mmi_ctx->tapi_bsg, &stCfActReq.Type);
+ stCfActReq.Class = mmi_ctx->tapi_bsg;
stCfActReq.NoReplyConditionTimer = mmi_ctx->nr_timer;
- strncpy((char *)stCfActReq.szPhoneNumber, mmi_ctx->divert_number, CISS_NUMBER_LEN_MAX);
+ strncpy((char *)stCfActReq.szPhoneNumber, mmi_ctx->forward_number, CISS_NUMBER_LEN_MAX);
stCfActReq.szPhoneNumber[CISS_NUMBER_LEN_MAX] = '\0';
- } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_BARRING) {
- memset(&stCbReq, 0, sizeof(TelSsCallBarringInfo_t));
- stCbReq.Type = (TelSsCallBarType_t) mmi_ctx->ss_flavor;
+ } else if (mmi_ctx->ss_type == CISS_SERVICE_BARRING) {
+ memset(&stCbReq, 0, sizeof(TelSsBarringInfo_t));
+ stCbReq.Type = (TelSsBarringType_t) mmi_ctx->ss_flavor;
DBG("\n [CISS-ENGINE] ss_flavor= %d,%d", stCbReq.Type, mmi_ctx->ss_flavor);
- _ciss_get_tapi_call_type(mmi_ctx->tapi_bsg, &stCbReq.CallType);
+ stCbReq.Class = mmi_ctx->tapi_bsg;
memcpy(&stCbReq.szPassword, mmi_ctx->ss_password, CISS_MAX_PASSWORD_LEN);
- } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_WAITING) {
+ } else if (mmi_ctx->ss_type == CISS_SERVICE_WAITING) {
memset(&stCwReq, 0, sizeof(TelSsWaitingInfo_t));
- _ciss_get_tapi_call_type(mmi_ctx->tapi_bsg, &stCwReq.CallType);
+ stCwReq.Class = mmi_ctx->tapi_bsg;
}
switch (mmi_ctx->opcode) {
case registerSS:
DBG("registerSS");
- /* send a register request */
- if (mmi_ctx->ss_type == TAPI_SS_TYPE_FORWARDING) {
- stCfActReq.Mode = TAPI_CALL_FORWARD_MODE_REGISTRATION_EV;
+ if (mmi_ctx->ss_type == CISS_SERVICE_FORWARDING) {
+ stCfActReq.Mode = TAPI_SS_CF_MODE_REGISTRATION_EV;
- err = tel_set_ss_forward(&stCfActReq, &RequestId);
+ err = tel_set_ss_forward(ad->tapi_handle, &stCfActReq, __ciss_ss_forward_resp_cb, ad);
if (err != TAPI_API_SUCCESS) {
DBG("\n [CISS-ENGINE] tel_set_ss_forward : REGISTRATION call fails g_err_code = %x", err);
- DBG("\n [CISS-ENGINE] tel_set_ss_forward : REGISTRATION call fails request ID = %d", RequestId);
- _ciss_get_error_from_tapi_error(&error_code, err);
- return error_code;
- }
- } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_BARRING) {
-
- stCbReq.Mode = TAPI_SS_CALL_BAR_ACTIVATE;
-
- err = tel_set_ss_barring(&stCbReq, &RequestId);
- if (err != TAPI_API_SUCCESS) {
- DBG("\n [CISS-ENGINE] tel_set_ss_barring : ACTIVATE call fails g_err_code = %x", err);
- DBG("\n [CISS-ENGINE] tel_set_ss_barring : ACTIVATE call fails request ID = %d", RequestId);
- _ciss_get_error_from_tapi_error(&error_code, err);
- return error_code;
- }
- } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_WAITING) {
- stCwReq.Mode = TAPI_SS_CW_ACTIVATE;
- err = tel_set_ss_waiting(&stCwReq, &RequestId);
- if (err != TAPI_API_SUCCESS) {
- DBG("\n [CISS-ENGINE] tel_set_ss_waiting : ACTIVATION call fails g_err_code = %x", err);
- DBG("\n [CISS-ENGINE] tel_set_ss_waiting : ACTIVATION call fails request ID = %d", RequestId);
_ciss_get_error_from_tapi_error(&error_code, err);
return error_code;
}
break;
case eraseSS:
DBG("eraseSS");
- /* send an erase command */
- if (mmi_ctx->ss_type == TAPI_SS_TYPE_FORWARDING) {
- stCfActReq.Mode = TAPI_CALL_FORWARD_MODE_ERASURE_EV;
+ if (mmi_ctx->ss_type == CISS_SERVICE_FORWARDING) {
+ stCfActReq.Mode = TAPI_SS_CF_MODE_ERASURE_EV;
- err = tel_set_ss_forward(&stCfActReq, &RequestId);
+ err = tel_set_ss_forward(ad->tapi_handle, &stCfActReq, __ciss_ss_forward_resp_cb, ad);
if (err != TAPI_API_SUCCESS) {
DBG("\n [CISS-ENGINE] tel_set_ss_forward : DE-REGISTRATION call fails g_err_code = %x", err);
- DBG("\n [CISS-ENGINE] tel_set_ss_forward : DE-REGISTRATION call fails request = %d", RequestId);
_ciss_get_error_from_tapi_error(&error_code, err);
- return error_code;
- }
- } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_BARRING) {
- stCbReq.Mode = TAPI_SS_CALL_BAR_DEACTIVATE;
-
- err = tel_set_ss_barring(&stCbReq, &RequestId);
- if (err != TAPI_API_SUCCESS) {
- DBG("\n [CISS-ENGINE] tel_set_ss_barring : DEACTIVATE call fails g_err_code = %x", err);
- DBG("\n [CISS-ENGINE] tel_set_ss_barring : DEACTIVATE call fails request ID = %d", RequestId);
- _ciss_get_error_from_tapi_error(&error_code, err);
- return error_code;
- }
- } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_WAITING) {
- stCwReq.Mode = TAPI_SS_CW_DEACTIVATE;
-
- err = tel_set_ss_waiting(&stCwReq, &RequestId);
- if (err != TAPI_API_SUCCESS) {
- DBG("\n [CISS-ENGINE] tel_set_ss_waiting : DEACTIVATION call fails g_err_code = %x", err);
- DBG("\n [CISS-ENGINE] tel_set_ss_waiting : DEACTIVATION call fails request ID = %d", RequestId);
- _ciss_get_error_from_tapi_error(&error_code, err);
- return error_code;
}
}
break;
case activateSS:
DBG("activateSS");
- /* send an activate request */
- if (mmi_ctx->ss_type == TAPI_SS_TYPE_FORWARDING) {
- stCfActReq.Mode = TAPI_CALL_FORWARD_MODE_ENABLE_EV;
+ switch (mmi_ctx->ss_type) {
+ case CISS_SERVICE_FORWARDING:
+ stCfActReq.Mode = TAPI_SS_CF_MODE_ENABLE_EV;
- err = tel_set_ss_forward(&stCfActReq, &RequestId);
+ err = tel_set_ss_forward(ad->tapi_handle, &stCfActReq, __ciss_ss_forward_resp_cb, ad);
if (err != TAPI_API_SUCCESS) {
DBG("\n [CISS-ENGINE] tel_set_ss_forward : ACTIVATE call fails g_err_code = %x", err);
- DBG("\n [CISS-ENGINE] tel_set_ss_forward : ACTIVATE call fails request ID = %d", RequestId);
_ciss_get_error_from_tapi_error(&error_code, err);
- return error_code;
}
- } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_BARRING) {
- stCbReq.Mode = TAPI_SS_CALL_BAR_ACTIVATE;
+ break;
+ case CISS_SERVICE_BARRING:
+ stCbReq.Mode = TAPI_SS_CB_MODE_ACTIVATE;
- err = tel_set_ss_barring(&stCbReq, &RequestId);
+ err = tel_set_ss_barring(ad->tapi_handle, &stCbReq, __ciss_ss_barring_resp_cb, ad);
if (err != TAPI_API_SUCCESS) {
DBG("\n [CISS-ENGINE] tel_set_ss_barring : ACTIVATE call fails g_err_code = %x", err);
- DBG("\n [CISS-ENGINE] tel_set_ss_barring : ACTIVATE call fails request ID = %d", RequestId);
_ciss_get_error_from_tapi_error(&error_code, err);
- return error_code;
}
+ break;
+ case CISS_SERVICE_WAITING:
+ stCwReq.Mode = TAPI_SS_CW_MODE_ACTIVATE;
- } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_WAITING) {
- stCwReq.Mode = TAPI_SS_CW_ACTIVATE;
-
- err = tel_set_ss_waiting(&stCwReq, &RequestId);
+ err = tel_set_ss_waiting(ad->tapi_handle, &stCwReq, __ciss_ss_waiting_resp_cb, ad);
if (err != TAPI_API_SUCCESS) {
DBG("\n [CISS-ENGINE] tel_set_ss_waiting : ACTIVATION call fails g_err_code = %x", err);
- DBG("\n [CISS-ENGINE] tel_set_ss_waiting : ACTIVATION call fails request ID = %d", RequestId);
_ciss_get_error_from_tapi_error(&error_code, err);
- return error_code;
}
- } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_IDENTIFICATION) {
+ break;
+ case CISS_SERVICE_IDENTIFICATION:
DBG("\n [CISS-ENGINE] Don't activated CLI option");
error_code = CISS_ERR_ILLEGAL_SS_OPER;
- return error_code;
+ break;
}
break;
case deactivateSS:
DBG("deactivateSS");
- /* deactivate request */
- if (mmi_ctx->ss_type == TAPI_SS_TYPE_FORWARDING) {
- stCfActReq.Mode = TAPI_CALL_FORWARD_MODE_DISABLE_EV;
- err = tel_set_ss_forward(&stCfActReq, &RequestId);
+ switch (mmi_ctx->ss_type) {
+ case CISS_SERVICE_FORWARDING:
+ stCfActReq.Mode = TAPI_SS_CF_MODE_DISABLE_EV;
+ err = tel_set_ss_forward(ad->tapi_handle, &stCfActReq, __ciss_ss_forward_resp_cb, ad);
if (err != TAPI_API_SUCCESS) {
DBG("\n [CISS-ENGINE] tel_set_ss_forward : DEACTIVATE call fails g_err_code = %x", err);
- DBG("\n [CISS-ENGINE] tel_set_ss_forward : DEACTIVATE call fails request ID = %d", RequestId);
_ciss_get_error_from_tapi_error(&error_code, err);
- return error_code;
}
- } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_BARRING) {
- stCbReq.Mode = TAPI_SS_CALL_BAR_DEACTIVATE;
-
- DBG("\n [CISS-ENGINE] **** ss_mode = %d\n", stCbReq.Mode);
- DBG("\n [CISS-ENGINE] **** flavor = %d\n", stCbReq.Type);
- DBG("\n [CISS-ENGINE] **** call type = %d\n", stCbReq.CallType);
- DBG("\n [CISS-ENGINE] **** Pwd = %s\n", stCbReq.szPassword);
-
- err = tel_set_ss_barring(&stCbReq, &RequestId);
+ break;
+ case CISS_SERVICE_BARRING:
+ stCbReq.Mode = TAPI_SS_CB_MODE_DEACTIVATE;
+ err = tel_set_ss_barring(ad->tapi_handle, &stCbReq, __ciss_ss_barring_resp_cb, ad);
if (err != TAPI_API_SUCCESS) {
DBG("\n [CISS-ENGINE] tel_set_ss_barring : DEACTIVATE call fails g_err_code = %x", err);
- DBG("\n [CISS-ENGINE] tel_set_ss_barring : DEACTIVATE call fails request ID = %d", RequestId);
_ciss_get_error_from_tapi_error(&error_code, err);
- return error_code;
}
- } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_WAITING) {
- stCwReq.Mode = TAPI_SS_CW_DEACTIVATE;
- err = tel_set_ss_waiting(&stCwReq, &RequestId);
+ break;
+ case CISS_SERVICE_WAITING:
+ stCwReq.Mode = TAPI_SS_CW_MODE_DEACTIVATE;
+ err = tel_set_ss_waiting(ad->tapi_handle, &stCwReq, __ciss_ss_waiting_resp_cb, ad);
if (err != TAPI_API_SUCCESS) {
DBG("\n [CISS-ENGINE] tel_set_ss_waiting : ACTIVATION call fails g_err_code = %x", err);
- DBG("\n [CISS-ENGINE] tel_set_ss_waiting : ACTIVATION call fails request ID = %d", RequestId);
_ciss_get_error_from_tapi_error(&error_code, err);
- return error_code;
}
+ break;
}
break;
case interrogateSS:
DBG("interrogateSS");
- /* interrogate request */
- if (mmi_ctx->ss_type == TAPI_SS_TYPE_FORWARDING) {
- err = tel_get_ss_forward_status(stCfActReq.Type, stCfActReq.Condition, &RequestId);
+ switch (mmi_ctx->ss_type) {
+ case CISS_SERVICE_FORWARDING:
+ err = tel_get_ss_forward_status(ad->tapi_handle, stCfActReq.Class, stCfActReq.Condition,
+ __ciss_ss_forward_resp_cb, ad);
if (err != TAPI_API_SUCCESS) {
DBG("\n [CISS-ENGINE] tel_get_ss_forward_status call fails g_err_code = %x", err);
- DBG("\n [CISS-ENGINE] tel_get_ss_forward_status : CHECK_STATUS call fails request ID = %d", RequestId);
_ciss_get_error_from_tapi_error(&error_code, err);
- return error_code;
}
- } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_BARRING) {
- err = tel_get_ss_barring_status(stCbReq.Type, stCbReq.CallType, &RequestId);
+ break;
+ case CISS_SERVICE_BARRING:
+ err = tel_get_ss_barring_status(ad->tapi_handle, stCbReq.Class, stCbReq.Type,
+ __ciss_ss_barring_resp_cb, ad);
if (err != TAPI_API_SUCCESS) {
DBG("\n [CISS-ENGINE] tel_get_ss_barring_status call fails g_err_code = %x", err);
- DBG("\n [CISS-ENGINE] tel_get_ss_barring_status : CHECK_STATUS call fails request ID = %d", RequestId);
_ciss_get_error_from_tapi_error(&error_code, err);
- return error_code;
}
- } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_WAITING) {
- err = tel_get_ss_waiting_status(stCwReq.CallType, &RequestId);
+ break;
+ case CISS_SERVICE_WAITING:
+ err = tel_get_ss_waiting_status(ad->tapi_handle, stCwReq.Class,
+ __ciss_ss_waiting_resp_cb, ad);
if (err != TAPI_API_SUCCESS) {
DBG("\n [CISS-ENGINE] tel_get_ss_waiting_status call fails g_err_code = %x", err);
- DBG("\n [CISS-ENGINE] tel_get_ss_waiting_status : fails request ID = %d", RequestId);
_ciss_get_error_from_tapi_error(&error_code, err);
- return error_code;
}
- } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_IDENTIFICATION) {
- err = tel_get_ss_cli_status(mmi_ctx->ss_flavor, &RequestId);
+ break;
+ case CISS_SERVICE_IDENTIFICATION:
+ cliType = (TelSsCliType_t)mmi_ctx->ss_flavor;
+ err = tel_get_ss_cli_status(ad->tapi_handle, cliType,
+ __ciss_ss_cli_resp_cb, ad);
if (err != TAPI_API_SUCCESS) {
DBG("\n [CISS-ENGINE] tel_get_ss_cli_status call fails g_err_code = %x", err);
- DBG("\n [CISS-ENGINE] tel_get_ss_cli_status : fails request ID = %d", RequestId);
_ciss_get_error_from_tapi_error(&error_code, err);
- return error_code;
}
+ break;
}
break;
case registerPassword:
/* password registration request */
/* check for too short password and mismatch password */
if (CISS_MAX_PASSWORD_LEN > strlen(mmi_ctx->ss_password) ||
- CISS_MAX_PASSWORD_LEN > strlen(mmi_ctx->ss_new_password) ||
- CISS_MAX_PASSWORD_LEN > strlen(mmi_ctx->ss_new_password2)) {
+ CISS_MAX_PASSWORD_LEN > strlen(mmi_ctx->ss_new_password) ||
+ CISS_MAX_PASSWORD_LEN > strlen(mmi_ctx->ss_new_password2)) {
/* too short password */
DBG("\n [CISS-ENGINE] Too short password");
error_code = CISS_ERR_CB_PWD_TOO_SORT;
- return error_code;
}
- err = tel_change_ss_barring_password(mmi_ctx->ss_password, mmi_ctx->ss_new_password, mmi_ctx->ss_new_password2, &RequestId);
+ err = tel_change_ss_barring_password(ad->tapi_handle,
+ mmi_ctx->ss_password,
+ mmi_ctx->ss_new_password,
+ mmi_ctx->ss_new_password2,
+ __ciss_change_ss_barring_pw_resp_cb, ad);
+
if (err != TAPI_API_SUCCESS) {
- DBG("\n [CISS-ENGINE] tel_change_ss_barring_password call request ID = %d", RequestId);
DBG("\n [CISS-ENGINE] tel_change_ss_barring_password call fails g_err_code = %x", err);
_ciss_get_error_from_tapi_error(&error_code, err);
- return error_code;
}
break;
case processUnstructuredSS_Request:
DBG("processUnstructuredSS_Request");
memset(&stUssdRecord, 0, sizeof(TelSsUssdMsgInfo_t));
- stUssdRecord.UssdStringLength = strlen(mmi_ctx->user_string);
+ stUssdRecord.Length = mmi_ctx->user_string_length;
+ stUssdRecord.Type = mmi_ctx->ussd_type;
+
+ _ciss_strcpy(stUssdRecord.szString, sizeof(stUssdRecord.szString), (char *)mmi_ctx->user_string);
+
+ DBG("\n [CISS-ENGINE] stUssdRecord.Length = %d, stUssdRecord.ussd_string = %s", stUssdRecord.Length, stUssdRecord.szString);
+
+ err = tel_send_ss_ussd_request(ad->tapi_handle,
+ &stUssdRecord,
+ __ciss_ss_ussd_resp_cb, ad);
+ if (err != TAPI_API_SUCCESS) {
+ DBG("\n [CISS-ENGINE] tel_send_ss_ussd_request call fails g_err_code = %x", err);
+ _ciss_get_error_from_tapi_error(&error_code, err);
+ }
+ break;
+ case unstructuredSS_Request:
+ DBG("unstructuredSS_Request");
+ memset(&stUssdRecord, 0, sizeof(TelSsUssdMsgInfo_t));
+ stUssdRecord.Length = mmi_ctx->user_string_length;
+ stUssdRecord.Type = mmi_ctx->ussd_type;
- _ciss_strcpy(stUssdRecord.szUssdString, sizeof(stUssdRecord.szUssdString), (char *)mmi_ctx->user_string);
+ _ciss_strcpy(stUssdRecord.szString, sizeof(stUssdRecord.szString), (char *)mmi_ctx->user_string);
- DBG("\n [CISS-ENGINE] string_length = %d, stUssdRecord.ussd_string = %s", stUssdRecord.UssdStringLength, stUssdRecord.szUssdString);
+ DBG("\n [CISS-ENGINE] stUssdRecord.Length = %d, stUssdRecord.ussd_string = %s", stUssdRecord.Length, stUssdRecord.szString);
- err = tel_send_ss_ussd_request(&stUssdRecord, &RequestId);
+ err = tel_send_ss_ussd_request(ad->tapi_handle,
+ &stUssdRecord,
+ __ciss_ss_ussd_resp_cb, ad);
if (err != TAPI_API_SUCCESS) {
DBG("\n [CISS-ENGINE] tel_send_ss_ussd_request call fails g_err_code = %x", err);
- DBG("\n [CISS-ENGINE] tel_send_ss_ussd_request :call fails request ID = %d", RequestId);
_ciss_get_error_from_tapi_error(&error_code, err);
- return error_code;
}
break;
default:
error_code = CISS_ERR_UNKNOWN;
- DBG("\n [CISS-ENGINE] Invalid Parsed opcode = %d",
- mmi_ctx->opcode);
-
+ DBG("\n [CISS-ENGINE] Invalid Parsed opcode = %d", mmi_ctx->opcode);
break;
}
-#if 0
-#ifndef CF_TEST
- /* Because tapi sends the CF no reply data for All CF and All conditional CF , we have to make a result flavor with requested data here */
- if (mmi_ctx->ss_type == TAPI_SS_TYPE_FORWARDING) {
- memset(&this->ss_result_string, 0, sizeof(ciss_result_t));
- _ciss_get_forward_flavor_type(mmi_ctx->ss_flavor, &this->ss_result_string.szFlavor);
-
- if (opcode == eraseSS) {
- this->ss_req_data.telecommSvc = mmi_ctx->tapi_bsg;
- this->ss_req_data.service = CISS_SERVICE_DIVERTING;
- this->ss_req_data.flavor = mmi_ctx->ss_flavor;
- this->ss_req_data.action = CISS_ACTION_DEACTIVATE;
- DBG("\n [CISS-ENGINE] this->ss_req_data.action : %d\n", this->ss_req_data.action);
- DBG("\n [CISS-ENGINE] this->ss_req_data.flavor : %d\n", this->ss_req_data.flavor);
- DBG("\n [CISS-ENGINE] this->ss_req_data.telecommSvc : %d\n", this->ss_req_data.telecommSvc);
- DBG("\n [CISS-ENGINE] this->ss_req_data.service : %d\n", this->ss_req_data.service);
- }
-
- DBG("\n [CISS-ENGINE] Forwarding: Requested ss_flavor =%d\n", this->ss_result_string.szFlavor);
- } else if (mmi_ctx->ss_type == TAPI_SS_TYPE_BARRING) {
- memset(&this->ss_result_string, 0, sizeof(ciss_result_t));
- _ciss_get_barring_flavor_type(mmi_ctx->ss_flavor, &this->ss_result_string.szFlavor);
-
- DBG("\n [CISS-ENGINE] Barring: Requested ss_flavor =%d\n", this->ss_result_string.szFlavor);
- }
-#endif
-#endif
DBG("Leave");
return error_code;
}
-int _ciss_on_tapi_sat_ss_event(const TelTapiEvent_t *event, void *data)
+int _ciss_on_tapi_sat_ss_event(void *tapi_data, void *data)
{
DBG("Enter");
- retv_if(event == NULL, -1);
retv_if(data == NULL, -1);
int ret = -1;
- struct appdata *ad = (struct appdata *)data;
- DBG("event type=0x%x status=0x%x pDataLen=%d is_sat=%d",event->EventType, event->Status, event->pDataLen, ad->is_sat_request);
+ ciss_appdata_t *ad = (ciss_appdata_t *)data;
+ TelSatSendSsIndSsData_t send_ss_info;
+ memset(&send_ss_info, 0, sizeof(TelSatSendSsIndSsData_t));
+ memcpy(&send_ss_info, tapi_data, sizeof(TelSatSendSsIndSsData_t));
+
+ DBG("ad->is_sat_request = %d", ad->is_sat_request);
if (ad->popup) {
evas_object_del(ad->popup);
ad->popup = NULL;
}
- TelSatSendSsIndSsData_t send_ss_info;
- if (event->pDataLen > 0) {
- memcpy(&send_ss_info, event->pData, sizeof(TelSatSendSsIndSsData_t));
-
- if (send_ss_info.ssStringLen > 0) {
- ciss_err_t ciss_err_code;
- ad->is_sat_request = EINA_TRUE;
- ad->rel_comp_msg_len = 0;
- ad->cmd_id = send_ss_info.commandId;
- ciss_mmi_context_t mmi_ctx;
- ciss_err_code = _ciss_parse_req_string((char *)send_ss_info.ssString, &mmi_ctx);
-
- if (ciss_err_code == CISS_ERR_NONE) {
- ciss_err_code = _ciss_send_tapi_request(&mmi_ctx);
- ret = 0;
- } else {
- TelSatAppsRetInfo_t app_ret_info;
- app_ret_info.commandId = ad->cmd_id;
- app_ret_info.commandType = TAPI_SAT_CMD_TYPE_SEND_SS;
+ if (send_ss_info.ssStringLen > 0) {
+ ciss_err_t ciss_err_code;
+ ad->is_sat_request = EINA_TRUE;
+ ad->sat_terminal_response.sat_command_id = send_ss_info.commandId;
- app_ret_info.appsRet.sendSs.resp = TAPI_SAT_R_NETWORK_UNABLE_TO_PROCESS_COMMAND;
- app_ret_info.appsRet.sendSs.ssString.stringLen = 0;
- ret = tel_send_sat_app_exec_result(&app_ret_info);
- elm_exit();
- }
+ ciss_mmi_context_t mmi_ctx;
+ ciss_err_code = _ciss_parse_req_string((char *)send_ss_info.ssString, &mmi_ctx);
+
+ if (ciss_err_code == CISS_ERR_NONE) {
+ ciss_err_code = _ciss_send_tapi_request(&mmi_ctx, ad);
+ ret = 0;
+ } else {
+ TelSatAppsRetInfo_t app_ret_info;
+ memset(&app_ret_info, 0, sizeof(TelSatAppsRetInfo_t));
+
+ app_ret_info.commandType = TAPI_SAT_CMD_TYPE_SEND_SS;
+ app_ret_info.commandId = ad->sat_terminal_response.sat_command_id;
+ app_ret_info.appsRet.sendSs.resp = TAPI_SAT_R_COMMAND_DATA_NOT_UNDERSTOOD_BY_ME;
+ app_ret_info.appsRet.sendSs.ssCause = TAPI_SS_UNKNOWNERROR;
+ app_ret_info.appsRet.sendSs.meProblem = TAPI_SAT_ME_PROBLEM_INVALID;
+ app_ret_info.appsRet.sendSs.ssString.stringLen = 0;
+ ret = tel_send_sat_app_exec_result(ad->tapi_handle, &app_ret_info);
+ elm_exit();
}
}
DBG("Leave");
+
return ret;
}
-int _ciss_on_tapi_sat_ussd_event(const TelTapiEvent_t *event, void *data)
+int _ciss_on_tapi_sat_ussd_event(void *tapi_data, void *data)
{
DBG("Enter");
- retv_if(event == NULL, -1);
+ retv_if(tapi_data == NULL, -1);
retv_if(data == NULL, -1);
int ret = -1;
- struct appdata *ad = (struct appdata *)data;
- DBG("event type=0x%x status=0x%x pDataLen=%d is_sat=%d", event->EventType, event->Status, event->pDataLen, ad->is_sat_request);
+ ciss_appdata_t *ad = (ciss_appdata_t *)data;
+ TelSatSendUssdIndUssdData_t send_ussd_info;
+ memset(&send_ussd_info, 0, sizeof(TelSatSendUssdIndUssdData_t));
+ memcpy(&send_ussd_info, tapi_data, sizeof(TelSatSendUssdIndUssdData_t));
+
+ DBG("ad->is_sat_request = %d", ad->is_sat_request);
if (ad->popup) {
evas_object_del(ad->popup);
ad->popup = NULL;
}
- TelSatSendUssdIndUssdData_t send_ussd_info;
- if (event->pDataLen > 0) {
- memcpy(&send_ussd_info, event->pData, sizeof(TelSatSendUssdIndUssdData_t));
-
- if (send_ussd_info.ussdStringLen > 0) {
- int req_id;
- ad->is_sat_request = EINA_TRUE;
- ad->cmd_id = send_ussd_info.commandId;
- TelSsUssdMsgInfo_t ussd_info;
- ussd_info.UssdStringLength = send_ussd_info.ussdStringLen;
- if (ussd_info.UssdStringLength >0)
- memcpy(&ussd_info.szUssdString, send_ussd_info.ussdString, ussd_info.UssdStringLength);
- ret = tel_send_ss_ussd_request(&ussd_info, &req_id);
+ if (send_ussd_info.ussdStringLen > 0) {
+ ad->is_sat_request = EINA_TRUE;
+ ad->sat_terminal_response.sat_command_id = send_ussd_info.commandId;
+
+ TelSsUssdMsgInfo_t ussd_info;
+ ussd_info.Type = TAPI_SS_USSD_TYPE_USER_INIT;
+ ussd_info.Length = (int)(send_ussd_info.ussdStringLen);
+ if (ussd_info.Length >0) {
+ memcpy(&ussd_info.szString, send_ussd_info.ussdString, ussd_info.Length);
}
+
+ ret = tel_send_ss_ussd_request(ad->tapi_handle, &ussd_info,
+ __ciss_ss_ussd_resp_cb, ad);
+ } else {
+ TelSatAppsRetInfo_t app_ret_info;
+ memset(&app_ret_info, 0, sizeof(TelSatAppsRetInfo_t));
+
+ app_ret_info.commandType = TAPI_SAT_CMD_TYPE_SEND_USSD;
+ app_ret_info.commandId = ad->sat_terminal_response.sat_command_id;
+
+ app_ret_info.appsRet.sendUssd.resp = TAPI_SAT_R_COMMAND_DATA_NOT_UNDERSTOOD_BY_ME;
+ app_ret_info.appsRet.sendUssd.ssCause = TAPI_SS_UNKNOWNERROR;
+ app_ret_info.appsRet.sendUssd.meProblem = TAPI_SAT_ME_PROBLEM_INVALID;
+ app_ret_info.appsRet.sendUssd.ussdString.stringLen = 0;
+ ret = tel_send_sat_app_exec_result(ad->tapi_handle, &app_ret_info);
+ elm_exit();
}
DBG("Leave, return=%d", ret);
+
return ret;
}
-int _ciss_on_tapi_ss_rel_complete_noti(const TelTapiEvent_t *event, void *data)
+static void __ciss_tapi_ss_rel_complete_cb(TapiHandle *tapi_handle, const char *event_type, void *data, void *user_data)
{
DBG("Enter");
- retv_if(event == NULL, -1);
- retv_if(data == NULL, -1);
+ ret_if(data == NULL);
+ ret_if(user_data == NULL);
- struct appdata *ad = (struct appdata *)data;
+ ciss_appdata_t *ad = (ciss_appdata_t *)user_data;
TelSsRelCompMsgInfo_t rel_comp_info;
+ memset(&rel_comp_info, 0, sizeof(TelSsRelCompMsgInfo_t));
- DBG("event type=0x%x status=0x%x pDataLen=%d is_sat=%d",event->EventType, event->Status, event->pDataLen, ad->is_sat_request);
- ad->rel_comp_msg_len = 0;
+ DBG("event type=%s, is_sat_request=%d", event_type, ad->is_sat_request);
+ ad->sat_terminal_response.rel_comp_msg_length = 0;
if (ad->is_sat_request == EINA_TRUE) {
- if (event->pDataLen > 0) {
- memcpy(&rel_comp_info, event->pData, event->pDataLen);
- if (rel_comp_info.RelCompMsgLen > 0) {
- memcpy(ad->rel_comp_msg, rel_comp_info.szRelCompMsg, rel_comp_info.RelCompMsgLen);
- ad->rel_comp_msg_len = rel_comp_info.RelCompMsgLen;
- }
+ memcpy(&rel_comp_info, data, sizeof(TelSsRelCompMsgInfo_t));
+ ad->sat_terminal_response.rel_comp_msg_length = (unsigned short)rel_comp_info.RelCompMsgLen;
+
+ if (ad->sat_terminal_response.rel_comp_msg_length > 0) {
+ memcpy(ad->sat_terminal_response.rel_comp_msg_string, rel_comp_info.szRelCompMsg, TAPI_MAX_RELEASE_COMPLETE_DATA_LEN);
}
+
+ DBG("rel_comp_info.RelCompMsgLen = 0x%x", rel_comp_info.RelCompMsgLen);
+ DBG("rel_comp_info.szRelCompMsg = %s", rel_comp_info.szRelCompMsg);
+ DBG("ad->sat_terminal_response.rel_comp_msg_length = 0x%x", ad->sat_terminal_response.rel_comp_msg_length);
+ DBG("ad->sat_terminal_response.rel_comp_msg_string = %s", ad->sat_terminal_response.rel_comp_msg_string);
}
- return 0;
+
+ return ;
}
-int _ciss_on_tapi_ss_event(const TelTapiEvent_t *event, void *data)
+static void __ciss_tapi_ss_resp_handle(int result, void *tapi_data, void *data)
{
DBG("Enter");
- retv_if(event == NULL, -1);
- retv_if(data == NULL, -1);
+ ret_if(data == NULL);
- struct appdata *ad = (struct appdata *)data;
- TelSsInfo_t ss_info;
int ret = -1;
+ ciss_appdata_t *ad = (ciss_appdata_t *)data;
- DBG("event type=0x%x status=0x%x pDataLen=%d is_sat=%d", event->EventType, event->Status, event->pDataLen, ad->is_sat_request);
+ DBG("result=0x%x ad->is_sat_request=%d", result, ad->is_sat_request);
if (ad->popup) {
evas_object_del(ad->popup);
if (ad->is_sat_request == EINA_TRUE) {
TelSatAppsRetInfo_t app_ret_info;
- app_ret_info.commandId = ad->cmd_id;
app_ret_info.commandType = TAPI_SAT_CMD_TYPE_SEND_SS;
+ app_ret_info.commandId = ad->sat_terminal_response.sat_command_id;
- if (event->Status == TAPI_SS_SUCCESS) {
+ if (result == TAPI_SS_SUCCESS) {
app_ret_info.appsRet.sendSs.resp = TAPI_SAT_R_SUCCESS;
-
- if (ad->rel_comp_msg_len >0) {
- memcpy(app_ret_info.appsRet.sendSs.ssString.string, ad->rel_comp_msg, ad->rel_comp_msg_len);
- app_ret_info.appsRet.sendSs.ssString.stringLen = ad->rel_comp_msg_len;
- } else
+ app_ret_info.appsRet.sendSs.ssCause = TAPI_SS_SUCCESS;
+ app_ret_info.appsRet.sendSs.meProblem = TAPI_SAT_ME_PROBLEM_NO_SPECIFIC_CAUSE;
+ if (ad->sat_terminal_response.rel_comp_msg_length >0) {
+ app_ret_info.appsRet.sendSs.ssString.stringLen = ad->sat_terminal_response.rel_comp_msg_length;
+ memcpy(app_ret_info.appsRet.sendSs.ssString.string,
+ ad->sat_terminal_response.rel_comp_msg_string, ad->sat_terminal_response.rel_comp_msg_length);
+ } else {
app_ret_info.appsRet.sendSs.ssString.stringLen = 0;
+ }
} else {
app_ret_info.appsRet.sendSs.resp = TAPI_SAT_R_SS_RETURN_ERROR;
- app_ret_info.appsRet.sendSs.ssCause = event->Status;
+ app_ret_info.appsRet.sendSs.ssCause = result;
}
- ret = tel_send_sat_app_exec_result(&app_ret_info);
-
+ ret = tel_send_sat_app_exec_result(ad->tapi_handle, &app_ret_info);
elm_exit();
} else {
/* create window */
Evas_Object *win;
win = _ciss_create_win(PACKAGE);
ad->win_main = win;
- retv_if(ad->win_main == NULL, -1);
+ ret_if(ad->win_main == NULL);
ad->end_key_event_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _ciss_on_end_key_down, NULL);
evas_object_show(win);
}
DBG("win=0x%p main=0x%p", ad->win_main, ad->layout_main);
- if (event->Status == TAPI_SS_SUCCESS) {
- if (ad->bg == NULL) {
- ad->bg = _ciss_create_bg(ad->win_main);
- retv_if(ad->bg == NULL, -1);
- }
+ if (ad->conformant == NULL) {
+ ad->conformant = _ciss_create_conformant(ad->win_main);
+ ret_if(ad->conformant == NULL);
+ evas_object_show(ad->conformant);
+ }
- if (ad->layout_main == NULL) {
- ad->layout_main = _ciss_create_layout_main(ad->win_main);
- retv_if(ad->layout_main== NULL, -1);
- }
+ if (ad->layout_main == NULL) {
+ ad->layout_main = _ciss_create_layout_main(ad->conformant);
+ ret_if(ad->layout_main== NULL);
+ evas_object_show(ad->layout_main);
+ }
+
+ if (ad->bg == NULL) {
+ ad->bg = _ciss_create_bg(ad->conformant);
+ ret_if(ad->bg == NULL);
+ elm_object_part_content_set(ad->layout_main, "elm.swallow.bg", ad->bg);
+ }
+
+ if (result == TAPI_SS_SUCCESS) {
DBG("win=0x%p main=0x%p", ad->win_main, ad->layout_main);
- if (event->pDataLen > 0) {
- memcpy(&ss_info, event->pData, sizeof(TelSsInfo_t));
- if (event->EventType == TAPI_EVENT_SS_CLI_QUERYSTATUS_CNF &&
- ss_info.SsType == TAPI_SS_TYPE_BARRING) {
- ss_info.SsType = TAPI_SS_TYPE_IDENTIFICATION;
- }
- content = (Evas_Object *)_ciss_create_ss_resp_view(ad->layout_main, &ss_info, ad);
- } else {
- content = (Evas_Object *)_ciss_create_ss_resp_view(ad->layout_main, NULL, ad);
- }
- retv_if(content == NULL, -1);
+ content = (Evas_Object *)_ciss_create_ss_resp_view(ad->layout_main, tapi_data, ad);
+ ret_if(content == NULL);
elm_object_part_content_set(ad->layout_main, "elm.swallow.content", content);
} else {
ciss_err_t ciss_err;
- _ciss_get_error_from_tapi_error(&ciss_err, event->Status);
- _ciss_create_error_popup(ad->win_main, ciss_err, 2.0, ad);
+ _ciss_get_error_from_tapi_error(&ciss_err, result);
+ _ciss_create_error_popup(ad->layout_main, ciss_err, 2.0, ad);
}
- ret = 0;
}
DBG("Leave");
- return ret;
}
-int _ciss_on_tapi_ussd_event(const TelTapiEvent_t *event, void *data)
+int _ciss_tapi_ussd_resp_handle(int result, void *tapi_data, void *data)
{
DBG("Enter");
- retv_if(event == NULL, -1);
retv_if(data == NULL, -1);
- struct appdata *ad = (struct appdata *)data;
- TelSsUssdMsgIndInfo_t ussd_info;
+ ciss_appdata_t *ad = (ciss_appdata_t *)data;
+
int ret = -1;
if (ad->popup) {
ad->popup = NULL;
}
- DBG("event type=0x%x status=0x%x pDataLen=%d is_sat=%d", event->EventType, event->Status, event->pDataLen, ad->is_sat_request);
- if (ad->is_sat_request == EINA_TRUE)
- {
+ DBG("result=0x%x ad->is_sat_request=%d", result, ad->is_sat_request);
+ if (ad->is_sat_request == EINA_TRUE) {
TelSatAppsRetInfo_t app_ret_info;
- app_ret_info.commandId = ad->cmd_id;
- app_ret_info.commandType = TAPI_SAT_CMD_TYPE_SEND_USSD;
+ TelSsUssdResp_t ussd_info;
+ memset(&ussd_info, 0, sizeof(TelSsUssdResp_t));
+ memcpy(&ussd_info, tapi_data, sizeof(TelSsUssdResp_t));
- if (event->Status == TAPI_SS_SUCCESS) {
- if (event->pDataLen > 0)
- memcpy(&ussd_info, event->pData, sizeof(TelSsUssdMsgIndInfo_t));
+ app_ret_info.commandType = TAPI_SAT_CMD_TYPE_SEND_USSD;
+ app_ret_info.commandId = ad->sat_terminal_response.sat_command_id;
+ if (result == TAPI_SS_SUCCESS) {
app_ret_info.appsRet.sendUssd.resp = TAPI_SAT_R_SUCCESS;
- app_ret_info.appsRet.sendUssd.ussdString.stringLen = ussd_info.UssdInfo.UssdStringLength;
- if (app_ret_info.appsRet.sendUssd.ussdString.stringLen > 0)
- memcpy(app_ret_info.appsRet.sendUssd.ussdString.string, ussd_info.UssdInfo.szUssdString, ussd_info.UssdInfo.UssdStringLength);
+ app_ret_info.appsRet.sendUssd.ssCause = TAPI_SS_SUCCESS;
+ app_ret_info.appsRet.sendUssd.meProblem = TAPI_SAT_ME_PROBLEM_NO_SPECIFIC_CAUSE;
+ app_ret_info.appsRet.sendUssd.ussdString.stringLen = ussd_info.Length;
+ if (ad->sat_terminal_response.rel_comp_msg_length >0) {
+ app_ret_info.appsRet.sendUssd.ussdString.stringLen = ad->sat_terminal_response.rel_comp_msg_length;
+ memcpy(app_ret_info.appsRet.sendUssd.ussdString.string,
+ ad->sat_terminal_response.rel_comp_msg_string, ad->sat_terminal_response.rel_comp_msg_length);
+ } else {
+ app_ret_info.appsRet.sendUssd.ussdString.stringLen = 0;
+ }
} else {
app_ret_info.appsRet.sendUssd.resp = TAPI_SAT_R_USSD_RETURN_ERROR;
- app_ret_info.appsRet.sendUssd.ssCause = event->Status;
+ app_ret_info.appsRet.sendUssd.ssCause = result;
}
- tel_send_sat_app_exec_result(&app_ret_info);
- ret = 0;
- elm_exit();
- } else {
- /* create window */
- Evas_Object *content;
+ ret = tel_send_sat_app_exec_result(ad->tapi_handle, &app_ret_info);
+ ad->is_sat_request = EINA_FALSE;
+ }
- if (ad->win_main == NULL) {
- Evas_Object *win;
- win = _ciss_create_win(PACKAGE);
- retv_if(win == NULL, -1);
- ad->win_main = win;
- evas_object_show(win);
- ad->end_key_event_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _ciss_on_end_key_down, NULL);
- }
+ /* create window */
+ Evas_Object *content;
- if (event->Status == TAPI_SS_SUCCESS) {
- if (event->pDataLen > 0)
- memcpy(&ussd_info, event->pData, sizeof(TelSsUssdMsgIndInfo_t));
- else {
- DBG("Telephony USSD data is empty");
- return -1;
- }
+ if (ad->win_main == NULL) {
+ Evas_Object *win;
+ win = _ciss_create_win(PACKAGE);
+ retv_if(win == NULL, -1);
+ ad->win_main = win;
+ evas_object_show(win);
+ ad->end_key_event_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _ciss_on_end_key_down, NULL);
+ }
- if (ad->bg == NULL) {
- ad->bg = _ciss_create_bg(ad->win_main);
- retv_if(ad->bg == NULL, -1);
- }
+ if (ad->conformant == NULL) {
+ ad->conformant = _ciss_create_conformant(ad->win_main);
+ retv_if(ad->conformant == NULL, -1);
+ evas_object_show(ad->conformant);
+ }
- if (ad->layout_main == NULL) {
- Evas_Object *lo;
- lo = _ciss_create_layout_main(ad->win_main);
- retv_if(lo == NULL, -1);
- ad->layout_main = lo;
- }
- content = (Evas_Object *)_ciss_create_ussd_view(ad->layout_main, &ussd_info, ad);
- retv_if(content == NULL, -1);
- elm_object_part_content_set(ad->layout_main, "elm.swallow.content", content);
- } else {
- ciss_err_t ciss_err;
- _ciss_get_error_from_tapi_error(&ciss_err, event->Status);
- _ciss_create_error_popup(ad->win_main, ciss_err, 2.0, ad);
- }
- ret = 0;
+ if (ad->layout_main == NULL) {
+ ad->layout_main = _ciss_create_layout_main(ad->conformant);
+ retv_if(ad->layout_main== NULL, -1);
+ evas_object_show(ad->layout_main);
}
+ if (ad->bg == NULL) {
+ ad->bg = _ciss_create_bg(ad->conformant);
+ retv_if(ad->bg == NULL, -1);
+ elm_object_part_content_set(ad->layout_main, "elm.swallow.bg", ad->bg);
+ }
+
+ if (result == TAPI_SS_SUCCESS) {
+ DBG("win=0x%p main=0x%p", ad->win_main, ad->layout_main);
+
+ content = (Evas_Object *)_ciss_create_ussd_view(ad->layout_main, tapi_data, ad);
+ retv_if(data == NULL, -1);
+ elm_object_part_content_set(ad->layout_main, "elm.swallow.content", content);
+ } else {
+ ciss_err_t ciss_err;
+ _ciss_get_error_from_tapi_error(&ciss_err, result);
+ _ciss_create_error_popup(ad->layout_main, ciss_err, 2.0, ad);
+ }
+ ret = 0;
+
DBG("Leave");
return ret;
}
+static void __ciss_ss_forward_resp_cb(TapiHandle *handle, int result, void *data, void *user_data)
+{
+ DBG("Enter");
+ ret_if(data == NULL);
+ ret_if(user_data == NULL);
+
+ ciss_appdata_t *ad = (ciss_appdata_t *)user_data;
+
+ ad->resp_ss_type = CISS_SERVICE_FORWARDING;
+ __ciss_tapi_ss_resp_handle(result, data, user_data);
+ return;
+}
+
+static void __ciss_ss_barring_resp_cb(TapiHandle *handle, int result, void *data, void *user_data)
+{
+ DBG("Enter");
+ ret_if(data == NULL);
+ ret_if(user_data == NULL);
+
+ ciss_appdata_t *ad = (ciss_appdata_t *)user_data;
+
+ ad->resp_ss_type = CISS_SERVICE_BARRING;
+ __ciss_tapi_ss_resp_handle(result, data, user_data);
+ return;
+}
+
+static void __ciss_ss_waiting_resp_cb(TapiHandle *handle, int result, void *data, void *user_data)
+{
+ DBG("Enter");
+ ret_if(data == NULL);
+ ret_if(user_data == NULL);
+
+ ciss_appdata_t *ad = (ciss_appdata_t *)user_data;
+
+ ad->resp_ss_type = CISS_SERVICE_WAITING;
+ __ciss_tapi_ss_resp_handle(result, data, user_data);
+ return;
+}
+
+static void __ciss_ss_cli_resp_cb(TapiHandle *handle, int result, void *data, void *user_data)
+{
+ DBG("Enter");
+ ret_if(data == NULL);
+ ret_if(user_data == NULL);
+
+ ciss_appdata_t *ad = (ciss_appdata_t *)user_data;
+
+ ad->resp_ss_type = CISS_SERVICE_IDENTIFICATION;
+ __ciss_tapi_ss_resp_handle(result, data, user_data);
+ return;
+}
+
+static void __ciss_change_ss_barring_pw_resp_cb(TapiHandle *handle, int result, void *data, void *user_data)
+{
+ DBG("Enter");
+ ret_if(user_data == NULL);
+
+ ciss_appdata_t *ad = (ciss_appdata_t *)user_data;
+
+ ad->resp_ss_type = CISS_SERVICE_CHANGE_BARRING_PASSWD;
+ __ciss_tapi_ss_resp_handle(result, data, user_data);
+ return;
+}
+
+static void __ciss_ss_ussd_resp_cb(TapiHandle *handle, int result, void *data, void *user_data)
+{
+ DBG("Enter");
+ ret_if(data == NULL);
+ ret_if(user_data == NULL);
+
+ ciss_appdata_t *ad = (ciss_appdata_t *)user_data;
+
+ ad->resp_ss_type = CISS_SERVICE_USSD;
+ _ciss_tapi_ussd_resp_handle(result, data, user_data);
+ return;
+}