weather: Take global location switch into account
The setting to globally disable location settings altogether isn't handled by the geoclue service itself, but by the authorization agent. This means that: - it doesn't apply to system components (which gnome-shell is now considered[0]) - it doesn't apply once the geoclue connection has been authorized However users can reasonably expect that we won't use location services after they disabled them, so handle the setting explicitly. [0] https://cgit.freedesktop.org/geoclue/commit/?id=a4cef6c0ad08 https://bugzilla.gnome.org/show_bug.cgi?id=780252
This commit is contained in:
parent
7c9f76944b
commit
74e1058183
@ -28,6 +28,10 @@ const WeatherClient = new Lang.Class({
|
||||
this._gclueStarting = false;
|
||||
this._gclueLocationChangedId = 0;
|
||||
|
||||
this._locationSettings = new Gio.Settings({ schema_id: 'org.gnome.system.location' });
|
||||
this._locationSettings.connect('changed::enabled',
|
||||
Lang.bind(this, this._updateAutoLocation));
|
||||
|
||||
this._world = GWeather.Location.get_world();
|
||||
|
||||
let providers = GWeather.Provider.METAR |
|
||||
@ -82,7 +86,8 @@ const WeatherClient = new Lang.Class({
|
||||
},
|
||||
|
||||
get _useAutoLocation() {
|
||||
return this._autoLocationRequested;
|
||||
return this._autoLocationRequested &&
|
||||
this._locationSettings.get_boolean('enabled');
|
||||
},
|
||||
|
||||
_loadInfo: function() {
|
||||
@ -174,6 +179,10 @@ const WeatherClient = new Lang.Class({
|
||||
|
||||
this._autoLocationRequested = useAutoLocation;
|
||||
|
||||
this._updateAutoLocation();
|
||||
},
|
||||
|
||||
_updateAutoLocation: function() {
|
||||
this._updateLocationMonitoring();
|
||||
|
||||
if (this._useAutoLocation)
|
||||
|
Loading…
Reference in New Issue
Block a user