InfiniTimeOrg / InfiniTime

Firmware for Pinetime smartwatch written in C++ and based on FreeRTOS
GNU General Public License v3.0
2.71k stars 925 forks source link

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

Closed JustScott closed 6 months ago

JustScott commented 8 months ago

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

github-actions[bot] commented 8 months ago

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
rambonette commented 8 months ago

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

JustScott commented 6 months ago

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.