2 * Copyright (c) 2000 - 2013 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 <bluetooth.h>
18 #include <vconf-keys.h>
21 #include "setting_indicator_util.h"
23 void indicator_vconf_changed_cb(keynode_t *node, void *data)
28 ERR("appdata is null!!");
32 Evas_Object *layout = NULL;
34 layout = elm_object_item_part_content_get(elm_genlist_first_item_get(ad->main_genlist), "elm.icon");
35 indicator_view_update(layout);
38 void _indicator_set_BT_icon(keynode_t *node, void *data)
40 Evas_Object *layout = data;
41 int isBTOn = 0, sap_connected = 0, headset_connected = 0;
43 if(vconf_get_int(VCONFKEY_BT_STATUS, &isBTOn) != 0) {
44 DBG("vconf_get_int() failed");
48 elm_object_signal_emit(layout, "hideHeadset", "img.headset");
51 vconf_get_bool(VCONFKEY_WMS_WMANAGER_CONNECTED, &sap_connected);
52 DBG("SAP conntected : %d", sap_connected);
53 if (sap_connected == 0) {
54 elm_object_signal_emit(layout, "showUnconnctedBTicon", "img.bluetooth");
56 elm_object_signal_emit(layout, "showConnectedBTicon", "img.bluetooth");
58 vconf_get_int(VCONFKEY_BT_DEVICE, &headset_connected);
59 DBG("Heaadset connected : %x", headset_connected);
60 if (headset_connected & VCONFKEY_BT_DEVICE_A2DP_HEADSET_CONNECTED) {
61 elm_object_signal_emit(layout, "showHeadset", "img.headset");
63 elm_object_signal_emit(layout, "hideHeadset", "img.headset");
66 elm_object_signal_emit(layout, "hideBTicon", "img.bluetooth");
67 elm_object_signal_emit(layout, "hideHeadset", "img.headset");
71 void _indicator_set_battery_icon(keynode_t *node, void *data)
73 int battery_level = 100;
74 int is_battery_display = -1;
75 char buf[1024] = {0,};
77 Evas_Object *icon = NULL;
80 Evas_Object *layout = data;
82 icon = elm_object_part_content_get(layout, "sw.battery");
84 icon = elm_layout_add(layout);
85 elm_layout_file_set(icon, EDJE_PATH, "setting/indicator/battery_icon");
86 evas_object_size_hint_weight_set (icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
87 evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
88 elm_object_part_content_set(layout, "sw.battery", icon);
91 vconf_get_int(VCONFKEY_SYSMAN_BATTERY_CAPACITY, &battery_level);
92 vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &is_battery_display);
93 if(is_battery_display) {
94 char *level = _get_strnum_from_icu(battery_level);
95 DBG("%s %d", level, strlen(level));
96 if(strlen(level) > 6) {
97 snprintf(buf, sizeof(buf)-1, "%d%%", battery_level);
99 snprintf(buf, sizeof(buf)-1, "%s%%", level);
101 elm_object_part_text_set(layout, "txt.battery", buf);
104 elm_object_part_text_set(layout, "txt.battery", "");
108 vconf_get_int(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, &is_charged);
109 DBG("battery_level: %d, isCharging: %d", battery_level, is_charged);
110 if(is_charged == 1) {
111 snprintf(buf, sizeof(buf)-1, "change_charging_level_");
112 } else if(is_charged == 0) {
113 snprintf(buf, sizeof(buf)-1, "change_level_");
114 } else if(is_charged == -1) {
115 DBG("Battery charging has problem");
116 elm_object_part_text_set(layout, "txt.battery", "");
117 snprintf(buf, sizeof(buf)-1, "change_level_");
121 snprintf(buf2, sizeof(buf2)-1, "%02d", battery_level);
122 strncat(buf, buf2, sizeof(buf)-1);
123 DBG("battery file : %s", buf);
124 elm_object_signal_emit(icon, buf, "img.battery");
125 elm_object_signal_emit(layout, "showBattery", "sw.battery");
128 void indicator_view_update(Evas_Object *layout)
131 _indicator_set_BT_icon(NULL, layout);
134 _indicator_set_battery_icon(NULL, layout);
137 void indicator_set_vconf_changed_cb(void *data)
139 vconf_notify_key_changed(VCONFKEY_WMS_WMANAGER_CONNECTED, indicator_vconf_changed_cb, data);
140 vconf_notify_key_changed(VCONFKEY_SYSMAN_BATTERY_CAPACITY, indicator_vconf_changed_cb, data);
141 vconf_notify_key_changed(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, indicator_vconf_changed_cb, data);
142 vconf_notify_key_changed(VCONFKEY_BT_DEVICE, indicator_vconf_changed_cb, data);
145 void indicator_unset_vconf_changed_cb()
147 vconf_ignore_key_changed(VCONFKEY_WMS_WMANAGER_CONNECTED, indicator_vconf_changed_cb);
148 vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_CAPACITY, indicator_vconf_changed_cb);
149 vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, indicator_vconf_changed_cb);
150 vconf_ignore_key_changed(VCONFKEY_BT_DEVICE, indicator_vconf_changed_cb);