fixed possible dangling weakrefs on start-up
This commit is contained in:
parent
3fe9caf0e6
commit
116ba72f37
|
@ -74,7 +74,7 @@ class ReceiverListener(_listener.EventsListener):
|
|||
self.receiver.enable_notifications(False)
|
||||
self.receiver.close()
|
||||
self.receiver = None
|
||||
self._status_changed(None, alert=_status.ALERT.LOW)
|
||||
self._status_changed(None, _status.ALERT.LOW)
|
||||
|
||||
def tick(self, timestamp):
|
||||
if _log.isEnabledFor(_DEBUG):
|
||||
|
@ -137,7 +137,7 @@ class ReceiverListener(_listener.EventsListener):
|
|||
_log.warn("received event %s for invalid device %d", event, event.devnumber)
|
||||
|
||||
def __str__(self):
|
||||
return '<ReceiverListener(%s,%d)>' % (self.receiver.path, self.receiver.status)
|
||||
return '<ReceiverListener(%s,%s)>' % (self.receiver.path, self.receiver.handle)
|
||||
|
||||
@classmethod
|
||||
def open(self, status_changed_callback=None):
|
||||
|
|
|
@ -87,7 +87,7 @@ def _print_receiver(receiver, short=True):
|
|||
else:
|
||||
print (" All notifications disabled.")
|
||||
|
||||
print (" Reported %d paired device(s)." % len(receiver))
|
||||
print (" Reported %d paired device(s)." % receiver.count())
|
||||
activity = receiver.request(0x83B3)
|
||||
if activity:
|
||||
activity = [(d, ord(activity[d - 1:d])) for d in range(1, receiver.max_devices)]
|
||||
|
|
|
@ -61,7 +61,7 @@ def _icon_with_battery(s):
|
|||
return _PIXMAPS[name]
|
||||
|
||||
def update(icon, receiver, device=None):
|
||||
# print ("icon update", receiver, receiver.status, len(receiver._devices), device)
|
||||
# print ("icon update", receiver, receiver.status, len(receiver), device)
|
||||
battery_status = None
|
||||
|
||||
if device:
|
||||
|
|
|
@ -16,7 +16,7 @@ def print_receiver(receiver):
|
|||
else:
|
||||
print (" All notifications disabled.")
|
||||
|
||||
print (" Reported %d paired device(s)." % len(receiver))
|
||||
print (" Reported %d paired device(s)." % receiver.count())
|
||||
activity = receiver.request(0x83B3)
|
||||
if activity:
|
||||
activity = [(d, ord(activity[d - 1:d])) for d in range(1, receiver.max_devices)]
|
||||
|
|
|
@ -236,6 +236,10 @@ class Receiver(object):
|
|||
return True
|
||||
_log.warn("failed to %s the receiver lock", 'close' if lock_closed else 'open')
|
||||
|
||||
def count(self):
|
||||
count = self.request(0x8102)
|
||||
return 0 if count is None else ord(count[1:2])
|
||||
|
||||
def request(self, request_id, *params):
|
||||
if self.handle:
|
||||
return _base.request(self.handle, 0xFF, request_id, *params)
|
||||
|
@ -278,8 +282,7 @@ class Receiver(object):
|
|||
raise IndexError(key)
|
||||
|
||||
def __len__(self):
|
||||
count = self.request(0x8102)
|
||||
return 0 if count is None else ord(count[1:2])
|
||||
return reduce(lambda partial, item: partial if item is None else partial + 1, self._devices.values(), 0)
|
||||
|
||||
def __contains__(self, dev):
|
||||
if type(dev) == int:
|
||||
|
|
|
@ -49,7 +49,7 @@ class ReceiverStatus(dict):
|
|||
self[ERROR] = None
|
||||
|
||||
def __str__(self):
|
||||
count = len([1 for d in self._receiver if d is not None])
|
||||
count = len(self._receiver)
|
||||
return ('No devices found.' if count == 0 else
|
||||
'1 device found.' if count == 1 else
|
||||
'%d devices found.' % count)
|
||||
|
|
Loading…
Reference in New Issue