jonasoreland / runnerup

A open source run tracker
GNU General Public License v3.0
723 stars 271 forks source link

clicking "Start GPS" does not work/react if the location permission is denied #923

Closed sjl872964789 closed 3 years ago

sjl872964789 commented 4 years ago

Describe the bug Some functions cannot be performed if permission is denied during installation

To Reproduce Steps to reproduce the behavior:

  1. Install runnerup and open app
  2. The permission request box appears
  3. Deny the permission
  4. Click on "START GPS"
  5. Unable to execute and will not have prompt request permission

Expected behavior Runnerup should not only request permission during installation, because users may refuse because they don't know the purpose of permission. When using the corresponding function, they should request permission again, and give some necessary explanations

Smartphone (please complete the following information):

Additional context record.zip

gerhardol commented 4 years ago

If no GPS when starting, a snackbar appears on the bottom of the screen asking for permissions at every new start. So if you dismiss the GPS request, you get a new chance again. However, if you have answered no for some reason, you can still use the app (view screens, history?).

I would expect Huawei work the same, this is not part of Play services.

sjl872964789 commented 4 years ago

Thank you for your reply. I think it may be that I didn't express clearly enough that led to your misunderstanding. I opened the location setting (GPS) before installing runnerup, but I didn't give it the permission to locate when I first opened runnerup, and runnerup would not request the permission every time it used the location function, as shown in the video. At the same time, this problem not only occurred in Huawei, In my other mobile phone (Galaxy A6s Android 8.1.0) and Android simulator (pixel2 Android 8.0), there are the same problems

gerhardol commented 4 years ago

Swype away RU and next time you start you will get the snackbar to reenable the setting. I tried to follow the Google guidelines here

If you choose to not allow a functionality, the app should not pester the user too much. If you are paranoid, you are still OK with opening the app (even if it is quite meaningless).

tingsu commented 4 years ago

Hi @gerhardol, thanks for developing this nice app. I am a new user of this app. I like it!

However, I encountered a similar UX issue discussed in this post when I come to use RU at the first time on a Google Pixel 3 phone. Let me explain a bit about my experience.

When I opened the app after installation, I mistakenly denied the location permission when it shows a dialog Allow RU to access this device's location. Afterwards, I did note a small message Location Permission was not granted, which I have not paid too much attention.

But when I press the Start GPS button in the next step, the app does not react and seems just freeze. I have not seen any alerts either. At that time, I feel confused and I did not know what happened to the app. After a while, I realized that this may be due to I denied the location permission request.

My main confusion is:

  1. I did not expect the location permission would affect the use of GPS. Because I have any seen any clear information or alert to tell me I should grant the location permssion otherwise I cannot use the GPS. In many other apps I use, I did not note this connection between them.

  2. I did not find an intuitive way to bring back the location permission request dialog. Only when I finally stop and restart the app. A little troublesome...

So, maybe the app can be improved to quickly resolve this UX issue :

  1. show more clear information to alert the user when he/she accidently denied the permission request. And/Or,

  2. when the user press the Start GPS button, just show the permission request dialog again

How do you think?

gerhardol commented 4 years ago

It is hard to balance annoying popups and loss of functionality. GPS is quite important for the app, the default guidelines can be tweaked. The snackbar should appear at least when pressing Start GPS (maybe after start with denial too). Maybe popup too.

tingsu commented 4 years ago

Yeah, I totally agree with your plan: show the snackbar when pressing Start GPS if the user (unexpectedly/accidently) denied the location permission; or, giving more informative alert in the toast (shown after the denial) also helps.

As for the guidelines you mentioned I searched a bit, and find the following suggestions:

If the user denies a permission request, your app should help users understand the implications of denying the permission. In particular, your app should make users aware of the features that don't work because of the missing permission. More detailed suggestions can be found in this link (under the title Handle permission denial).

I believe the app's UX will get better with the proposed fix plan :) Thanks.

sjl872964789 commented 4 years ago

Thanks for the @gerhardol ‘s kind reply and @tingsu 's attention to this issue. I totally agree with your final conclusion. Maybe pop-up windows are annoying at some times. However, as GPS is an important function for runnerup, it is necessary to pop up snackBar when clicking "start GPS". Moreover, it's better to explain the consequences and give users a chance to choose again after they deny permission.

gerhardol commented 3 years ago

Behavior changed in #948 If happen to deny, the user get a popup asking to allow. (If the user has ticked "dont ask again", the popup just informs.) It is not possible to start a workout if GPS is not allowed (popup, not changing).

gerhardol commented 3 years ago

All checks are now done when starting GPS, so this is repeatedly asked. Android 10 really want to deactivate the GPS in the background, which does not make sense for a fitness tracker.

tingsu commented 3 years ago

Thanks for fixing this issue. Nice!