Skip to content

android: allow non-premium users to disable head gestures#564

Merged
kavishdevar merged 1 commit intokavishdevar:mainfrom
thisisAcidic:fix-disable-head-gestures-non-premium
May 2, 2026
Merged

android: allow non-premium users to disable head gestures#564
kavishdevar merged 1 commit intokavishdevar:mainfrom
thisisAcidic:fix-disable-head-gestures-non-premium

Conversation

@thisisAcidic
Copy link
Copy Markdown
Contributor

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

@kavishdevar
Copy link
Copy Markdown
Owner

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?

@thisisAcidic
Copy link
Copy Markdown
Contributor Author

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 AirPodsViewModel.observeBilling only fires while that ViewModel is alive (so basically while AppSettingsScreen is open or recently in memory). If they never opened the settings screen after the update, the pref just stays at whatever it was set to before, and the service picks that up.

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.

@kavishdevar
Copy link
Copy Markdown
Owner

Fair enough, I guess there might be few people who updated but didn't open the app.

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.

Probably could move the convo detect and head gesture disables to the Application instead, but this works.

Thanks!

@kavishdevar kavishdevar merged commit fb44f01 into kavishdevar:main May 2, 2026
1 of 2 checks passed
@thisisAcidic
Copy link
Copy Markdown
Contributor Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cannot disable head gestures

2 participants