Sync from SPIN branch 98/47298/1 tizen_3.0.m1_mobile tizen_3.0.m1_tv accepted/tizen/mobile/20150903.053604 accepted/tizen/mobile/20151116.075048 accepted/tizen/tv/20150903.053716 accepted/tizen/tv/20151116.075058 accepted/tizen/wearable/20150903.053837 accepted/tizen/wearable/20151116.075109 submit/tizen/20150903.021205 submit/tizen/20151116.064441 submit/tizen_common/20151023.083358 submit/tizen_common/20151026.085049 tizen_3.0.m1_mobile_release tizen_3.0.m1_tv_release tizen_3.0.m2.a1_mobile_release tizen_3.0.m2.a1_tv_release
authorWootak Jung <wootak.jung@samsung.com>
Wed, 2 Sep 2015 05:32:43 +0000 (14:32 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Wed, 2 Sep 2015 05:35:19 +0000 (14:35 +0900)
Change-Id: I3a4148efa742dd3ac3feb032f49b20f5125e4189

include/telephony_common.h
include/telephony_sim.h
packaging/capi-telephony.spec
src/telephony_common.c
test/test_all_api.c

index 8c3f9c9d40176cd53ac0fa405a6e52b09eeb4994..2693509beae5710aa8026ea1e2be7b503b11e9c0 100644 (file)
@@ -200,6 +200,82 @@ int telephony_init(telephony_handle_list_s *list);
  */
 int telephony_deinit(telephony_handle_list_s *list);
 
+/**
+ * @brief Enumeration for the telephony state.
+ * @since_tizen 2.4
+ */
+typedef enum {
+    TELEPHONY_STATE_NOT_READY, /**< Telephony state is not ready */
+    TELEPHONY_STATE_READY, /**< Telephony state is ready */
+} telephony_state_e;
+
+/**
+ * @brief Called for the telephony state changes.
+ * @since_tizen 2.4
+ */
+typedef void (*telephony_state_changed_cb)(telephony_state_e state, void *user_data);
+
+/**
+ * @brief Acquires the telephony state value
+ *
+ * @since_tizen 2.4
+ *
+ * @param[out] state The state value of telephony.
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #TELEPHONY_ERROR_NONE              Successful
+ * @retval #TELEPHONY_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #TELEPHONY_ERROR_NOT_SUPPORTED     Not supported
+ * @retval #TELEPHONY_ERROR_OPERATION_FAILED  Operation failed
+ *
+ * @see telephony_set_state_changed_cb()
+ * @see telephony_unset_state_changed_cb()
+ */
+int telephony_get_state(telephony_state_e *state);
+
+/**
+ * @brief Sets a callback function to be invoked when the telephony state changes.
+ *
+ * @since_tizen 2.4
+ *
+ * @param[in] callback The callback to be invoked when the telephony state changes
+ * @param[in] user_data The user data passed to the callback function
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #TELEPHONY_ERROR_NONE              Successful
+ * @retval #TELEPHONY_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #TELEPHONY_ERROR_NOT_SUPPORTED     Not supported
+ * @retval #TELEPHONY_ERROR_OPERATION_FAILED  Operation failed
+ *
+ * @post telephony_state_changed_cb() will be invoked.
+ *
+ * @see telephony_unset_state_changed_cb()
+ */
+int telephony_set_state_changed_cb(telephony_state_changed_cb callback, void *user_data);
+
+/**
+ * @brief Unsets a telephony state callback function.
+ *
+ * @since_tizen 2.4
+ *
+ * @param[in] callback The callback to unset when the telephony state changes
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #TELEPHONY_ERROR_NONE              Successful
+ * @retval #TELEPHONY_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #TELEPHONY_ERROR_NOT_SUPPORTED     Not supported
+ * @retval #TELEPHONY_ERROR_OPERATION_FAILED  Operation failed
+ *
+ * @see telephony_set_state_changed_cb()
+ */
+int telephony_unset_state_changed_cb(telephony_state_changed_cb callback);
+
 /**
  * @}
  */
index f9481fe337dde6d362f300577ad46366f0b3fb9a..994c755ae1b0949804ed65adf6c0f9f4a6675124 100644 (file)
@@ -279,7 +279,7 @@ int telephony_sim_get_application_list(telephony_h handle, unsigned int *app_lis
  */
 int telephony_sim_get_subscriber_number(telephony_h handle, char **subscriber_number);
 
-/*
+/**
  * @brief Gets the Subscriber ID.
  * @details This function gets subscriber ID encoded.
  *
index 79a89dcbfb01c4c0172151b5aab2ae35dff22923..53ae1a56b8b46bf4fa89d75614de8ec388ecf2a7 100644 (file)
@@ -1,6 +1,6 @@
 Name:       capi-telephony
 Summary:    Telephony Core API
-Version:    0.1.47
+Version:    0.1.48
 Release:    1
 Group:      System/Libraries
 License:    Apache-2.0
index 2b0a4a31835daca3e65b7ceb73c42417df2452f1..a63e5dc34f0a30d61dad0ffc43da852f53851b5e 100644 (file)
@@ -495,3 +495,48 @@ int telephony_deinit(telephony_handle_list_s *list)
 
        return TELEPHONY_ERROR_NONE;
 }
+
+int telephony_get_state(telephony_state_e *state)
+{
+       int res = 0;
+       int value = 0;
+
+       CHECK_TELEPHONY_SUPPORTED(TELEPHONY_FEATURE);
+       CHECK_INPUT_PARAMETER(state);
+
+       res = tel_get_ready_state(&value);
+       if (res != TAPI_API_SUCCESS)
+               return TELEPHONY_ERROR_OPERATION_FAILED;
+
+       *state = value;
+
+       return TELEPHONY_ERROR_NONE;
+}
+
+int telephony_set_state_changed_cb(telephony_state_changed_cb callback, void *user_data)
+{
+       int res = 0;
+
+       CHECK_TELEPHONY_SUPPORTED(TELEPHONY_FEATURE);
+       CHECK_INPUT_PARAMETER(callback);
+
+       res = tel_register_ready_state_cb((tapi_state_cb)callback, user_data);
+       if (res != TAPI_API_SUCCESS)
+               return TELEPHONY_ERROR_OPERATION_FAILED;
+
+       return TELEPHONY_ERROR_NONE;
+}
+
+int telephony_unset_state_changed_cb(telephony_state_changed_cb callback)
+{
+       int res = 0;
+
+       CHECK_TELEPHONY_SUPPORTED(TELEPHONY_FEATURE);
+       CHECK_INPUT_PARAMETER(callback);
+
+       res = tel_deregister_ready_state_cb((tapi_state_cb)callback);
+       if (res != TAPI_API_SUCCESS)
+               return TELEPHONY_ERROR_OPERATION_FAILED;
+
+       return TELEPHONY_ERROR_NONE;
+}
index 6ca4375cbddd8e746ef93378734fdc5fd573c5e9..c5b454d50d1782c0e5401590faa4b6990a2aae65 100644 (file)
@@ -293,12 +293,18 @@ static void call_noti_cb(telephony_h handle, telephony_noti_e noti_id, void *dat
                                direction == TELEPHONY_CALL_DIRECTION_MO ? "MO" : "MT",
                                conf_status ? "TRUE" : "FALSE");
                        free(number);
+                       number = NULL;
                }
                telephony_call_release_call_list(count, &call_list);
        }
 
 }
 
+static void on_telephony_state_changed_cb(telephony_state_e state, void *user_data)
+{
+       LOGI("telephony state value : [%d]", state);
+}
+
 int main()
 {
        int ret_value, i;
@@ -339,6 +345,9 @@ int main()
        char *imei = NULL;
        telephony_modem_power_status_e power_status = 0;
 
+       /* Ready */
+       telephony_state_e ready_state = 0;
+
        /* Initialize handle */
        ret_value = telephony_init(&handle_list);
        if (ret_value != TELEPHONY_ERROR_NONE) {
@@ -546,6 +555,7 @@ int main()
                        LOGI("handle_id[%d] number[%s] type[%d] status[%d] direction[%d] conf_status[%d]",
                                handle_id, number, type, status, direction, conf_status);
                        free(number);
+                       number = NULL;
                }
                telephony_call_release_call_list(count, &call_list);
        }
@@ -582,6 +592,18 @@ int main()
                        LOGE("Set noti failed!!!");
        }
 
