This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch make-bluez-bat-reappear
in repository enlightenment.

View the commit online.

commit f2fc8a44b668648b0cb4b696aabd90c9204396a3
Author: Swagtoy <m...@ow.swag.toys>
AuthorDate: Tue Jun 24 18:20:53 2025 -0400

    bluez: Show battery icon when reconnecting
    
    As a followup to a52fe4b5bc, reconnecting will not show the battery percentage.
    
    Also fixes some tpyos I noticed
    
    @fix
---
 src/modules/bluez5/bz_obj.c      | 64 +++++++++++++++++++++++++---------------
 src/modules/bluez5/e_mod_popup.c |  6 ++--
 2 files changed, 43 insertions(+), 27 deletions(-)

diff --git a/src/modules/bluez5/bz_obj.c b/src/modules/bluez5/bz_obj.c
index cd222238a..29ac0be49 100644
--- a/src/modules/bluez5/bz_obj.c
+++ b/src/modules/bluez5/bz_obj.c
@@ -326,6 +326,38 @@ cb_obj_prop_bat_changed(void *data EINA_UNUSED, const Eldbus_Message *msg EINA_U
    eldbus_proxy_property_get_all(o->proxy_bat, cb_obj_prop_bat, o);
 }
 
+static void
+_reload_device_props(Obj *o)
+{
+   if (!o->proxy)
+     o->proxy = eldbus_proxy_get(o->obj, "org.bluez.Device1");
+   if (o->proxy)
+     {
+	    eldbus_proxy_property_get_all(o->proxy, cb_obj_prop, o);
+		if (!o->prop_proxy)
+          o->prop_proxy = eldbus_proxy_get(o->obj,
+                                           "org.freedesktop.DBus.Properties");
+        if (o->prop_proxy && !o->prop_sig)
+          o->prop_sig = eldbus_proxy_signal_handler_add(o->prop_proxy,
+                                                        "PropertiesChanged",
+                                                        cb_obj_prop_changed, o);
+     }
+   // battery properties - if it supports it
+   if (!o->proxy_bat)
+     o->proxy_bat = eldbus_proxy_get(o->obj, "org.bluez.Battery1");
+   if (o->proxy_bat)
+     {
+       eldbus_proxy_property_get_all(o->proxy_bat, cb_obj_prop_bat, o);
+	   if (!o->prop_proxy_bat)
+         o->prop_proxy_bat = eldbus_proxy_get(o->obj,
+                                              "org.freedesktop.DBus.Properties");
+       if (o->prop_proxy_bat && !o->prop_sig_bat)
+         o->prop_sig_bat = eldbus_proxy_signal_handler_add(o->prop_proxy_bat,
+                                                           "PropertiesChanged",
+                                                           cb_obj_prop_bat_changed, o);
+     }
+}
+
 //static void
 //cb_obj_discovery_filter(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
 //{
@@ -358,29 +390,7 @@ bz_obj_add(const char *path)
      {
         o->type = BZ_OBJ_DEVICE;
         // device properties
-        o->proxy = eldbus_proxy_get(o->obj, "org.bluez.Device1");
-        if (o->proxy)
-          {
-             eldbus_proxy_property_get_all(o->proxy, cb_obj_prop, o);
-             o->prop_proxy = eldbus_proxy_get(o->obj,
-                                              "org.freedesktop.DBus.Properties");
-             if (o->prop_proxy)
-               o->prop_sig = eldbus_proxy_signal_handler_add(o->prop_proxy,
-                                                             "PropertiesChanged",
-                                                             cb_obj_prop_changed, o);
-          }
-        // battery properties - if it supports it
-        o->proxy_bat = eldbus_proxy_get(o->obj, "org.bluez.Battery1");
-        if (o->proxy_bat)
-          {
-             eldbus_proxy_property_get_all(o->proxy_bat, cb_obj_prop_bat, o);
-             o->prop_proxy_bat = eldbus_proxy_get(o->obj,
-                                              "org.freedesktop.DBus.Properties");
-             if (o->prop_proxy_bat)
-               o->prop_sig_bat = eldbus_proxy_signal_handler_add(o->prop_proxy_bat,
-                                                                 "PropertiesChanged",
-                                                                 cb_obj_prop_bat_changed, o);
-          }
+        _reload_device_props(o);
         goto done;
      }
    // all dadapters begin with /org/bluez/
@@ -921,8 +931,13 @@ cb_obj_add(void *data EINA_UNUSED, const Eldbus_Message *msg)
    const char *path = NULL;
 
    if (!eldbus_message_arguments_get(msg, "o", &path)) return;
-   if (bz_obj_find(path)) return;
    printf("BZ: cb_obj_add [%s]\n", path);
+   Obj* o;
+   if ((o = bz_obj_find(path)))
+     {
+       _reload_device_props(o);
+       return;
+     }
    bz_obj_add(path);
 }
 
@@ -941,6 +956,7 @@ cb_obj_del_prop(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending E
     }
   printf("BZ: cb_obj_del_prop %p not gone\n", o);
   // we managed to get props ... the obj is not really gone
+  o->bat_percent = -1;
 }
 
 static void
diff --git a/src/modules/bluez5/e_mod_popup.c b/src/modules/bluez5/e_mod_popup.c
index 05185cd52..3f07db04c 100644
--- a/src/modules/bluez5/e_mod_popup.c
+++ b/src/modules/bluez5/e_mod_popup.c
@@ -12,7 +12,7 @@ static int unlock_do = 0;
 static Eina_Bool unlock_block = EINA_FALSE;
 
 static Config_Device *
-_devices_conifg_find(const char *address)
+_devices_config_find(const char *address)
 {
    Config_Device *dev;
    Eina_List *l;
@@ -45,7 +45,7 @@ _devices_eval(void)
              Eina_Bool need_ping = EINA_FALSE;
              Obj *adapter = bz_obj_find(o->adapter);
 
-             dev = _devices_conifg_find(o->address);
+             dev = _devices_config_find(o->address);
              if ((dev) && (adapter) && (adapter->powered))
                {
                   printf("=== dev: %s|%s [%s]\n", dev->addr, o->address, o->name);
@@ -576,7 +576,7 @@ _cb_dev_content_get(void *data, Evas_Object *obj,
              if (o->trusted)
                {
                   bt = util_button_icon_add(obj, "security-low",
-                                            _("Disrust this device"));
+                                            _("Distrust this device"));
                   evas_object_data_set(bt, "genlist", obj);
                   evas_object_smart_callback_add(bt, "clicked", _cb_distrust, o);
                }

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to