From 55a1f54fe5a6181a1678da75b6ba7e0e50e54ea5 Mon Sep 17 00:00:00 2001 From: "jinwang.an" Date: Tue, 6 Feb 2018 18:27:07 +0900 Subject: [PATCH] Add SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE Change-Id: I6245f2efe76276eb4b02cc3cc3ecac8479ed028a Signed-off-by: jinwang.an --- doc/system_settings_doc.h | 3 +- include/system_settings.h | 1 + include/system_settings_private.h | 40 ++++++++++++++++++++++++ src/system_setting_platform.c | 40 ++++++++++++++++++++++++ src/system_settings.c | 18 +++++++++-- src/system_settings_vconf.c | 1 + unit_test/src/unit_test.c | 66 +++++++++++++++++++++++++++++++++++++++ 7 files changed, 166 insertions(+), 3 deletions(-) diff --git a/doc/system_settings_doc.h b/doc/system_settings_doc.h index 99b2cf8..d73c763 100644 --- a/doc/system_settings_doc.h +++ b/doc/system_settings_doc.h @@ -62,7 +62,8 @@ * #SYSTEM_SETTINGS_KEY_FONT_TYPE * #SYSTEM_SETTINGS_KEY_FONT_SIZE * http://tizen.org/feature/network.wifi #SYSTEM_SETTINGS_KEY_NETWORK_WIFI_NOTIFICATION -* http://tizen.org/feature/network.telephony #SYSTEM_SETTINGS_KEY_ULTRA_DATA_SAVE +* http://tizen.org/feature/network.telephony #SYSTEM_SETTINGS_KEY_ULTRA_DATA_SAVE * #SYSTEM_SETTINGS_KEY_ULTRA_DATA_SAVE_PKG_LIST +* #SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE * */ diff --git a/include/system_settings.h b/include/system_settings.h index 26795e6..1a56cd3 100644 --- a/include/system_settings.h +++ b/include/system_settings.h @@ -90,6 +90,7 @@ typedef enum { SYSTEM_SETTINGS_KEY_ULTRA_DATA_SAVE_PKG_LIST, /**< (string) Indicates Ultra Data Save Package List (Since 4.0), the list is a string containing whitelisted package names separated with semicolons (;) */ SYSTEM_SETTINGS_KEY_ACCESSIBILITY_TTS, /**< GET (bool) Indicates whether the accessibility TTS is enabled on the device. (Since 4.0) */ SYSTEM_SETTINGS_KEY_VIBRATION, /**< (bool) Indicates whether vibration is enabled on the device. (Since 4.0) */ + SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE, /**< (bool) Indicates whether updating time automatically is enabled on the device. (Since 5.0) */ SYSTEM_SETTINGS_KEY_MAX, } system_settings_key_e; diff --git a/include/system_settings_private.h b/include/system_settings_private.h index e1283f8..0d1804d 100644 --- a/include/system_settings_private.h +++ b/include/system_settings_private.h @@ -1519,6 +1519,46 @@ int system_setting_unset_changed_callback_vibration(system_settings_key_e key); /** * @internal + * @since_tizen 5.0 + * @return 0 on success, otherwise a negative error value + * @retval #SYSTEM_SETTINGS_ERROR_NONE Successful + * @retval #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error + * @retval #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error + */ +int system_setting_get_automatic_time_update(system_settings_key_e key, void **value); + +/** + * @internal + * @since_tizen 5.0 + * @return 0 on success, otherwise a negative error value + * @retval #SYSTEM_SETTINGS_ERROR_NONE Successful + * @retval #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error + * @retval #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error + */ +int system_setting_set_automatic_time_update(system_settings_key_e key, void *value); + +/** + * @internal + * @since_tizen 5.0 + * @return 0 on success, otherwise a negative error value + * @retval #SYSTEM_SETTINGS_ERROR_NONE Successful + * @retval #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error + * @retval #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error + */ +int system_setting_set_changed_callback_automatic_time_update(system_settings_key_e key, system_settings_changed_cb callback, void *user_data); + +/** + * @internal + * @since_tizen 5.0 + * @return 0 on success, otherwise a negative error value + * @retval #SYSTEM_SETTINGS_ERROR_NONE Successful + * @retval #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error + * @retval #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error + */ +int system_setting_unset_changed_callback_automatic_time_update(system_settings_key_e key); + +/** + * @internal * @since_tizen 3.0 * @return 0 on success, otherwise a negative error value * @retval #SYSTEM_SETTINGS_ERROR_NONE Successful diff --git a/src/system_setting_platform.c b/src/system_setting_platform.c index 83ccddd..a2665a4 100644 --- a/src/system_setting_platform.c +++ b/src/system_setting_platform.c @@ -2394,3 +2394,43 @@ int system_setting_unset_changed_callback_vibration(system_settings_key_e key) return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, 2); } +/* SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE */ +int system_setting_get_automatic_time_update(system_settings_key_e key, void **value) +{ + SETTING_TRACE_BEGIN; + bool vconf_value; + + if (system_setting_vconf_get_value_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, &vconf_value)) { + return SYSTEM_SETTINGS_ERROR_IO_ERROR; + } + *value = (void *)vconf_value; + + return SYSTEM_SETTINGS_ERROR_NONE; +} + +/* LCOV_EXCL_START */ +int system_setting_set_automatic_time_update(system_settings_key_e key, void *value) +{ + SETTING_TRACE_BEGIN; + bool *vconf_value; + vconf_value = (bool *)value; + if (system_setting_vconf_set_value_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, *vconf_value)) { + return SYSTEM_SETTINGS_ERROR_IO_ERROR; + } + + return SYSTEM_SETTINGS_ERROR_NONE; +} +/* LCOV_EXCL_STOP */ + +int system_setting_set_changed_callback_automatic_time_update(system_settings_key_e key, system_settings_changed_cb callback, void *user_data) +{ + SETTING_TRACE_BEGIN; + return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE, 2, user_data); +} + +int system_setting_unset_changed_callback_automatic_time_update(system_settings_key_e key) +{ + SETTING_TRACE_BEGIN; + return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, 2); +} + diff --git a/src/system_settings.c b/src/system_settings.c index 661d2cc..a582dae 100644 --- a/src/system_settings.c +++ b/src/system_settings.c @@ -1,5 +1,4 @@ -/* - * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved +/* * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved * * Licensed under the Apache License, Version 2.0 (the License); * you may not use this file except in compliance with the License. @@ -537,6 +536,21 @@ system_setting_s system_setting_table[] = { NULL, /* user data */ }, { + SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE, + SYSTEM_SETTING_DATA_TYPE_BOOL, + system_setting_get_automatic_time_update, + system_setting_set_automatic_time_update, + system_setting_set_changed_callback_automatic_time_update, + system_setting_unset_changed_callback_automatic_time_update, + NULL, + NULL, /* ADD */ + NULL, /* DEL */ + NULL, /* LIST */ + system_setting_feature_check_telephony, /* feature check */ + { NULL, 0 }, /* changed callabck list */ + NULL, /* user data */ + }, + { SYSTEM_SETTINGS_MAX, -1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, { NULL, 0 }, NULL } }; diff --git a/src/system_settings_vconf.c b/src/system_settings_vconf.c index 2fd4586..c9bec4a 100644 --- a/src/system_settings_vconf.c +++ b/src/system_settings_vconf.c @@ -65,6 +65,7 @@ static char* _system_settings_vconf_table[38] = { VCONFKEY_SETAPPL_UDSM_PKGID_LIST, VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, + VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, "MAX" }; diff --git a/unit_test/src/unit_test.c b/unit_test/src/unit_test.c index 124cd96..c749ab5 100644 --- a/unit_test/src/unit_test.c +++ b/unit_test/src/unit_test.c @@ -2155,6 +2155,35 @@ RETTYPE utc_system_settings_set_value_bool_p6(void) RETURN(0); } +/** + * @testcase utc_system_settings_set_value_bool_p7 + * @since_tizen 5.0 + * @description check if SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE is able to set the property. + * check if SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE is able to get the property. + */ +RETTYPE utc_system_settings_set_value_bool_p7(void) +{ + int ret; + + /* get current state */ + bool ret_state = false; + ret = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE, &ret_state); + my_assert_ret(ret); + + + bool state = !ret_state; + ret = system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE, state); + my_assert_ret(ret); + + + /* roll back */ + ret = system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE, ret_state); + my_assert_ret(ret); + + assert(state != ret_state); + RETURN(0); +} + /** * @testcase utc_system_settings_set_value_int_p2 @@ -2626,6 +2655,40 @@ RETTYPE utc_system_settings_lock_screen_app_p1(void) RETURN(0); } +/** + * @testcase utc_system_settings_set_changed_cb_p35 + * @since_tizen 5.0 + * @description check if SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE is able to set the callback for change-notification. + */ +RETTYPE utc_system_settings_set_changed_cb_p35(void) +{ + system_settings_changed_cb callback = get_system_settings_test_callback(); + int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE, + callback, NULL); + my_assert_ret(retcode); + + RETURN(0); +} + + +/** + * @testcase utc_system_settings_unset_changed_cb_p34 + * @since_tizen 5.0 + * @description check if SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE is able to set the callback for change-notification. + * check if SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE is able to unset the callback for change-notification. + */ +RETTYPE utc_system_settings_unset_changed_cb_p34(void) +{ + system_settings_changed_cb callback = get_system_settings_test_callback(); + int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE, + callback, NULL); + + retcode = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE); + my_assert_ret(retcode); + + RETURN(0); +} + void unittest_api() { /* hook up your test functions */ @@ -2726,6 +2789,8 @@ void unittest_api() g_test_add_func("/utc_system_settings_unset_changed_cb_p30", utc_system_settings_unset_changed_cb_p30); g_test_add_func("/utc_system_settings_set_changed_cb_p33", utc_system_settings_set_changed_cb_p33); g_test_add_func("/utc_system_settings_unset_changed_cb_p32", utc_system_settings_unset_changed_cb_p32); + g_test_add_func("/utc_system_settings_set_changed_cb_p35", utc_system_settings_set_changed_cb_p35); + g_test_add_func("/utc_system_settings_unset_changed_cb_p34", utc_system_settings_unset_changed_cb_p34); g_test_add_func("/utc_system_settings_add_ringtone_list_p1", utc_system_settings_add_ringtone_list_p1); g_test_add_func("/utc_system_settings_delete_ringtone_list_p1", utc_system_settings_delete_ringtone_list_p1); add_test_func("/utc_system_settings_set_value_string_p1", utc_system_settings_set_value_string_p1); @@ -2748,6 +2813,7 @@ void unittest_api() add_test_func("/utc_system_settings_set_value_bool_p4", utc_system_settings_set_value_bool_p4); add_test_func("/utc_system_settings_set_value_bool_p5", utc_system_settings_set_value_bool_p5); add_test_func("/utc_system_settings_set_value_bool_p6", utc_system_settings_set_value_bool_p6); + add_test_func("/utc_system_settings_set_value_bool_p7", utc_system_settings_set_value_bool_p7); add_test_func("/utc_system_settings_set_value_int_p2", utc_system_settings_set_value_int_p2); add_test_func("/utc_system_settings_set_value_string_n6", utc_system_settings_set_value_string_n6); g_test_add_func("/utc_system_settings_unset_changed_cb_n", utc_system_settings_unset_changed_cb_n); -- 2.7.4