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.