+       ret_value = telephony_get_state(&ready_state);
+       if (ret_value != TELEPHONY_ERROR_NONE)
+               LOGI("telephony_get_state() failed!!!");
+       else
+               LOGI("telephony_get_state() succeed ! : %s", ready_state ? "TRUE" : "FALSE");
+
+       ret_value = telephony_set_state_changed_cb(on_telephony_state_changed_cb, NULL);
+       if (ret_value != TELEPHONY_ERROR_NONE)
+               LOGI("telephony_set_state_changed_cb() failed!!!");
+       else
+               LOGI("telephony_set_state_changed_cb() succeed!!");
+
        LOGI("If telephony status is changed, then callback function will be called");
        event_loop = g_main_loop_new(NULL, FALSE);
        g_main_loop_run(event_loop);
@@ -606,5 +628,11 @@ int main()
        if (ret_value != TELEPHONY_ERROR_NONE)
                LOGE("Deinitialize failed!!!");
 
+       ret_value = telephony_unset_state_changed_cb(on_telephony_state_changed_cb);
+       if (ret_value != TELEPHONY_ERROR_NONE)
+               LOGE("telephony_unset_state_changed_cb() failed!!!");
+       else
+               LOGD("telephony_unset_state_changed_cb() succeed!!");
+
        return 0;
 }