After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 723684 - Geolocation controls
Geolocation controls
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: system-status
3.11.x
Other Linux
: Normal normal
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
3.12
Depends on:
Blocks:
 
 
Reported: 2014-02-05 14:50 UTC by Zeeshan Ali
Modified: 2014-02-17 15:50 UTC
See Also:
GNOME target: ---
GNOME version: 3.11/3.12


Attachments
location: Provide a way to disable geolocation (6.97 KB, patch)
2014-02-14 20:26 UTC, Zeeshan Ali
reviewed Details | Review
location: Create Geoclue proxy asynchronously (1.39 KB, patch)
2014-02-15 15:22 UTC, Zeeshan Ali
committed Details | Review
location: Rename a function (1.47 KB, patch)
2014-02-15 15:22 UTC, Zeeshan Ali
committed Details | Review
location: Make _connectToGeoclue() reentrent (1.14 KB, patch)
2014-02-15 15:22 UTC, Zeeshan Ali
committed Details | Review
location: Provide a way to disable geolocation (7.38 KB, patch)
2014-02-15 15:22 UTC, Zeeshan Ali
committed Details | Review
location: Don't show menu if geoclue is totally incapable (2.07 KB, patch)
2014-02-15 15:47 UTC, Zeeshan Ali
none Details | Review
location: Don't show menu if geoclue is totally incapable (1.33 KB, patch)
2014-02-15 15:58 UTC, Zeeshan Ali
committed Details | Review
location: React to changes in available accuracy level (2.41 KB, patch)
2014-02-15 16:29 UTC, Zeeshan Ali
committed Details | Review
location: Rename _setAccuracy to setMaxAccuracyLevel (1.51 KB, patch)
2014-02-16 15:34 UTC, Zeeshan Ali
committed Details | Review
location: Coding style fixes (2.29 KB, patch)
2014-02-16 15:35 UTC, Zeeshan Ali
committed Details | Review
location,schema: Keep max accuracy in gsetting (6.84 KB, patch)
2014-02-16 15:35 UTC, Zeeshan Ali
reviewed Details | Review
location: 'MaxAccuracyLevel' property is now read-only (1006 bytes, patch)
2014-02-16 15:35 UTC, Zeeshan Ali
committed Details | Review
location,schema: Keep max accuracy in gsetting (6.84 KB, patch)
2014-02-17 01:30 UTC, Zeeshan Ali
none Details | Review
location: disconnect from 'g-properties-changed' signal (1.30 KB, patch)
2014-02-17 01:31 UTC, Zeeshan Ali
committed Details | Review
location: Rename _updateMenuVisibility to _updateMenu (1.68 KB, patch)
2014-02-17 01:31 UTC, Zeeshan Ali
committed Details | Review
location: Allow user to disable GPS (5.44 KB, patch)
2014-02-17 01:31 UTC, Zeeshan Ali
committed Details | Review
location,schema: Keep max accuracy in gsetting (7.06 KB, patch)
2014-02-17 11:55 UTC, Zeeshan Ali
committed Details | Review
location: Mark 2 user-visible strings for translation (1.12 KB, patch)
2014-02-17 12:03 UTC, Zeeshan Ali
committed Details | Review
location: Rename _onoffAction to _onOffAction (1.74 KB, patch)
2014-02-17 12:04 UTC, Zeeshan Ali
committed Details | Review

Description Zeeshan Ali 2014-02-05 14:50:53 UTC
Gotta implement the system menu items for geolocation control:

https://wiki.gnome.org/Design/OS/Location

This will require new API in geoclue.
Comment 1 Allan Day 2014-02-05 14:52:25 UTC
https://wiki.gnome.org/Design/OS/SystemStatus has some information.
Comment 2 Zeeshan Ali 2014-02-14 20:26:02 UTC
Created attachment 269142 [details] [review]
location: Provide a way to disable geolocation

Now that we are indicating 'geolocation in use' to user, we better also
provide at least a way to disable geolocation. Once this is in place, we
can provide slightly better controls rather than simply on/off switch.
Comment 3 drago01 2014-02-14 20:59:39 UTC
Review of attachment 269142 [details] [review]:

Overall looks good, I don't really like sync dbus call in the compositor though.

