Merge branch 'airplane-mode' of https://github.com/evergreen22/InfiniTime into evergreen22-airplane-mode

Apply a few changes that were requested in the PR during the review.

# Conflicts:
#	src/CMakeLists.txt
#	src/displayapp/Apps.h
#	src/displayapp/DisplayApp.cpp
#	src/displayapp/Messages.h
#	src/displayapp/screens/settings/Settings.cpp
This commit is contained in:
Jean-François Milants
2022-02-20 15:40:49 +01:00
parent 40cdb54772
commit ef44b763d9
21 changed files with 179 additions and 124 deletions

View File

@@ -184,7 +184,7 @@ int NimbleController::OnGAPEvent(ble_gap_event* event) {
case BLE_GAP_EVENT_ADV_COMPLETE:
NRF_LOG_INFO("Advertising event : BLE_GAP_EVENT_ADV_COMPLETE");
NRF_LOG_INFO("reason=%d; status=%0X", event->adv_complete.reason, event->connect.status);
if (bleController.GetConnectState() == Ble::ConnectStates::Disconnected) {
if (bleController.IsRadioEnabled() && !bleController.IsConnected()) {
StartAdvertising();
}
break;
@@ -199,12 +199,12 @@ int NimbleController::OnGAPEvent(ble_gap_event* event) {
currentTimeClient.Reset();
alertNotificationClient.Reset();
connectionHandle = BLE_HS_CONN_HANDLE_NONE;
bleController.SetConnectState(Ble::ConnectStates::Disconnected);
bleController.Disconnect();
fastAdvCount = 0;
StartAdvertising();
} else {
connectionHandle = event->connect.conn_handle;
bleController.SetConnectState(Ble::ConnectStates::Connected);
bleController.Connect();
systemTask.PushMessage(Pinetime::System::Messages::BleConnected);
// Service discovery is deferred via systemtask
}
@@ -222,8 +222,8 @@ int NimbleController::OnGAPEvent(ble_gap_event* event) {
currentTimeClient.Reset();
alertNotificationClient.Reset();
connectionHandle = BLE_HS_CONN_HANDLE_NONE;
if (bleController.GetConnectState() == Ble::ConnectStates::Connected) {
bleController.SetConnectState(Ble::ConnectStates::Disconnected);
if(bleController.IsConnected()) {
bleController.Disconnect();
fastAdvCount = 0;
StartAdvertising();
}
@@ -401,19 +401,20 @@ void NimbleController::NotifyBatteryLevel(uint8_t level) {
}
}
void NimbleController::SwitchAirplaneMode(bool enabled) {
if (enabled) {
if (bleController.IsConnected()) {
bleController.SetConnectState(Ble::ConnectStates::Airplane);
ble_gap_terminate(connectionHandle, BLE_ERR_REM_USER_CONN_TERM);
} else {
bleController.SetConnectState(Ble::ConnectStates::Airplane);
ble_gap_adv_stop();
}
void NimbleController::EnableRadio() {
bleController.EnableRadio();
bleController.Disconnect();
fastAdvCount = 0;
StartAdvertising();
}
void NimbleController::DisableRadio() {
bleController.DisableRadio();
if (bleController.IsConnected()) {
ble_gap_terminate(connectionHandle, BLE_ERR_REM_USER_CONN_TERM);
bleController.Disconnect();
} else {
bleController.SetConnectState(Ble::ConnectStates::Disconnected);
fastAdvCount = 0;
StartAdvertising();
ble_gap_adv_stop();
}
}