diff --git a/lib/solaar/ui/tray.py b/lib/solaar/ui/tray.py index 81d3a02c..f645d934 100644 --- a/lib/solaar/ui/tray.py +++ b/lib/solaar/ui/tray.py @@ -23,7 +23,6 @@ import gi from gi.repository import GLib, Gtk from gi.repository.Gdk import ScrollDirection -from logitech_receiver.status import KEYS as _K import solaar.gtk as gtk @@ -198,8 +197,8 @@ try: def _update_tray_icon(): if _picked_device and gtk.battery_icons_style != "solaar": _ignore, _ignore, name, device_status = _picked_device - battery_level = device_status.get(_K.BATTERY_LEVEL) - battery_charging = device_status.get(_K.BATTERY_CHARGING) + battery_level = device_status.battery.level if device_status.battery is not None else None + battery_charging = device_status.battery.charging() if device_status.battery is not None else None tray_icon_name = _icons.battery(battery_level, battery_charging) description = "%s: %s" % (name, device_status.to_string()) @@ -253,8 +252,8 @@ except ImportError: if _picked_device and gtk.battery_icons_style != "solaar": _ignore, _ignore, name, device_status = _picked_device - battery_level = device_status.get(_K.BATTERY_LEVEL) - battery_charging = device_status.get(_K.BATTERY_CHARGING) + battery_level = device_status.battery.level if device_status.battery is not None else None + battery_charging = device_status.battery.charging() if device_status.battery is not None else None tray_icon_name = _icons.battery(battery_level, battery_charging) else: # there may be a receiver, but no peripherals @@ -331,7 +330,7 @@ def _pick_device_with_lowest_battery(): for info in _devices_info: if info[1] is None: # is receiver continue - level = info[-1].get(_K.BATTERY_LEVEL) + level = info[-1].battery.level if info[-1].battery is not None else None # print ("checking %s -> %s", info, level) if level is not None and picked_level > level: picked = info @@ -428,8 +427,8 @@ def _update_menu_item(index, device): menu_items = _menu.get_children() menu_item = menu_items[index] - level = device.status.get(_K.BATTERY_LEVEL) - charging = device.status.get(_K.BATTERY_CHARGING) + level = device.status.battery.level if device.status.battery is not None else None + charging = device.status.battery.charging() if device.status.battery is not None else None icon_name = _icons.battery(level, charging) menu_item.set_label((" " if 0 < device.number <= 6 else "") + device.name + ": " + device.status.to_string()) diff --git a/lib/solaar/ui/window.py b/lib/solaar/ui/window.py index 56fd1929..4a984c1b 100644 --- a/lib/solaar/ui/window.py +++ b/lib/solaar/ui/window.py @@ -684,17 +684,17 @@ def _update_device_panel(device, panel, buttons, full=False): is_online = bool(device.online) panel.set_sensitive(is_online) - if device.status.get(_K.BATTERY_LEVEL) is None: + if device.status.battery is None or device.status.battery.level is None: device.status.read_battery() - battery_level = device.status.get(_K.BATTERY_LEVEL) - battery_voltage = device.status.get(_K.BATTERY_VOLTAGE) + battery_level = device.status.battery.level if device.status.battery is not None else None + battery_voltage = device.status.battery.voltage if device.status.battery is not None else None if battery_level is None and battery_voltage is None: panel._battery.set_visible(False) else: panel._battery.set_visible(True) - battery_next_level = device.status.get(_K.BATTERY_NEXT_LEVEL) - charging = device.status.get(_K.BATTERY_CHARGING) + battery_next_level = device.status.battery.next_level + charging = device.status.battery.charging() if device.status.battery is not None else None icon_name = _icons.battery(battery_level, charging) panel._battery._icon.set_from_icon_name(icon_name, _INFO_ICON_SIZE) panel._battery._icon.set_sensitive(True) @@ -752,7 +752,7 @@ def _update_device_panel(device, panel, buttons, full=False): panel._secure.set_tooltip_text("") if is_online: - light_level = device.status.get(_K.LIGHT_LEVEL) + light_level = device.status.battery.light_level if device.status.battery is not None else None if light_level is None: panel._lux.set_visible(False) else: @@ -908,8 +908,8 @@ def update_device(device, item, selected_device_id, need_popup, full=False): is_online = bool(device.online) _model.set_value(item, _COLUMN.ACTIVE, is_online) - battery_level = device.status.get(_K.BATTERY_LEVEL) - battery_voltage = device.status.get(_K.BATTERY_VOLTAGE) + battery_level = device.status.battery.level if device.status.battery is not None else None + battery_voltage = device.status.battery.voltage if device.status.battery is not None else None if battery_level is None: _model.set_value(item, _COLUMN.STATUS_TEXT, _CAN_SET_ROW_NONE) _model.set_value(item, _COLUMN.STATUS_ICON, _CAN_SET_ROW_NONE) @@ -922,7 +922,7 @@ def update_device(device, item, selected_device_id, need_popup, full=False): status_text = "%(battery_percent)d%%" % {"battery_percent": battery_level} _model.set_value(item, _COLUMN.STATUS_TEXT, status_text) - charging = device.status.get(_K.BATTERY_CHARGING) + charging = device.status.battery.charging() if device.status.battery is not None else None icon_name = _icons.battery(battery_level, charging) _model.set_value(item, _COLUMN.STATUS_ICON, icon_name)