From d2eabe425837efc5a42edde96065d8c29204e6fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius?= Date: Tue, 21 Jul 2020 19:36:43 -0300 Subject: [PATCH] receiver: prevent errors after clicking the name of an idle device --- lib/logitech_receiver/receiver.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/logitech_receiver/receiver.py b/lib/logitech_receiver/receiver.py index 68cebcd9..8b74b4e5 100644 --- a/lib/logitech_receiver/receiver.py +++ b/lib/logitech_receiver/receiver.py @@ -271,11 +271,18 @@ class PairedDevice(object): @property def settings(self): if self._settings is None: + self._settings = [] if self.descriptor and self.descriptor.settings: - self._settings = [s(self) for s in self.descriptor.settings] - self._settings = [s for s in self._settings if s is not None] - else: self._settings = [] + for s in self.descriptor.settings: + try: + setting = s(self) + except Exception as e: + # Do nothing if the device is offline + if self.online: + raise e + if setting is not None: + self._settings.append(setting) if not self._feature_settings_checked: self._feature_settings_checked = _check_feature_settings(self, self._settings) return self._settings