From 3dee01e9ed1efe3ab2d01b554adcadfb727d60e6 Mon Sep 17 00:00:00 2001 From: Sander Sweers Date: Sun, 19 Jul 2026 14:22:48 +0200 Subject: [PATCH 1/2] ManagerDevicelist: Enforce minimum battery percentage of 10 fixes #3341 --- blueman/gui/manager/ManagerDeviceList.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blueman/gui/manager/ManagerDeviceList.py b/blueman/gui/manager/ManagerDeviceList.py index 2514a6ec6..064745483 100644 --- a/blueman/gui/manager/ManagerDeviceList.py +++ b/blueman/gui/manager/ManagerDeviceList.py @@ -502,7 +502,7 @@ def _update_power_levels(self, tree_iter: Gtk.TreeIter, device: Device, cinfo: c obj_path = device.get_object_path() if obj_path in self._batteries: - bars["battery"] = self._batteries[obj_path]["Percentage"] + bars["battery"] = max(10, self._batteries[obj_path]["Percentage"]) # cinfo init may fail for bluetooth devices version 4 and up # FIXME Workaround is horrible and we should show something better From a6927273ac2c1e4e26a561ec02480efdc6450bae Mon Sep 17 00:00:00 2001 From: Sander Sweers Date: Sun, 19 Jul 2026 14:51:40 +0200 Subject: [PATCH 2/2] services.Functions: Skip none Service classes --- blueman/services/Functions.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/blueman/services/Functions.py b/blueman/services/Functions.py index 1cb467538..85e36e69c 100644 --- a/blueman/services/Functions.py +++ b/blueman/services/Functions.py @@ -10,6 +10,9 @@ def get_service(device: Device, uuid: str) -> Service | None: for name, cls in inspect.getmembers(blueman.services, inspect.isclass): + if not issubclass(cls, Service): + continue + if ServiceUUID(uuid).short_uuid == cls.__svclass_id__: svc: Service = cls(device, uuid) return svc