remove low battery popup when it's recovered 01/99501/2
authorlokilee73 <changjoo.lee@samsung.com>
Wed, 23 Nov 2016 06:01:16 +0000 (15:01 +0900)
committerlokilee73 <changjoo.lee@samsung.com>
Wed, 23 Nov 2016 07:49:03 +0000 (16:49 +0900)
Change-Id: Ifecfde25d41484b5db5a4ad59936db047026c291
Signed-off-by: lokilee73 <changjoo.lee@samsung.com>
src/battery/battery-mobile.c
src/battery/battery-wearable.c

index 6159fd53e86d0ff168450eec7f3efb3c18aead19..91635d665c49e1d1f8e61385efece0ac8cb790f2 100755 (executable)
@@ -87,12 +87,37 @@ static void charger_status_changed(keynode_t *key, void *data)
        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,
@@ -100,11 +125,20 @@ static void register_charger_status_handler(const struct popup_ops *ops)
                _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;
 }
@@ -112,6 +146,7 @@ static int lowbattery_launch(bundle *b, const struct popup_ops *ops)
 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)
index ff8ef29fcc89368c46fcaae01b10cd4f1b4ea773..6a76f426d365452a4adb0db8a2a9599af3af3501 100755 (executable)
@@ -78,12 +78,36 @@ static void charger_status_changed(keynode_t *key, void *data)
        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,
@@ -91,11 +115,20 @@ static void register_charger_status_handler(const struct popup_ops *ops)
                _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;
 }
@@ -103,6 +136,7 @@ static int lowbattery_launch(bundle *b, const struct popup_ops *ops)
 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)