::: js/ui/status/location.js
@@ +74,3 @@
+        if (this._userSetAccuracy) {
+            // If user set the max accuracy level, don't let geoclue override
+            this._userSetAccuracy = false;

Why do we reset it here?

@@ +83,3 @@
+    // We (and geoclue) have currently no way to reliably identifying apps so
+    // for now, lets just authorize all apps as long as they provide a valid
+    // desktop ID. We also ensure they don't get more accuracy than global max.

Why does having a valid desktop id matter? If we can't identify apps can't we just do return [true, allowedAccuracyLevel]; and add a fixme to fix it once we have sandboxing? 

I mean it seems rather arbitrary.

@@ +152,3 @@
+
+        this._userSetAccuracy = true;
+        this._onGeoclueAppeared(); // Ensure geoclue is running

Why would it not be running at this point? _onGeoclueAppeared is called in init (and runs sync!) so it should be there already. A sync dbus call inside the compositor is evil doing it multiple times is even more evil.

@@ +158,3 @@
 });
+
+function clamp(value, min, max) {

You are only using it in one place so probably not worth factoring out (even if we want to should be some generic place)
Comment 4 Zeeshan Ali 2014-02-14 22:32:11 UTC
Review of attachment 269142 [details] [review]:

::: js/ui/status/location.js
@@ +74,3 @@
+        if (this._userSetAccuracy) {
+            // If user set the max accuracy level, don't let geoclue override
+            this._userSetAccuracy = false;

When user turn on/off, here is how things go if geoclue isn't running already:

1. we set our private maxAccuracyLevel
2. We launch geoclue by creating a proxy to it
  a. We register as agent
  b. We emit notify about maxAccuracyLevel
3. geoclue (upon launch) sets maxAccuracyLevel from user config (It doesn't know if we launched it for providing it a new value)
  a. Our setter for maxAccuracyLevel is called

Now 2.b can happen before or after 3.a. So we set this._userSetAccuracy before 2. and only unset it at 3.a to ensure geoclue doesn't override the new value.

@@ +83,3 @@
+    // We (and geoclue) have currently no way to reliably identifying apps so
+    // for now, lets just authorize all apps as long as they provide a valid
+    // desktop ID. We also ensure they don't get more accuracy than global max.

Just to have some sanity check at least. We can't stop apps from lieing about this but IMO it would be nice to not make that super easy for them. As long as we don't pretend to user that we are implementing security here, its fine.

@@ +152,3 @@
+
+        this._userSetAccuracy = true;
+        this._onGeoclueAppeared(); // Ensure geoclue is running

Because geoclue times out and we don't want to keep it running over the whole session just so we may set a property on it.

About the sync calls, well I see that gnome-shell codebase is quite full of those so I didn't think of it as such a big thing. I can change that if you like. Just keep in mind that this method will typically not be called a lot.

@@ +158,3 @@
 });
+
+function clamp(value, min, max) {

well, it also makes it clear what is happening. I prefer functions with descriptive names over comments.
Comment 5 Zeeshan Ali 2014-02-14 22:38:49 UTC
I forgot to mention that this patch requires latest changes to geoclue that I haven't yet merged: http://cgit.freedesktop.org/geoclue/log/?h=wip/agent-acc-level
Comment 6 drago01 2014-02-15 11:02:40 UTC
(In reply to comment #4)
> Review of attachment 269142 [details] [review]:
> 
> ::: js/ui/status/location.js
> @@ +74,3 @@
> +        if (this._userSetAccuracy) {
> +            // If user set the max accuracy level, don't let geoclue override
> +            this._userSetAccuracy = false;
> 
> When user turn on/off, here is how things go if geoclue isn't running already:
> 
> 1. we set our private maxAccuracyLevel
> 2. We launch geoclue by creating a proxy to it
>   a. We register as agent
>   b. We emit notify about maxAccuracyLevel
> 3. geoclue (upon launch) sets maxAccuracyLevel from user config (It doesn't
> know if we launched it for providing it a new value)
>   a. Our setter for maxAccuracyLevel is called
> 
> Now 2.b can happen before or after 3.a. So we set this._userSetAccuracy before
> 2. and only unset it at 3.a to ensure geoclue doesn't override the new value.

OK.

> @@ +83,3 @@
> +    // We (and geoclue) have currently no way to reliably identifying apps so
> +    // for now, lets just authorize all apps as long as they provide a valid
> +    // desktop ID. We also ensure they don't get more accuracy than global
> max.
> 
> Just to have some sanity check at least. We can't stop apps from lieing about
> this but IMO it would be nice to not make that super easy for them. As long as
> we don't pretend to user that we are implementing security here, its fine.

OK.

> @@ +152,3 @@
> +
> +        this._userSetAccuracy = true;
> +        this._onGeoclueAppeared(); // Ensure geoclue is running
> 
> Because geoclue times out and we don't want to keep it running over the whole
> session just so we may set a property on it.
> 
> About the sync calls, well I see that gnome-shell codebase is quite full of
> those so I didn't think of it as such a big thing. 

We should get rid of them not add more (we have a tracker bug somewhere).

> I can change that if you
> like. Just keep in mind that this method will typically not be called a lot.

Yes please do, shouldn't be that hard. As for not being called often it blocks the compositor whenever it happens.

> @@ +158,3 @@
>  });
> +
> +function clamp(value, min, max) {
> 
> well, it also makes it clear what is happening. I prefer functions with
> descriptive names over comments.

OK.
Comment 7 drago01 2014-02-15 11:04:15 UTC
(In reply to comment #5)
> I forgot to mention that this patch requires latest changes to geoclue that I
> haven't yet merged:
> http://cgit.freedesktop.org/geoclue/log/?h=wip/agent-acc-level

OK, are you going to merge them before the freeze? We should not have code that depends on unmerged / unreleased changes at this point in a release.
Comment 8 drago01 2014-02-15 11:12:08 UTC
(In reply to comment #6)

> > About the sync calls, well I see that gnome-shell codebase is quite full of
> > those so I didn't think of it as such a big thing. 
> 
> We should get rid of them not add more (we have a tracker bug somewhere).

That's bug 687362
Comment 9 Zeeshan Ali 2014-02-15 12:47:17 UTC
(In reply to comment #7)
> (In reply to comment #5)
> > I forgot to mention that this patch requires latest changes to geoclue that I
> > haven't yet merged:
> > http://cgit.freedesktop.org/geoclue/log/?h=wip/agent-acc-level
> 
> OK, are you going to merge them before the freeze? We should not have code that
> depends on unmerged / unreleased changes at this point in a release.

Yes. That is my plan. I just didn't want to merge them before I'm sure the new API is actually going to be used by someone.
Comment 10 Zeeshan Ali 2014-02-15 12:48:12 UTC
(In reply to comment #8)
> (In reply to comment #6)
> 
> > > About the sync calls, well I see that gnome-shell codebase is quite full of
> > > those so I didn't think of it as such a big thing. 
> > 
> > We should get rid of them not add more (we have a tracker bug somewhere).
> 
> That's bug 687362

OK, I'll update the patch.
Comment 11 Zeeshan Ali 2014-02-15 15:22:05 UTC
Created attachment 269205 [details] [review]
location: Create Geoclue proxy asynchronously
Comment 12 Zeeshan Ali 2014-02-15 15:22:10 UTC
Created attachment 269206 [details] [review]
location: Rename a function

Rename _onGeoclueAppeared to _connectToGeoclue as in the following patch
we'll call it from other contexts then geoclue appearing.
Comment 13 Zeeshan Ali 2014-02-15 15:22:15 UTC
Created attachment 269207 [details] [review]
location: Make _connectToGeoclue() reentrent
Comment 14 Zeeshan Ali 2014-02-15 15:22:20 UTC
Created attachment 269208 [details] [review]
location: Provide a way to disable geolocation

Now that we are indicating 'geolocation in use' to user, we better also
provide at least a way to disable geolocation. Once this is in place, we
can provide slightly better controls rather than simply on/off switch.
Comment 15 Zeeshan Ali 2014-02-15 15:47:16 UTC
Created attachment 269210 [details] [review]
location: Don't show menu if geoclue is totally incapable

If geoclue can't provide location at all (no GPS or network), don't
bother to show controls that don't serve any purpose.
Comment 16 drago01 2014-02-15 15:51:48 UTC
Review of attachment 269205 [details] [review]:

LG.
Comment 17 drago01 2014-02-15 15:53:07 UTC
Review of attachment 269206 [details] [review]:

Looks good but the subject is a bit odd .. maybe "location: Rename _onGeoclueAppeared to _connectToGeoclue" ?
Comment 18 drago01 2014-02-15 15:56:44 UTC
Review of attachment 269207 [details] [review]:

LG.
Comment 19 Zeeshan Ali 2014-02-15 15:58:14 UTC
Created attachment 269211 [details] [review]
location: Don't show menu if geoclue is totally incapable

v2: Create the menu but just don't show it. In a following patch, I'll hook up to any changes to AvailableAccuracyLevel to update visibility of the menu.
Comment 20 drago01 2014-02-15 16:02:27 UTC
Review of attachment 269208 [details] [review]:

LG.
Comment 21 drago01 2014-02-15 16:03:04 UTC
Review of attachment 269211 [details] [review]:

OK.
Comment 22 Zeeshan Ali 2014-02-15 16:29:29 UTC
Created attachment 269215 [details] [review]
location: React to changes in available accuracy level

GPS could be plugged in and out, network can go up and down and
therefore available accuracy level can also change.
Comment 23 drago01 2014-02-15 17:00:27 UTC
Review of attachment 269215 [details] [review]:

::: js/ui/status/location.js
@@ +192,3 @@
+    _onGeocluePropsChanged: function(proxy, properties) {
+        let unpacked = properties.deep_unpack();
+        if ("InUse" in unpacked)

This looks hacky.

@@ +194,3 @@
+        if ("InUse" in unpacked)
+            this._syncIndicator();
+        if ("AvailableAccuracyLevel" in unpacked)

Same here.
Comment 24 Zeeshan Ali 2014-02-15 17:20:18 UTC
Review of attachment 269215 [details] [review]:

::: js/ui/status/location.js
@@ +192,3 @@
+    _onGeocluePropsChanged: function(proxy, properties) {
+        let unpacked = properties.deep_unpack();
+        if ("InUse" in unpacked)

is there a better way?
Comment 25 drago01 2014-02-15 17:29:29 UTC
(In reply to comment #24)
> Review of attachment 269215 [details] [review]:
> 
> ::: js/ui/status/location.js
> @@ +192,3 @@
> +    _onGeocluePropsChanged: function(proxy, properties) {
> +        let unpacked = properties.deep_unpack();
> +        if ("InUse" in unpacked)
> 
> is there a better way?

Seems like we are using this in other places as well so should be fine.
Comment 26 Zeeshan Ali 2014-02-15 17:42:45 UTC
Attachment 269205 [details] pushed as 7826fb4 - location: Create Geoclue proxy asynchronously
Attachment 269207 [details] pushed as 12ef034 - location: Make _connectToGeoclue() reentrent
Attachment 269208 [details] pushed as 32a49b7 - location: Provide a way to disable geolocation
Attachment 269211 [details] pushed as 9217f2c - location: Don't show menu if geoclue is totally incapable
Attachment 269215 [details] pushed as 3113bac - location: React to changes in available accuracy level

I'm keeping the bug open as I'd like to add control of GPS as well, as you can see in the mockup.
Comment 27 Zeeshan Ali 2014-02-16 15:34:47 UTC
Created attachment 269306 [details] [review]
location: Rename _setAccuracy to setMaxAccuracyLevel

More descriptive name to avoid any confusion.
Comment 28 Zeeshan Ali 2014-02-16 15:35:00 UTC
Created attachment 269307 [details] [review]
location: Coding style fixes

No space between identifier and '('.
Comment 29 Zeeshan Ali 2014-02-16 15:35:09 UTC
Created attachment 269308 [details] [review]
location,schema: Keep max accuracy in gsetting

Instead of relying on geoclue to store this user configuration, lets
keep it in gsettings. Geoclue is a system service and therefore is not
the appropriate entity to keep this info.
Comment 30 Zeeshan Ali 2014-02-16 15:35:17 UTC
Created attachment 269309 [details] [review]
location: 'MaxAccuracyLevel' property is now read-only
Comment 31 drago01 2014-02-16 18:29:18 UTC
Review of attachment 269306 [details] [review]:

OK.
Comment 32 drago01 2014-02-16 18:30:19 UTC
Review of attachment 269307 [details] [review]:

LG.
Comment 33 drago01 2014-02-16 18:33:46 UTC
Review of attachment 269308 [details] [review]:

::: data/org.gnome.shell.gschema.xml.in.in
@@ +154,3 @@
+        allowed to see. Valid options are 'off' (disable location tracking),
+        'country', 'city', 'neighborhood', 'street', and 'exact' (typically
+        requires GPS receiver).

I am not sure I like this language it somehow implies that we can enforce that but we currently can't.

::: js/ui/status/location.js
@@ +87,3 @@
         }
 
+        var allowedAccuracyLevel = clamp(reqAccuracyLevel, 0, this._getMaxAccuracyLevel());

Uh somehow missed that earlier we use "let" not "var"

@@ +170,2 @@
+    _notifyMaxAccuracyLevel: function() {
+        var variant = new GLib.Variant('u', this._getMaxAccuracyLevel());

Same here.
Comment 34 drago01 2014-02-16 18:34:18 UTC
Review of attachment 269309 [details] [review]:

OK.
Comment 35 Zeeshan Ali 2014-02-17 00:44:22 UTC
Review of attachment 269308 [details] [review]:

::: data/org.gnome.shell.gschema.xml.in.in
@@ +154,3 @@
+        allowed to see. Valid options are 'off' (disable location tracking),
+        'country', 'city', 'neighborhood', 'street', and 'exact' (typically
+        requires GPS receiver).

Well these controls give that impression already but I'm ready to change the language. What do you suggest?

::: js/ui/status/location.js
@@ +87,3 @@
         }
 
+        var allowedAccuracyLevel = clamp(reqAccuracyLevel, 0, this._getMaxAccuracyLevel());

ah, didn't realize.
Comment 36 Zeeshan Ali 2014-02-17 01:30:53 UTC
Created attachment 269346 [details] [review]
location,schema: Keep max accuracy in gsetting

v2: Use 'let' instead of 'var'.
Comment 37 Zeeshan Ali 2014-02-17 01:31:36 UTC
Created attachment 269347 [details] [review]
location: disconnect from 'g-properties-changed' signal
Comment 38 Zeeshan Ali 2014-02-17 01:31:41 UTC
Created attachment 269348 [details] [review]
location: Rename _updateMenuVisibility to _updateMenu

We'll soon be doing more than just toggling the accuracy of menu itself
in this function. Hence the renaming.
Comment 39 Zeeshan Ali 2014-02-17 01:31:46 UTC
Created attachment 269349 [details] [review]
location: Allow user to disable GPS

When exact accuracy (i-e GPS) is available, allow user to disable that.
When users don't want application to get their precise location, they
can now opt for network-based geolocation only, which can be
street-level at best.
Comment 40 Bastien Nocera 2014-02-17 09:59:21 UTC
(In reply to comment #39)
> Created an attachment (id=269349) [details] [review]
> location: Allow user to disable GPS
> 
> When exact accuracy (i-e GPS) is available, allow user to disable that.
> When users don't want application to get their precise location, they
> can now opt for network-based geolocation only, which can be
> street-level at best.

Why just in that case? I'd show a toggle for all accuracy levels, as long as the location services have been used in the X last minutes. It wouldn't stop applications from doing geoip lookups themselves but in the future we could blacklist geoip services for containerised applications.
Comment 41 drago01 2014-02-17 11:18:16 UTC
(In reply to comment #40)
> It wouldn't stop
> applications from doing geoip lookups themselves but in the future we could
> blacklist geoip services for containerised applications.

That doesn't work (ignoring that you can't blacklist all services for a moment) the app can use a proxy that calls the service and bypass the blacklist this way. The only way to stop it is to hide the ip from the app by only allowing connecting to the internet using a (specific) proxy. But that by itself is a privacy issue so ...
Comment 42 Zeeshan Ali 2014-02-17 11:30:58 UTC
(In reply to comment #40)
> (In reply to comment #39)
> > Created an attachment (id=269349) [details] [review] [details] [review]
> > location: Allow user to disable GPS
> > 
> > When exact accuracy (i-e GPS) is available, allow user to disable that.
> > When users don't want application to get their precise location, they
> > can now opt for network-based geolocation only, which can be
> > street-level at best.
> 
> Why just in that case? I'd show a toggle for all accuracy levels,

I had the same idea but Allan didn't agree that we should expose all the accuracy levels to user: https://raw.github.com/gnome-design-team/gnome-mockups/master/shell/system-menu/system-status-menu-geolocation.png

> as long as
> the location services have been used in the X last minutes.

How is that relevant?
Comment 43 drago01 2014-02-17 11:40:30 UTC
(In reply to comment #35)
> Review of attachment 269308 [details] [review]:
> 
> ::: data/org.gnome.shell.gschema.xml.in.in
> @@ +154,3 @@
> +        allowed to see. Valid options are 'off' (disable location tracking),
> +        'country', 'city', 'neighborhood', 'street', and 'exact' (typically
> +        requires GPS receiver).
> 
> Well these controls give that impression already 

Yeah we had that discussion on IRC already but well ...

but I'm ready to change the
> language. What do you suggest?

Well it is what the apps can do through geoclue not what they can access but given that this isn't really exposed to the user ... I don't know. Maybe add "Apps that can access the network can use that to identify your location".
Comment 44 drago01 2014-02-17 11:41:27 UTC
Review of attachment 269347 [details] [review]:

LG.
Comment 45 drago01 2014-02-17 11:41:54 UTC
Review of attachment 269348 [details] [review]:

OK.
Comment 46 drago01 2014-02-17 11:50:35 UTC
Review of attachment 269349 [details] [review]:

::: js/ui/status/location.js
@@ +191,3 @@
+            if (maxAccuracyLevel == 0) {
+                this._item.status.text = _("Off");
+                this._onoffAction.label.text = "Turn On";

Call this onOffAction (easier to read that way imo).

@@ +194,3 @@
+            } else {
+                this._item.status.text = _("On");
+                this._onoffAction.label.text = "Turn Off";

Those should be translateable as well.
Comment 47 Zeeshan Ali 2014-02-17 11:55:48 UTC
Created attachment 269374 [details] [review]
location,schema: Keep max accuracy in gsetting

v2: The description of gsettings key now warns of applications still being able to query user's location on their own.
Comment 48 drago01 2014-02-17 11:56:51 UTC
Review of attachment 269374 [details] [review]:

LG.
Comment 49 Zeeshan Ali 2014-02-17 12:00:06 UTC
Review of attachment 269349 [details] [review]:

::: js/ui/status/location.js
@@ +191,3 @@
+            if (maxAccuracyLevel == 0) {
+                this._item.status.text = _("Off");
+                this._onoffAction.label.text = "Turn On";

Sure, it was more of a typo. Since this commit doesn't change the name and the patch that introduce it has already been pushed, I'll rather correct this in a separate patch after this one if you don't mind?

@@ +194,3 @@
+            } else {
+                this._item.status.text = _("On");
+                this._onoffAction.label.text = "Turn Off";

Same here.
Comment 50 drago01 2014-02-17 12:03:08 UTC
(In reply to comment #49)
> Review of attachment 269349 [details] [review]:
> 
> ::: js/ui/status/location.js
> @@ +191,3 @@
> +            if (maxAccuracyLevel == 0) {
> +                this._item.status.text = _("Off");
> +                this._onoffAction.label.text = "Turn On";
> 
> Sure, it was more of a typo. Since this commit doesn't change the name and the
> patch that introduce it has already been pushed, I'll rather correct this in a
> separate patch after this one if you don't mind?
> 
> @@ +194,3 @@
> +            } else {
> +                this._item.status.text = _("On");
> +                this._onoffAction.label.text = "Turn Off";
> 
> Same here.

Yeah a separate patch is fine (and more "correct").
Comment 51 Zeeshan Ali 2014-02-17 12:03:58 UTC
Created attachment 269375 [details] [review]
location: Mark 2 user-visible strings for translation
Comment 52 Zeeshan Ali 2014-02-17 12:04:04 UTC
Created attachment 269376 [details] [review]
location: Rename _onoffAction to _onOffAction

It was just a typo that this patch now corrects.
Comment 53 drago01 2014-02-17 12:04:53 UTC
Review of attachment 269375 [details] [review]:

OK.
Comment 54 drago01 2014-02-17 12:05:19 UTC
Review of attachment 269376 [details] [review]:

OK.
Comment 55 drago01 2014-02-17 12:05:44 UTC
Review of attachment 269349 [details] [review]:

Fine as is then.
Comment 56 Zeeshan Ali 2014-02-17 12:10:51 UTC
Attachment 269306 [details] pushed as aa45999 - location: Rename _setAccuracy to setMaxAccuracyLevel
Attachment 269307 [details] pushed as 38f2414 - location: Coding style fixes
Attachment 269309 [details] pushed as 19406a2 - location: 'MaxAccuracyLevel' property is now read-only
Attachment 269347 [details] pushed as 7c3892f - location: disconnect from 'g-properties-changed' signal
Attachment 269348 [details] pushed as 59634b2 - location: Rename _updateMenuVisibility to _updateMenu
Attachment 269349 [details] pushed as 5d05b66 - location: Allow user to disable GPS
Attachment 269374 [details] pushed as d614619 - location,schema: Keep max accuracy in gsetting
Attachment 269375 [details] pushed as e80c28a - location: Mark 2 user-visible strings for translation
Attachment 269376 [details] pushed as 8057848 - location: Rename _onoffAction to _onOffAction

I'll mark this as fixed now. Next for me would be to make geoclue report the actual available accuracy level and not lie about it.
Comment 57 Zeeshan Ali 2014-02-17 15:50:27 UTC
Reverted "location: Allow user to disable GPS" in git master
    
Had a long discussion with Bastien Nocera and Allan Day on IRC about this and in the end we decided to go with the simple on/off controls for now.