2 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
4 * Licensed under the Flora License, Version 1.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://floralicense.org/license/
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 <bluetooth.h>
18 #include <vconf-keys.h>
21 #include "setting_data_vconf.h"
22 #include "setting_indicator_util.h"
24 void indicator_vconf_changed_cb(keynode_t *node, void *data)
29 ERR("appdata is null!!");
33 Evas_Object *layout = NULL;
35 layout = elm_object_item_part_content_get(elm_genlist_first_item_get(ad->main_genlist), "elm.icon");
36 indicator_view_update(layout);
39 void _indicator_set_BT_icon(keynode_t *node, void *data)
41 Evas_Object *layout = data;
42 int isBTOn = 0, sap_connected = 0, headset_connected = 0;
44 if (vconf_get_int(VCONFKEY_BT_STATUS, &isBTOn) != 0) {
45 DBG("vconf_get_int() failed");
49 elm_object_signal_emit(layout, "hideHeadset", "img.headset");
52 vconf_get_bool(VCONFKEY_WMS_WMANAGER_CONNECTED, &sap_connected);
53 DBG("SAP conntected : %d", sap_connected);
54 if (sap_connected == 0) {
55 elm_object_signal_emit(layout, "showUnconnctedBTicon", "img.bluetooth");
57 elm_object_signal_emit(layout, "showConnectedBTicon", "img.bluetooth");
59 vconf_get_int(VCONFKEY_BT_DEVICE, &headset_connected);
60 DBG("Heaadset connected : %x", headset_connected);
61 if (headset_connected & VCONFKEY_BT_DEVICE_A2DP_HEADSET_CONNECTED) {
62 elm_object_signal_emit(layout, "showHeadset", "img.headset");
64 elm_object_signal_emit(layout, "hideHeadset", "img.headset");
67 elm_object_signal_emit(layout, "hideBTicon", "img.bluetooth");
68 elm_object_signal_emit(layout, "hideHeadset", "img.headset");
72 void _indicator_set_battery_icon(keynode_t *node, void *data)
74 int battery_level = 100;
75 int is_battery_display = -1;
76 char buf[1024] = {0,};
78 Evas_Object *icon = NULL;
81 Evas_Object *layout = data;
83 icon = elm_object_part_content_get(layout, "sw.battery");
85 icon = elm_layout_add(layout);
86 elm_layout_file_set(icon, EDJE_PATH, "setting/indicator/battery_icon");
87 evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
88 evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
89 elm_object_part_content_set(layout, "sw.battery", icon);
92 vconf_get_int(VCONFKEY_SYSMAN_BATTERY_CAPACITY, &battery_level);
93 vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &is_battery_display);
94 if (is_battery_display) {
95 char *level = _get_strnum_from_icu(battery_level);
97 DBG("%s %d", level, strlen(level));
98 if (strlen(level) > 6) {
99 snprintf(buf, sizeof(buf) - 1, "%d%%", battery_level);
101 snprintf(buf, sizeof(buf) - 1, "%s%%", level);
103 elm_object_part_text_set(layout, "txt.battery", buf);
107 elm_object_part_text_set(layout, "txt.battery", "");
111 vconf_get_int(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, &is_charged);
112 DBG("battery_level: %d, isCharging: %d", battery_level, is_charged);
113 if (is_charged == 1) {
114 snprintf(buf, sizeof(buf) - 1, "change_charging_level_");
115 } else if (is_charged == 0) {
116 snprintf(buf, sizeof(buf) - 1, "change_level_");
117 } else if (is_charged == -1) {
118 DBG("Battery charging has problem");
119 elm_object_part_text_set(layout, "txt.battery", "");
120 snprintf(buf, sizeof(buf) - 1, "change_level_");
124 snprintf(buf2, sizeof(buf2) - 1, "%02d", battery_level);
125 strncat(buf, buf2, sizeof(buf) - 1);
126 DBG("battery file : %s", buf);
127 elm_object_signal_emit(icon, buf, "img.battery");
128 elm_object_signal_emit(layout, "showBattery", "sw.battery");
131 void indicator_view_update(Evas_Object *layout)
134 _indicator_set_BT_icon(NULL, layout);
137 _indicator_set_battery_icon(NULL, layout);
140 void indicator_set_vconf_changed_cb(void *data)
142 register_vconf_changing(VCONFKEY_WMS_WMANAGER_CONNECTED, indicator_vconf_changed_cb, data);
143 register_vconf_changing(VCONFKEY_SYSMAN_BATTERY_CAPACITY, indicator_vconf_changed_cb, data);
144 register_vconf_changing(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, indicator_vconf_changed_cb, data);
145 register_vconf_changing(VCONFKEY_BT_DEVICE, indicator_vconf_changed_cb, data);
148 void indicator_unset_vconf_changed_cb()
150 unregister_vconf_changing(VCONFKEY_WMS_WMANAGER_CONNECTED, indicator_vconf_changed_cb);
151 unregister_vconf_changing(VCONFKEY_SYSMAN_BATTERY_CAPACITY, indicator_vconf_changed_cb);
152 unregister_vconf_changing(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, indicator_vconf_changed_cb);
153 unregister_vconf_changing(VCONFKEY_BT_DEVICE, indicator_vconf_changed_cb);