android: allow non-premium users to disable head gestures#564
Conversation
|
It's supposed to be disabled if it's not upgraded: Not sure how the issue in #556 happened in the first place. Is there some other place that I'm missing where it is enabled? |
|
I dont think I saw another place where it's enabled, but I think this issue might have been caused by the user originally installing the github version and then either clicking on update on the play store or even getting auto updated by the play store (also happend to me before). Also, the auto-disable in This PR is more of a safety net for that case so the off switch is at least reachable. If you'd rather move the auto-disable somewhere longer lived (service or app scope) i'd be happy to redo it that way instead. |
|
Fair enough, I guess there might be few people who updated but didn't open the app.
Probably could move the convo detect and head gesture disables to the Application instead, but this works. Thanks! |
|
Awesome, glad to help! Really fun project to dig into. Just shout if i'm sending too much stuff and you want me to slow down. |
On HeadTrackingScreen the toggle uses `enabled = state.isPremium`, which makes it un-flippable for non-premium users. Combined with the default `head_gestures = true` set on first run (and previously enabled state for users who paired before the paywall), this leaves non-premium users unable to turn head gestures off. The runtime then keeps invoking the gesture detector on incoming calls, which is the symptom in #556 (calls being hung up by stray head movement).
Smallest fix: allow the toggle when the feature is currently on, even without premium. Non-premium users can flip it off; once off, they can't flip it back on without upgrading.
Doesn't change premium gating elsewhere (the runtime still uses the preference value as before; this just makes the off-switch reachable).
Closes #556