[Florob] improve geoloc usage. Fixes #5677
This commit is contained in:
parent
c115c03167
commit
5f2b217fd6
1 changed files with 19 additions and 23 deletions
|
@ -37,28 +37,6 @@ class LocationListener:
|
||||||
self._data = {}
|
self._data = {}
|
||||||
|
|
||||||
def get_data(self):
|
def get_data(self):
|
||||||
self._get_address()
|
|
||||||
self._get_position()
|
|
||||||
|
|
||||||
def _get_address(self):
|
|
||||||
bus = dbus.SessionBus()
|
|
||||||
if 'org.freedesktop.Geoclue.Master' not in bus.list_names():
|
|
||||||
self._on_geoclue_address_changed()
|
|
||||||
return
|
|
||||||
obj = bus.get_object('org.freedesktop.Geoclue.Master',
|
|
||||||
'/org/freedesktop/Geoclue/Master')
|
|
||||||
# get MasterClient path
|
|
||||||
path = obj.Create()
|
|
||||||
# get MasterClient
|
|
||||||
cli = bus.get_object('org.freedesktop.Geoclue.Master', path)
|
|
||||||
cli.AddressStart()
|
|
||||||
# Check that there is a provider
|
|
||||||
name, description, service, path = cli.GetAddressProvider()
|
|
||||||
if path:
|
|
||||||
timestamp, address, accuracy = cli.GetAddress()
|
|
||||||
self._on_geoclue_address_changed(timestamp, address, accuracy)
|
|
||||||
|
|
||||||
def _get_position(self):
|
|
||||||
bus = dbus.SessionBus()
|
bus = dbus.SessionBus()
|
||||||
if 'org.freedesktop.Geoclue.Master' not in bus.list_names():
|
if 'org.freedesktop.Geoclue.Master' not in bus.list_names():
|
||||||
self._on_geoclue_position_changed()
|
self._on_geoclue_position_changed()
|
||||||
|
@ -69,11 +47,29 @@ class LocationListener:
|
||||||
path = obj.Create()
|
path = obj.Create()
|
||||||
# get MasterClient
|
# get MasterClient
|
||||||
cli = bus.get_object('org.freedesktop.Geoclue.Master', path)
|
cli = bus.get_object('org.freedesktop.Geoclue.Master', path)
|
||||||
|
cli.SetRequirements(1, 0, True, 1023)
|
||||||
|
|
||||||
|
self._get_address(cli)
|
||||||
|
self._get_position(cli)
|
||||||
|
|
||||||
|
def _get_address(self, cli):
|
||||||
|
bus = dbus.SessionBus()
|
||||||
|
cli.AddressStart()
|
||||||
|
# Check that there is a provider
|
||||||
|
name, description, service, path = cli.GetAddressProvider()
|
||||||
|
if path:
|
||||||
|
provider = bus.get_object(service, path)
|
||||||
|
timestamp, address, accuracy = provider.GetAddress()
|
||||||
|
self._on_geoclue_address_changed(timestamp, address, accuracy)
|
||||||
|
|
||||||
|
def _get_position(self, cli):
|
||||||
|
bus = dbus.SessionBus()
|
||||||
cli.PositionStart()
|
cli.PositionStart()
|
||||||
# Check that there is a provider
|
# Check that there is a provider
|
||||||
name, description, service, path = cli.GetPositionProvider()
|
name, description, service, path = cli.GetPositionProvider()
|
||||||
if path:
|
if path:
|
||||||
fields, timestamp, lat, lon, alt, accuray = cli.GetPosition()
|
provider = bus.get_object(service, path)
|
||||||
|
fields, timestamp, lat, lon, alt, accuray = provider.GetPosition()
|
||||||
self._on_geoclue_position_changed(fields, timestamp, lat, lon, alt,
|
self._on_geoclue_position_changed(fields, timestamp, lat, lon, alt,
|
||||||
accuracy)
|
accuracy)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue