From 62b0ecfb00f8db34117c122db8752e63dbc6d446 Mon Sep 17 00:00:00 2001 From: AdaSzi115026 <81822538+AdaSzi@users.noreply.github.com> Date: Fri, 6 Nov 2026 00:42:41 +0100 Subject: [PATCH] Fix the Satellite Tracker crash with the new location API location_subscribe() takes a subscriber description since Tactility #728. The app's own copy of the declarations was older, so the firmware read the description from an argument the app never passed. --- Apps/SatelliteTracker/main/Source/DeviceLocation.cpp | 2 +- Apps/SatelliteTracker/main/Source/LocationApi.h | 5 ++++- Apps/SatelliteTracker/manifest.properties | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Apps/SatelliteTracker/main/Source/DeviceLocation.cpp b/Apps/SatelliteTracker/main/Source/DeviceLocation.cpp index 38b6e50..0920454 100644 --- a/Apps/SatelliteTracker/main/Source/DeviceLocation.cpp +++ b/Apps/SatelliteTracker/main/Source/DeviceLocation.cpp @@ -4,7 +4,7 @@ void DeviceLocation::update(TaskEventGroup* eventGroup, bool wanted) { bool shouldRun = wanted && location_is_enabled(); if (shouldRun && !subscribed) { subscription = LocationSubscription {}; - subscribed = location_subscribe(&subscription, eventGroup) == ERROR_NONE; + subscribed = location_subscribe(&subscription, eventGroup, "Satellite Tracker") == ERROR_NONE; } else if (!shouldRun && subscribed) { stop(); } diff --git a/Apps/SatelliteTracker/main/Source/LocationApi.h b/Apps/SatelliteTracker/main/Source/LocationApi.h index e4d2ead..65c660e 100644 --- a/Apps/SatelliteTracker/main/Source/LocationApi.h +++ b/Apps/SatelliteTracker/main/Source/LocationApi.h @@ -36,10 +36,13 @@ struct Location { char provider[LOCATION_PROVIDER_ID_MAX_LENGTH + 1]; }; +#define LOCATION_SUBSCRIBER_DESCRIPTION_MAX_LENGTH 24 + struct LocationSubscription { uint32_t bit; struct { + char description[LOCATION_SUBSCRIBER_DESCRIPTION_MAX_LENGTH + 1]; struct TaskEventGroup* event_group; struct LocationSubscription* next; } internal; @@ -47,7 +50,7 @@ struct LocationSubscription { bool location_is_enabled(void); error_t location_get(struct Location* location); -error_t location_subscribe(struct LocationSubscription* sub, struct TaskEventGroup* event_group); +error_t location_subscribe(struct LocationSubscription* sub, struct TaskEventGroup* event_group, const char* description); error_t location_unsubscribe(struct LocationSubscription* sub); #ifdef __cplusplus diff --git a/Apps/SatelliteTracker/manifest.properties b/Apps/SatelliteTracker/manifest.properties index 61d5f4a..5cc5573 100644 --- a/Apps/SatelliteTracker/manifest.properties +++ b/Apps/SatelliteTracker/manifest.properties @@ -2,8 +2,8 @@ manifest.version=0.3 target.sdk=0.8.0-dev target.platforms=all id=tactility.satellitetracker -version.name=0.4.0 -version.code=4 +version.name=0.4.1 +version.code=5 name=Satellite Tracker description=World map with live satellite positions and passes app.0.id=tactility.satellitetracker