weather: Only require auto-location authorization if sandboxed
Since commit 87e60ed97843, geoclue no longer pretends that authorization is useful for system-installed apps (as they can easily lie about their ID). Unfortunately this broke our auto-location support in case Weather is installed non-sandboxed, as we are waiting for an authorization that will never happen. Unbreak it by only requiring authorization when installed as Flatpak. https://gitlab.gnome.org/GNOME/gnome-shell/issues/1823
This commit is contained in:
parent
7be1729cde
commit
5043e6d6bd
@ -32,6 +32,7 @@ var WeatherClient = class {
|
||||
this._gclueStarting = false;
|
||||
this._gclueLocationChangedId = 0;
|
||||
|
||||
this._needsAuth = true;
|
||||
this._weatherAuthorized = false;
|
||||
this._permStore = new PermissionStore.PermissionStore((proxy, error) => {
|
||||
if (error) {
|
||||
@ -142,7 +143,7 @@ var WeatherClient = class {
|
||||
get _useAutoLocation() {
|
||||
return this._autoLocationRequested &&
|
||||
this._locationSettings.get_boolean('enabled') &&
|
||||
this._weatherAuthorized;
|
||||
(!this._needsAuth || this._weatherAuthorized);
|
||||
}
|
||||
|
||||
_onWeatherProxyReady(o, res) {
|
||||
@ -175,6 +176,13 @@ var WeatherClient = class {
|
||||
|
||||
if (hadApp !== haveApp)
|
||||
this.emit('changed');
|
||||
|
||||
let neededAuth = this._needsAuth;
|
||||
this._needsAuth = this._weatherApp === null ||
|
||||
this._weatherApp.app_info.has_key('X-Flatpak');
|
||||
|
||||
if (neededAuth !== this._needsAuth)
|
||||
this._updateAutoLocation();
|
||||
}
|
||||
|
||||
_loadInfo() {
|
||||
|
Loading…
Reference in New Issue
Block a user