Removing conditional statements for Mobile/Wearable profile
[platform/core/api/system-settings.git] / include / system_settings.h
1 /*
2  * Copyright (c) 2011-2020 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #ifndef __TIZEN_SYSTEM_SYSTEM_SETTINGS_H__
17 #define __TIZEN_SYSTEM_SYSTEM_SETTINGS_H__
18
19 #include <tizen.h>
20
21 #ifdef __cplusplus
22 extern "C"
23 {
24 #endif
25
26 /**
27  * @file system_settings.h
28  */
29
30 /**
31  * @addtogroup CAPI_SYSTEM_SYSTEM_SETTINGS_MODULE
32  * @{
33  */
34
35 /**
36  * @brief Enumeration for system settings error.
37  * @since_tizen 2.3
38  */
39 typedef enum {
40         SYSTEM_SETTINGS_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */
41         SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */
42         SYSTEM_SETTINGS_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */
43         SYSTEM_SETTINGS_ERROR_IO_ERROR = TIZEN_ERROR_IO_ERROR, /**< Internal I/O error */
44         SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */
45         SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< Not supported (Since 2.3.1) */
46         SYSTEM_SETTINGS_ERROR_CALL_UNSUPPORTED_API = TIZEN_ERROR_NOT_SUPPORTED, /**< Not supported (Since 2.3.1) */
47
48         /* lock screen app error code */
49         SYSTEM_SETTINGS_ERROR_LOCKSCREEN_APP_PASSWORD_MODE = TIZEN_ERROR_SYSTEM_SETTING | 0x01, /**< Current lock screen app set 'password' type */
50 } system_settings_error_e;
51
52 /**
53  * @brief Enumeration for System Settings Key.
54  * @since_tizen 2.3
55  */
56 typedef enum {
57         SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, /**< (string) The file path of the current ringtone */
58         SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, /**< (string) The file path of the current home screen wallpaper */
59         SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, /**< (string) The file path of the current lock screen wallpaper */
60         SYSTEM_SETTINGS_KEY_FONT_SIZE, /**< (int) The current system font size */
61         SYSTEM_SETTINGS_KEY_FONT_TYPE, /**< (string) The current system font type */
62         SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, /**< (bool) Indicates whether the motion service is activated */
63         SYSTEM_SETTINGS_KEY_EMAIL_ALERT_RINGTONE,  /**< (string) The file path of the current email alert ringtone */
64         SYSTEM_SETTINGS_KEY_USB_DEBUGGING_ENABLED,      /**< (bool) Indicates whether the USB debugging is enabled (Since 2.4) */
65         SYSTEM_SETTINGS_KEY_3G_DATA_NETWORK_ENABLED,  /**< (bool) Indicates whether the 3G data network is enabled (Since 2.4) */
66         SYSTEM_SETTINGS_KEY_LOCKSCREEN_APP = SYSTEM_SETTINGS_KEY_3G_DATA_NETWORK_ENABLED + 2,    /**< (string) Indicates lockscreen app pkg name  */
67         SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE,/**< (string) The current system default font type (only support Get) */
68         SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY,             /**< (string) Indicates the current country setting in the <LANGUAGE>_<REGION> syntax. The country setting is in the ISO 639-2 format, and the region setting is in the ISO 3166-1 alpha-2 format */
69         SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE,    /**< (string) Indicates the current language setting in the <LANGUAGE>_<REGION> syntax. The language setting is in the ISO 639-2 format and the region setting is in the ISO 3166-1 alpha-2 format. */
70         SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR,   /**< (bool) Indicates whether the 24-hour clock is used. If the value is @c false, the 12-hour clock is used. */
71         SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE,    /**< (string) Indicates the current time zone. */
72         SYSTEM_SETTINGS_KEY_TIME_CHANGED,               /**< (int) Once System changes time, this event occurs to notify time change. */
73         SYSTEM_SETTINGS_KEY_SOUND_LOCK,                                 /**< GET (bool) Indicates whether the screen lock sound is enabled on the device. ex) LCD on/off sound */
74         SYSTEM_SETTINGS_KEY_SOUND_SILENT_MODE,                  /**< GET (bool) Indicates whether the device is in the silent mode. */
75         SYSTEM_SETTINGS_KEY_SOUND_TOUCH,                                /**< GET (bool) Indicates whether the screen touch sound is enabled on the device. */
76         SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO,       /**< GET (bool) Indicates whether rotation control is automatic.*/
77         SYSTEM_SETTINGS_KEY_DEVICE_NAME,                                        /**< GET (string) Indicates device name. */
78         SYSTEM_SETTINGS_KEY_MOTION_ENABLED,                                     /**< GET (bool) Indicates whether the device user has enabled the motion feature. */
79         SYSTEM_SETTINGS_KEY_NETWORK_WIFI_NOTIFICATION,          /**< GET (bool) Indicates whether Wi-Fi-related notifications are enabled on the device. */
80         SYSTEM_SETTINGS_KEY_NETWORK_FLIGHT_MODE,                        /**< GET (bool) Indicates whether the device is in the flight mode. */
81         SYSTEM_SETTINGS_KEY_SCREEN_BACKLIGHT_TIME,                      /**< (int) Indicates the backlight time (in seconds). @internal The following values can be used: 15, 30, 60, 120, 300, and 600. */
82         SYSTEM_SETTINGS_KEY_SOUND_NOTIFICATION,                         /**< (string) Indicates the file path of the current notification tone set by the user. */
83         SYSTEM_SETTINGS_KEY_SOUND_NOTIFICATION_REPETITION_PERIOD,       /**< (int) Indicates the time period for notification repetitions. */
84         SYSTEM_SETTINGS_KEY_LOCK_STATE,         /**< (int) Indicates the current lock state */
85         SYSTEM_SETTINGS_KEY_ADS_ID, /**< (string) Indicates Ads ID for each device (Since 3.0) */
86         SYSTEM_SETTINGS_KEY_ULTRA_DATA_SAVE, /**< (int) Indicates Ultra Data Save status, one of #system_settings_uds_state_e values (Since 4.0) */
87         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 (;) */
88         SYSTEM_SETTINGS_KEY_ACCESSIBILITY_TTS,                          /**< GET (bool) Indicates whether the accessibility TTS is enabled on the device. (Since 4.0) */
89         SYSTEM_SETTINGS_KEY_VIBRATION,                          /**< (bool) Indicates whether vibration is enabled on the device. (Since 4.0) */
90         SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE,      /**< (bool) Indicates whether updating time automatically is enabled on the device. (Since 5.0) */
91         SYSTEM_SETTINGS_KEY_DEVELOPER_OPTION_STATE,     /**< (bool) Indicates whether developer option state is enabled on the device. (Since 5.0) */
92         SYSTEM_SETTINGS_KEY_ACCESSIBILITY_GRAYSCALE,    /**< (bool) Indicates whether accessibility grayscale is enabled on the device. (Since 5.5) */
93         SYSTEM_SETTINGS_KEY_ACCESSIBILITY_NEGATIVE_COLOR,       /**< (bool) Indicates whether accessibility negative color is enabled on the device. (Since 5.5) */
94         SYSTEM_SETTINGS_KEY_ROTARY_EVENT_ENABLED,       /**< (bool) Indicates whether rotary event is enabled on the device. (Since 5.5) */
95         SYSTEM_SETTINGS_KEY_MAX,
96 } system_settings_key_e;
97
98 /**
99  * @brief Enumeration for Idle Lock State.
100  * @since_tizen 2.3.1
101  */
102 typedef enum {
103         SYSTEM_SETTINGS_LOCK_STATE_UNLOCK = 0, /**< Device is unlocked */
104         SYSTEM_SETTINGS_LOCK_STATE_LOCK, /**< Device is locked */
105         SYSTEM_SETTINGS_LOCK_STATE_LAUNCHING_LOCK /**< Device is being locked */
106 } system_settings_idle_lock_state_e;
107
108 /**
109  * @brief Enumeration for font size.
110  * @since_tizen 2.3
111  */
112 typedef enum {
113         SYSTEM_SETTINGS_FONT_SIZE_SMALL = 0, /**< A small size */
114         SYSTEM_SETTINGS_FONT_SIZE_NORMAL, /**< A normal size */
115         SYSTEM_SETTINGS_FONT_SIZE_LARGE, /**< A large size */
116         SYSTEM_SETTINGS_FONT_SIZE_HUGE, /**< A huge size */
117         SYSTEM_SETTINGS_FONT_SIZE_GIANT, /**< A giant size */
118 } system_settings_font_size_e;
119
120 /**
121  * @brief Enumeration for Ultra Data Save.
122  * @since_tizen 4.0
123  */
124 typedef enum {
125         SYSTEM_SETTINGS_UDS_OFF = 0,                    /**< OFF */
126         SYSTEM_SETTINGS_UDS_ON,                                 /**< ON */
127         SYSTEM_SETTINGS_UDS_ON_WHITELISTED,             /**< UDS on and the app is whitelisted */
128 } system_settings_uds_state_e;
129
130 /**
131  * @brief Called when the system settings changes.
132  * @since_tizen 2.3
133  * @param[in] key The key name of the system settings changed system settings
134  * @param[in] user_data The user data passed from the callback registration function
135  * @pre system_settings_set_changed_cb() will invoke this callback function.
136  * @see system_settings_set_changed_cb()
137  * @see system_settings_unset_changed_cb()
138  */
139 typedef void (*system_settings_changed_cb)(system_settings_key_e key, void *user_data);
140
141
142 typedef void* system_settings_cb_id;
143
144 /**
145  * @platform
146  * @brief Sets the system settings value associated with the given key as an integer.
147  * @since_tizen 2.3
148  * @privlevel platform
149  * @privilege %http://tizen.org/privilege/systemsettings.admin
150  * @remarks When the feature related to the @a key is not supported on the device, #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED will be returned.
151  * @param[in] key The key name of the system settings
152  * @param[out] value The new system settings value of the given key
153  * @return @c 0 on success, otherwise a negative error value
154  * @retval #SYSTEM_SETTINGS_ERROR_NONE Successful
155  * @retval #SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER Invalid parameter
156  * @retval #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
157  * @retval #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
158  * @retval #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED The related feature is not supported on the device
159  */
160 int system_settings_set_value_int(system_settings_key_e key, int value);
161
162 /**
163  * @brief Gets the system settings value associated with the given key as an integer.
164  * @since_tizen 2.3
165  * @remarks When the feature related to the @a key is not supported on the device, #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED will be returned.
166  * @param[in] key The key name of the system settings
167  * @param[out] value The current system settings value of the given key
168  * @return @c 0 on success, otherwise a negative error value
169  * @retval #SYSTEM_SETTINGS_ERROR_NONE Successful
170  * @retval #SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER Invalid parameter
171  * @retval #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
172  * @retval #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
173  * @retval #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED The related feature is not supported on the device
174  * @warning %http://tizen.org/privilege/systemsettings (public level privilege) <b>MUST NOT</b> be declared to use this function since 2.3.1.
175  */
176 int system_settings_get_value_int(system_settings_key_e key, int *value);
177
178 /**
179  * @platform
180  * @brief Sets the system settings value associated with the given key as a boolean.
181  * @since_tizen 2.3
182  * @privlevel platform
183  * @privilege %http://tizen.org/privilege/systemsettings.admin
184  * @remarks When the feature related to the @a key is not supported on the device, #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED will be returned.
185  * @param[in] key The key name of the system settings
186  * @param[out] value The new system settings value of the given key
187  * @return @c 0 on success, otherwise a negative error value
188  * @retval #SYSTEM_SETTINGS_ERROR_NONE Successful
189  * @retval #SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER Invalid parameter
190  * @retval #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
191  * @retval #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
192  * @retval #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED The related feature is not supported on the device
193  */
194 int system_settings_set_value_bool(system_settings_key_e key, bool value);
195
196 /**
197  * @brief Gets the system settings value associated with the given key as a boolean.
198  * @since_tizen 2.3
199  * @remarks When the feature related to the @a key is not supported on the device, #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED will be returned.
200  * @param[in] key The key name of the system settings
201  * @param[out] value The current system settings value of the given key
202  * @return @c 0 on success, otherwise a negative error value
203  * @retval #SYSTEM_SETTINGS_ERROR_NONE Successful
204  * @retval #SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER Invalid parameter
205  * @retval #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
206  * @retval #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
207  * @retval #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED The related feature is not supported on the device
208  * @warning %http://tizen.org/privilege/systemsettings (public level privilege) <b>MUST NOT</b> be declared to use this function since 2.3.1.
209  */
210 int system_settings_get_value_bool(system_settings_key_e key, bool *value);
211
212 /**
213  * @platform
214  * @brief Sets the system settings value associated with the given key as a string.
215  * @since_tizen 2.3
216  * @privlevel platform
217  * @privilege %http://tizen.org/privilege/systemsettings.admin
218  * @remarks #SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE is not available for setting. When the feature related to the @a key is not supported on the device, #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED will be returned.
219  * @param[in] key The key name of the system settings
220  * @param[out] value The new system settings value of the given key
221  * @return @c 0 on success, otherwise a negative error value
222  * @retval #SYSTEM_SETTINGS_ERROR_NONE Successful
223  * @retval #SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER Invalid parameter
224  * @retval #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
225  * @retval #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
226  * @retval #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED The related feature is not supported on the device
227  */
228 int system_settings_set_value_string(system_settings_key_e key, const char *value);
229
230 /**
231  * @brief Gets the system settings value associated with the given key as a string.
232  * @since_tizen 2.3
233  * @remarks You must release @a value using free(). When the feature related to the @a key is not supported on the device, #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED will be returned.
234  * @param[in] key The key name of the system settings
235  * @param[out] value The current system settings value of the given key
236  * @return 0 on success, otherwise a negative error value
237  * @retval #SYSTEM_SETTINGS_ERROR_NONE Successful
238  * @retval #SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER Invalid parameter
239  * @retval #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
240  * @retval #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
241  * @retval #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED The related feature is not supported on the device
242  * @warning %http://tizen.org/privilege/systemsettings (public level privilege) <b>MUST NOT</b> be declared to use this function since 2.3.1.
243  */
244 int system_settings_get_value_string(system_settings_key_e key, char **value);
245
246 /**
247  * @brief Sets a change event callback for the given system settings key.
248  * @since_tizen 2.3
249  * @remarks #SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE is not available for set_changed_cb. When the feature related to the @a key is not supported on the device, #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED will be returned.
250  * @param[in] key The key name of the system settings
251  * @param[in] callback The callback function to invoke
252  * @param[in] user_data The user data to be passed to the callback function
253  * @return 0 on success, otherwise a negative error value
254  * @retval #SYSTEM_SETTINGS_ERROR_NONE Successful
255  * @retval #SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER Invalid parameter
256  * @retval #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
257  * @retval #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED The related feature is not supported on the device
258  * @post system_settings_changed_cb() will be invoked.
259  *
260  * @see system_settings_unset_changed_cb()
261  * @see system_settings_changed_cb()
262  * @warning %http://tizen.org/privilege/systemsettings (public level privilege) <b>MUST NOT</b> be declared to use this function since 2.3.1.
263  *
264 */
265 int system_settings_set_changed_cb(system_settings_key_e key, system_settings_changed_cb callback, void *user_data);
266
267 /**
268  * @brief Unsets the callback function.
269  * @since_tizen 2.3
270  * @remarks #SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE is not available for set_changed_cb. When the feature related to the @a key is not supported on the device, #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED will be returned.
271  * @param[in] key The key name of the system settings
272  * @return 0 on success, otherwise a negative error value
273  * @retval #SYSTEM_SETTINGS_ERROR_NONE Successful
274  * @retval #SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER Invalid parameter
275  * @retval #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
276  * @retval #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED The related feature is not supported on the device
277  *
278  * @see system_settings_set_changed_cb()
279  * @warning %http://tizen.org/privilege/systemsettings (public level privilege) <b>MUST NOT</b> be declared to use this function since 2.3.1.
280  */
281 int system_settings_unset_changed_cb(system_settings_key_e key);
282
283 /**
284  * @platform
285  * @brief Called to get each string value from string typed list.
286  * @since_tizen 3.0
287  * @param[in] index zero based number indicating index of node in a list
288  * @param[in] value value returned from the list
289  * @param[in] cb_data  The user data passed from the foreach function
290  * @return @c true to continue with the next iteration of the loop, otherwise false to break out of the loop
291  */
292 typedef bool (*system_settings_iter_cb)(int index, const char *value, void *cb_data);
293
294 /**
295  * @platform
296  * @brief Iterate the system settings value associated with the given key as a string type.
297  * @since_tizen 3.0
298  * @privlevel platform
299  * @privilege %http://tizen.org/privilege/systemsettings.admin
300  * @remarks When the feature related to the @a key is not supported on the device, #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED will be returned.
301  * @param[in] key The key name of the system settings
302  * @param[in] callback The callback-function name for iteration
303  * @param[in] user_data  The user data passed from caller-side
304  * @return @c 0 on success, otherwise a negative error value
305  * @retval #SYSTEM_SETTINGS_ERROR_NONE Successful
306  * @retval #SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER Invalid parameter
307  * @retval #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
308  * @retval #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
309  * @retval #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED The related feature is not supported on the device
310  */
311 int system_settings_foreach_value_string(system_settings_key_e key, system_settings_iter_cb callback, void *user_data);
312
313 /**
314  * @platform
315  * @brief Adds the system settings value associated with the given key as a string type if it supports List iteration.
316  * @since_tizen 3.0
317  * @privlevel platform
318  * @privilege %http://tizen.org/privilege/systemsettings.admin
319  * @remarks When the feature related to the @a key is not supported on the device, #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED will be returned.
320  * @param[in] key The key name of the system settings
321  * @param[in] value string typed value to be appended
322  * @return @c 0 on success, otherwise a negative error value
323  * @retval #SYSTEM_SETTINGS_ERROR_NONE Successful
324  * @retval #SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER Invalid parameter
325  * @retval #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
326  * @retval #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
327  * @retval #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED The related feature is not supported on the device
328  */
329 int system_settings_add_value_string(system_settings_key_e key, const char *value);
330
331 /**
332  * @platform
333  * @brief Delete the system settings value associated with the given key as an string type if it supports List iteration.
334  * @since_tizen 3.0
335  * @privlevel platform
336  * @privilege %http://tizen.org/privilege/systemsettings.admin
337  * @remarks When the feature related to the @a key is not supported on the device, #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED will be returned.
338  * @param[in] key The key name of the system settings
339  * @param[in] value string typed value to be removed
340  * @return @c 0 on success, otherwise a negative error value
341  * @retval #SYSTEM_SETTINGS_ERROR_NONE Successful
342  * @retval #SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER Invalid parameter
343  * @retval #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
344  * @retval #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
345  * @retval #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED The related feature is not supported on the device
346  */
347 int system_settings_delete_value_string(system_settings_key_e key, const char *value);
348
349 /**
350  * @brief Adds a change event callback for the given system settings key.
351  * @details The difference between this function and system_settings_set_changed_cb() is that system_settings_set_changed_cb() can set only one callback for a given key, while system_settings_add_changed_cb() can set multiple callbacks for a given key.
352  * @since_tizen 5.0
353  * @remarks The @a key cannot be #SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE. When the feature related to the @a key is not supported on the device, #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED will be returned.
354
355  * @param[in] key The key name of the system settings
356  * @param[in] callback The callback function to invoke
357  * @param[in] user_data The user data to be passed to the callback function
358  * @return 0 on success, otherwise a negative error value
359  * @retval #SYSTEM_SETTINGS_ERROR_NONE Successful
360  * @retval #SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER Invalid parameter
361  * @retval #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED The related feature is not supported on the device
362  * @post system_settings_changed_cb() will be invoked.
363  *
364  * @see system_settings_remove_changed_cb()
365  * @see system_settings_changed_cb()
366  *
367 */
368 int system_settings_add_changed_cb(system_settings_key_e key, system_settings_changed_cb callback, void *user_data);
369
370 /**
371  * @brief Removes a change event callback function.
372  * @details The difference between this function and system_settings_unset_changed_cb() is that system_settings_unset_changed_cb() unsets the callback set with system_settings_set_changed_cb(), while system_settings_remove_changed_cb() removes callbacks added with system_settings_add_changed_cb()
373  * @since_tizen 5.0
374  * @remarks The @a key cannot be #SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE. When the feature related to the @a key is not supported on the device, #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED will be returned.
375  * @param[in] key The key name of the system settings
376  * @param[in] callback The callback function to be removed
377  * @return 0 on success, otherwise a negative error value
378  * @retval #SYSTEM_SETTINGS_ERROR_NONE Successful
379  * @retval #SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER Invalid parameter
380  * @retval #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED The related feature is not supported on the device
381  *
382  * @see system_settings_add_changed_cb()
383  */
384 int system_settings_remove_changed_cb(system_settings_key_e key, system_settings_changed_cb callback);
385 /**
386  * @}
387  */
388
389 #ifdef __cplusplus
390 }
391 #endif
392
393 #endif /* __TIZEN_SYSTEM_SYSTEM_SETTINGS_H__ */