-
Notifications
You must be signed in to change notification settings - Fork 505
All permissions optional #50
Comments
Hey @Navideck-fotis, that's "as designed" for the optional permissions and one of the reasons I dislike the pattern. I'm aiming to get rid of marking these required/optional and just letting users do the right action in the completion block. For you right now, I would mark them both as required and show the dialog as usual. Users can then either cancel out or approve one/both permissions. You can detect the settings the user picked in the completion block. |
@nickoneill I am afraid that what you suggest will not work for my case. I am requesting permissions for Notifications and Motion (by the way I have motion ready for you). My app works fine without them. However I don't want to bug the user every time to allow these permissions. It would be highly annoying. Instead I might suggest that the dialog appear every 10 runs if the optional permissions are not accepted. iRate (https://github.com/nicklockwood/iRate) does something similar when requesting a rating from the user. Edit: A minor addition on my above suggestions. If all permissions are optional then the dialog should appear (every 10 runs or so) only if the user hasn't given a response for every permission (either accepting or denying). But if he has done so (e.g. denied all permissions) the dialog never appears again. |
I agree @Navideck-fotis, in fact I do just that with notifications in one of my apps; every x days you get a prompt if not approved. I think this is an excellent chance to build this into the permissions display functionality while removing the misguided required/optional stuff. Thanks for thinking through this with me! Please send over the motion stuff when you're ready, I believe @bre7 ran into some issues with detecting the different states so I'm interested in how you achieved it. |
@nickoneill If I get correctly what you want to do is to be able to set a different "expiration" time for each permission. So if one of the dialog's permissions has expired (and state is unknown or denied ), then the full dialog appears (including non expired permissions). Am I right? You have to take into account a scenario that someone wants to set one or more permissions as required. What would they set the timer to? I guess the answer would be 0. |
Required permissions are a totally unrelated different thing. If you need a required permission, just take some action to prevent a segue or dismiss a view controller in the cancel callback. I'm not sure how expiration times per-permission would work yet. Would it be useful to hide permissions that are already approved? This could have implications for non-remindable permissions too. |
What I mean by "required" is that I want the dialog to appear every time until the user accepts all permissions. I guess it would be equal to setting expiration to "0". As you said, handling the action is up to the developer to implement.
I think is a very good idea! It has crossed my mind as well. Less UI bloat = More chances that the user hits the right button. I would make it optional though and up to the developer to enable. |
All permissions in the dialog are "required" now, there's an issue for reprompt (#52) and I'm not feeling the idea of removing permissions after they're approved. Doesn't seem like it achieves anything for users or developers. Feel free to open an issue for that if you'd still like to discuss. |
It would be nice to give a property to enable removal of already approved permissions. I know I would use it in our app. |
@Navideck-fotis Open a new issue so we can keep track. I'd like to hear more about your thinking for how users would get into a state where they've only approved some permissions and are coming back through the same flow. |
I need to ask for 2 permissions which are both optional. However the dialog never appears.
The text was updated successfully, but these errors were encountered: