Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix bluetooth setting not actually changing bluetooth radio settings. #1972

Closed
wants to merge 1 commit into from

Conversation

JustScott
Copy link
Contributor

@JustScott JustScott commented Jan 16, 2024

This PR was closed in favor of #2037, read the last comment in this thread for context

Long Explanation

NimbleController.cpp was running bleController.Disconnect() each time NimbleController::EnableRadio() was called by SystemTask.cpp's case matching Messages::BleRadioEnableToggle. This meant that each time the bluetooth settings page was opened, the Messages::BleRadioEnableToggle case was matched and the setting variable bleRadioEnabled was set to false. This caused the conditionals for the checkboxList class call in SettingBluetooth.cpp to not allow toggling the bluetooth on and off, and caused the bluetooth status icon to dissappear in StatusIcons.cpp

Short Explanation

The nimblecontroller was telling the bluetooth controller to disconnect when the radio was enabled, which was happening each time the bluetooth settings page was opened. This caused the toggles/checboxes in the bluetooth settings page to be un-changeable, and the bluetooth status icon to disappear.

(A large explanation for removing a single line of code... I know ;) )

This fixes #1961

Copy link

Build checks have not completed. Possible reasons for this are:

  1. The checks need to be approved by a maintainer
  2. The branch has conflicts
  3. The firmware build has failed

@FintasticMan FintasticMan added the bug Something isn't working label Jan 17, 2024
@rambonette
Copy link

Thanks @JustScott ! Thought it was something simple, but didn't have the time to investigate 👍

Copy link
Contributor

@vkareh vkareh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works. Thanks for fixing this (has been driving my crazy when testing settings on a new build).

NimbleController.cpp was running bleController.Disconnect() each
time NimbleController::EnableRadio() was called by SystemTask.cpp's
case matching Messages::BleRadioEnableToggle. This meant that each time
the bluetooth settings page was opened, the Messages::BleRadioEnableToggle
case was matched and the setting variable bleRadioEnabled was set to false.
This caused the conditionals for the checkboxList class call in SettingBluetooth.cpp
to not allow toggling the bluetooth on and off, and caused the bluetooth status icon
to dissappear in StatusIcons.cpp
@JustScott
Copy link
Contributor Author

#2037 created by @JF002 better addresses this issue at its core by only pushing the BleRadioEnableToggle Message when the toggle is actually changed, instead of when the bluetooth settings page is opened.

If you're currently using my PR in your fork, please switch to using #2037 instead, as my solution could (and probably will) cause weird bugs in the future if anything is altered with NimbleController or BleController.

@JustScott JustScott closed this Mar 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Bluetooth setting is behaving abnormally
4 participants