Skip to content

Commit 7baf2a6

Browse files
committed
NavigationService: Autostart navigation app on nav command
When a paired device sends a navigation message, the navigation service will automatically trigger the navigation app to open.
1 parent 30a529a commit 7baf2a6

File tree

7 files changed

+26
-2
lines changed

7 files changed

+26
-2
lines changed

src/components/ble/NavigationService.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
*/
1818

1919
#include "components/ble/NavigationService.h"
20+
#include "systemtask/SystemTask.h"
2021

2122
namespace {
2223
// 0001yyxx-78fc-48fe-8e23-433b3a1942d0
@@ -43,7 +44,7 @@ namespace {
4344
}
4445
} // namespace
4546

46-
Pinetime::Controllers::NavigationService::NavigationService() {
47+
Pinetime::Controllers::NavigationService::NavigationService(Pinetime::System::SystemTask& systemTask) : systemTask {systemTask} {
4748
characteristicDefinition[0] = {.uuid = &navFlagCharUuid.u,
4849
.access_cb = NAVCallback,
4950
.arg = this,
@@ -96,6 +97,7 @@ int Pinetime::Controllers::NavigationService::OnCommand(struct ble_gatt_access_c
9697
} else if (ble_uuid_cmp(ctxt->chr->uuid, &navProgressCharUuid.u) == 0) {
9798
m_progress = data[0];
9899
}
100+
systemTask.PushMessage(Pinetime::System::Messages::OnNavChange);
99101
}
100102
return 0;
101103
}

src/components/ble/NavigationService.h

+8-1
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,16 @@
2727
#undef min
2828

2929
namespace Pinetime {
30+
31+
namespace System {
32+
class SystemTask;
33+
}
34+
3035
namespace Controllers {
3136

3237
class NavigationService {
3338
public:
34-
NavigationService();
39+
explicit NavigationService(Pinetime::System::SystemTask& systemTask);
3540

3641
void Init();
3742

@@ -53,6 +58,8 @@ namespace Pinetime {
5358
std::string m_narrative;
5459
std::string m_manDist;
5560
int m_progress;
61+
62+
Pinetime::System::SystemTask& systemTask;
5663
};
5764
}
5865
}

src/components/ble/NimbleController.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ NimbleController::NimbleController(Pinetime::System::SystemTask& systemTask,
4444
currentTimeService {dateTimeController},
4545
musicService {systemTask, *this},
4646
weatherService {dateTimeController},
47+
navService {systemTask},
4748
batteryInformationService {batteryController},
4849
immediateAlertService {systemTask, notificationManager},
4950
heartRateService {*this, heartRateController},

src/displayapp/DisplayApp.cpp

+9
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,15 @@ void DisplayApp::Refresh() {
270270
LoadNewScreen(Apps::Music, DisplayApp::FullRefreshDirections::Up);
271271
}
272272
break;
273+
case Messages::NavStarted:
274+
if (state != States::Running) {
275+
PushMessageToSystemTask(System::Messages::GoToRunning);
276+
}
277+
// Load navigation app if not loaded
278+
if (currentApp != Apps::Navigation) {
279+
LoadNewScreen(Apps::Navigation, DisplayApp::FullRefreshDirections::Up);
280+
}
281+
break;
273282
case Messages::TimerDone:
274283
if (state != States::Running) {
275284
PushMessageToSystemTask(System::Messages::GoToRunning);

src/displayapp/Messages.h

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ namespace Pinetime {
1616
ButtonDoubleClicked,
1717
NewNotification,
1818
MusicStarted,
19+
NavStarted,
1920
TimerDone,
2021
BleFirmwareUpdateStarted,
2122
DimScreen,

src/systemtask/Messages.h

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ namespace Pinetime {
2525
OnChargingEvent,
2626
OnPairing,
2727
OnMusicStarted,
28+
OnNavChange,
2829
SetOffAlarm,
2930
MeasureBatteryTimerExpired,
3031
BatteryPercentageUpdated,

src/systemtask/SystemTask.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,9 @@ void SystemTask::Work() {
388388
case Messages::OnMusicStarted:
389389
displayApp.PushMessage(Pinetime::Applications::Display::Messages::MusicStarted);
390390
break;
391+
case Messages::OnNavChange:
392+
displayApp.PushMessage(Pinetime::Applications::Display::Messages::NavStarted);
393+
break;
391394
default:
392395
break;
393396
}

0 commit comments

Comments
 (0)