Do not fail if cannot access the HAL battery properties.
This commit is contained in:
parent
7900e6c486
commit
dae54f34ae
@ -14,6 +14,8 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
import logging
|
||||||
|
|
||||||
import gobject
|
import gobject
|
||||||
import dbus
|
import dbus
|
||||||
|
|
||||||
@ -45,9 +47,30 @@ class Device(device.Device):
|
|||||||
'org.freedesktop.Hal',
|
'org.freedesktop.Hal',
|
||||||
udi)
|
udi)
|
||||||
|
|
||||||
self._level = self._battery.GetProperty(_LEVEL_PROP)
|
self._level = self._get_level()
|
||||||
self._charging = self._battery.GetProperty(_CHARGING_PROP)
|
self._charging = self._get_charging()
|
||||||
self._discharging = self._battery.GetProperty(_DISCHARGING_PROP)
|
self._discharging = self._get_discharging()
|
||||||
|
|
||||||
|
def _get_level(self):
|
||||||
|
try:
|
||||||
|
return self._battery.GetProperty(_LEVEL_PROP)
|
||||||
|
except dbus.DBusException:
|
||||||
|
logging.error('Cannot access %s' % _LEVEL_PROP)
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def _get_charging(self):
|
||||||
|
try:
|
||||||
|
return self._battery.GetProperty(_CHARGING_PROP)
|
||||||
|
except dbus.DBusException:
|
||||||
|
logging.error('Cannot access %s' % _CHARGING_PROP)
|
||||||
|
return False
|
||||||
|
|
||||||
|
def _get_discharging(self):
|
||||||
|
try:
|
||||||
|
return self._battery.GetProperty(_DISCHARGING_PROP)
|
||||||
|
except dbus.DBusException:
|
||||||
|
logging.error('Cannot access %s' % _DISCHARGING_PROP)
|
||||||
|
return False
|
||||||
|
|
||||||
def do_get_property(self, pspec):
|
def do_get_property(self, pspec):
|
||||||
if pspec.name == 'level':
|
if pspec.name == 'level':
|
||||||
@ -63,11 +86,11 @@ class Device(device.Device):
|
|||||||
def _battery_changed(self, num_changes, changes_list):
|
def _battery_changed(self, num_changes, changes_list):
|
||||||
for change in changes_list:
|
for change in changes_list:
|
||||||
if change[0] == _LEVEL_PROP:
|
if change[0] == _LEVEL_PROP:
|
||||||
self._level = self._battery.GetProperty(_LEVEL_PROP)
|
self._level = self._get_level()
|
||||||
self.notify('level')
|
self.notify('level')
|
||||||
elif change[0] == _CHARGING_PROP:
|
elif change[0] == _CHARGING_PROP:
|
||||||
self._charging = self._battery.GetProperty(_CHARGING_PROP)
|
self._charging = self._get_charging()
|
||||||
self.notify('charging')
|
self.notify('charging')
|
||||||
elif change[0] == _DISCHARGING_PROP:
|
elif change[0] == _DISCHARGING_PROP:
|
||||||
self._discharging = self._battery.GetProperty(_DISCHARGING_PROP)
|
self._discharging = self._get_discharging()
|
||||||
self.notify('discharging')
|
self.notify('discharging')
|
||||||
|
Loading…
Reference in New Issue
Block a user