terminate_if_no_popup();
}
+static void battery_status_changed(keynode_t *key, void *data)
+{
+ int status;
+ const struct popup_ops *ops = data;
+
+ status = vconf_keynode_get_int(key);
+ if (status < VCONFKEY_SYSMAN_BAT_LEVEL_HIGH)
+ return;
+
+ if (vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_LEVEL_STATUS,
+ battery_status_changed) < 0)
+ _E("Failed to release vconf key handler");
+
+ unload_simple_popup(ops);
+
+ terminate_if_no_popup();
+}
+
static void unregister_charger_status_handler(void)
{
vconf_ignore_key_changed(VCONFKEY_SYSMAN_CHARGER_STATUS,
charger_status_changed);
}
+static void unregister_battery_status_handler(void)
+{
+ vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_LEVEL_STATUS,
+ battery_status_changed);
+}
+
+
static void register_charger_status_handler(const struct popup_ops *ops)
{
if (vconf_notify_key_changed(VCONFKEY_SYSMAN_CHARGER_STATUS,
_E("Failed to register vconf key handler");
}
+static void register_battery_status_handler(const struct popup_ops *ops)
+{
+ if (vconf_notify_key_changed(VCONFKEY_SYSMAN_BATTERY_LEVEL_STATUS,
+ battery_status_changed, (void *)ops) < 0)
+ _E("Failed to register vconf key handler");
+}
+
static int lowbattery_launch(bundle *b, const struct popup_ops *ops)
{
unregister_charger_status_handler();
+ unregister_battery_status_handler();
remove_other_lowbattery_popups(ops);
register_charger_status_handler(ops);
+ register_battery_status_handler(ops);
return 0;
}
static void lowbattery_terminate(const struct popup_ops *ops)
{
unregister_charger_status_handler();
+ unregister_battery_status_handler();
}
static void poweroff_clicked(const struct popup_ops *ops)
terminate_if_no_popup();
}
+static void battery_status_changed(keynode_t *key, void *data)
+{
+ int status;
+ const struct popup_ops *ops = data;
+
+ status = vconf_keynode_get_int(key);
+ if (status < VCONFKEY_SYSMAN_BAT_LEVEL_HIGH)
+ return;
+
+ if (vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_LEVEL_STATUS,
+ battery_status_changed) < 0)
+ _E("Failed to release vconf key handler");
+
+ unload_simple_popup(ops);
+
+ terminate_if_no_popup();
+}
+
static void unregister_charger_status_handler(void)
{
vconf_ignore_key_changed(VCONFKEY_SYSMAN_CHARGER_STATUS,
charger_status_changed);
}
+static void unregister_battery_status_handler(void)
+{
+ vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_LEVEL_STATUS,
+ battery_status_changed);
+}
+
static void register_charger_status_handler(const struct popup_ops *ops)
{
if (vconf_notify_key_changed(VCONFKEY_SYSMAN_CHARGER_STATUS,
_E("Failed to register vconf key handler");
}
+static void register_battery_status_handler(const struct popup_ops *ops)
+{
+ if (vconf_notify_key_changed(VCONFKEY_SYSMAN_BATTERY_LEVEL_STATUS,
+ battery_status_changed, (void *)ops) < 0)
+ _E("Failed to register vconf key handler");
+}
+
static int lowbattery_launch(bundle *b, const struct popup_ops *ops)
{
unregister_charger_status_handler();
+ unregister_battery_status_handler();
remove_other_lowbattery_popups(ops);
register_charger_status_handler(ops);
+ register_battery_status_handler(ops);
return 0;
}
static void lowbattery_terminate(const struct popup_ops *ops)
{
unregister_charger_status_handler();
+ unregister_battery_status_handler();
}
static void poweroff_clicked(const struct popup_ops *ops)