diff options
author | Kyeonghun Lee <kh9090.lee@samsung.com> | 2017-03-14 15:40:24 +0900 |
---|---|---|
committer | Kyeonghun Lee <kh9090.lee@samsung.com> | 2017-03-14 15:43:04 +0900 |
commit | 7f54cb4da5abe7703cd01e1c4c73536ac29f1437 (patch) | |
tree | 474fb038864c84d74032ff1e5453923957603c9d /src | |
parent | 91f6470da0a606545c7c366857b1fafae45614c3 (diff) | |
download | messages-7f54cb4da5abe7703cd01e1c4c73536ac29f1437.tar.gz messages-7f54cb4da5abe7703cd01e1c4c73536ac29f1437.tar.bz2 messages-7f54cb4da5abe7703cd01e1c4c73536ac29f1437.zip |
fix messages_set_message_incoming_cb() issue
Change-Id: Iba203fd190e8fb8590ddffc1d020019ddd31cde5
Signed-off-by: Kyeonghun Lee <kh9090.lee@samsung.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/messages.c | 43 |
1 files changed, 22 insertions, 21 deletions
diff --git a/src/messages.c b/src/messages.c index 3832426..ee16cac 100644 --- a/src/messages.c +++ b/src/messages.c @@ -40,6 +40,8 @@ int _messages_load_mms_data(messages_message_s * msg, msg_handle_t handle); int _messages_save_textfile(const char *text, char **filepath); int _messages_load_textfile(const char *filepath, char **text); void _messages_sent_mediator_cb(msg_handle_t handle, msg_struct_t pStatus, void *user_param); +void _messages_incoming_mediator_cb(msg_handle_t handle, msg_struct_t msg, void *user_param); +void _messages_incoming_cb_mediator_cb(msg_handle_t handle, msg_struct_t msg, void *user_param); int _messages_check_feature(char *feature_name); int messages_open_service(messages_service_h * svc) @@ -74,6 +76,26 @@ int messages_open_service(messages_service_h * svc) return ERROR_CONVERT(ret); } + ret = msg_reg_sms_message_callback(_svc->service_h, &_messages_incoming_mediator_cb, 0, (void *)_svc); + if (MSG_SUCCESS != ret) { + free(_svc); + return ERROR_CONVERT(ret); + } + + ret = msg_reg_cb_message_callback(_svc->service_h, &_messages_incoming_cb_mediator_cb, true, (void *)_svc); + if (MSG_SUCCESS != ret) { + free(_svc); + return ERROR_CONVERT(ret); + } + + if (MESSAGES_ERROR_NONE == _messages_check_feature(MESSAGES_TELEPHONY_MMS_FEATURE)) { + ret = msg_reg_mms_conf_message_callback(_svc->service_h, &_messages_incoming_mediator_cb, NULL, (void *)_svc); + if (MSG_SUCCESS != ret) { + free(_svc); + return ERROR_CONVERT(ret); + } + } + *svc = (messages_service_h) _svc; return MESSAGES_ERROR_NONE; @@ -836,32 +858,11 @@ int messages_set_message_incoming_cb(messages_service_h svc, messages_incoming_c { CHECK_MESSAGES_SUPPORTED(MESSAGES_TELEPHONY_SMS_FEATURE); - int ret; - messages_service_s *_svc = (messages_service_s *) svc; CHECK_NULL(_svc); CHECK_NULL(callback); - if (NULL == _svc->incoming_cb) { - ret = ERROR_CONVERT(msg_reg_sms_message_callback(_svc->service_h, &_messages_incoming_mediator_cb, 0, (void *)_svc) - ); - if (MESSAGES_ERROR_NONE != ret) - return ret; - - ret = ERROR_CONVERT(msg_reg_cb_message_callback(_svc->service_h, &_messages_incoming_cb_mediator_cb, true, (void *)_svc) - ); - if (MESSAGES_ERROR_NONE != ret) - return ret; - - if (MESSAGES_ERROR_NONE == _messages_check_feature(MESSAGES_TELEPHONY_MMS_FEATURE)) { - ret = ERROR_CONVERT(msg_reg_mms_conf_message_callback(_svc->service_h, &_messages_incoming_mediator_cb, NULL, (void *)_svc) - ); - if (MESSAGES_ERROR_NONE != ret) - return ret; - } - } - _svc->incoming_cb = (void *)callback; _svc->incoming_cb_user_data = (void *)user_data; _svc->incoming_cb_enabled = true; |