2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 #include "time_format.h"
19 #include <system_settings.h>
23 static bool use24hformat;
24 static char *locale, *tz_timezone;
25 static int init_count;
26 int LOCKSCREEN_EVENT_TIME_FORMAT_CHANGED;
28 static void _time_changed(system_settings_key_e key, void *user_data)
30 int ret = SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
33 case SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR:
34 ret = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, &use24hformat);
36 case SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE:
38 ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE, &tz_timezone);
40 case SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE:
42 ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
44 case SYSTEM_SETTINGS_KEY_TIME_CHANGED:
45 ret = SYSTEM_SETTINGS_ERROR_NONE;
48 ERR("Unhandled system_setting event: %d", key);
52 if (ret == SYSTEM_SETTINGS_ERROR_NONE) {
53 ecore_event_add(LOCKSCREEN_EVENT_TIME_FORMAT_CHANGED, NULL, NULL, NULL);
57 int lockscreen_time_format_init(void)
60 LOCKSCREEN_EVENT_TIME_FORMAT_CHANGED = ecore_event_type_new();
61 int ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, _time_changed, NULL);
62 if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
63 ERR("system_settings_set_changed_cb failed: %s", get_error_message(ret));
67 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE, _time_changed, NULL);
68 if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
69 ERR("system_settings_set_changed_cb failed: %s", get_error_message(ret));
73 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_TIME_CHANGED, _time_changed, NULL);
74 if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
75 ERR("system_settings_set_changed_cb failed: %s", get_error_message(ret));
78 ret = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, &use24hformat);
80 if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
81 ERR("system_settings_get_value_bool failed: %s", get_error_message(ret));
85 ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
86 if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
87 ERR("system_settings_get_value_string failed: %s", get_error_message(ret));
91 ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE, &tz_timezone);
92 if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
94 ERR("system_settings_get_value_string failed: %s", get_error_message(ret));
103 void lockscreen_time_format_shutdown(void)
110 system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR);
111 system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE);
112 system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE);
113 system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_TIME_CHANGED);
114 locale = tz_timezone = NULL;
119 const char *lockscreen_time_format_locale_get(void)
124 const char *lockscreen_time_format_timezone_get(void)
129 bool lockscreen_time_format_use_24h(void)