Acknowledged

Bug: navigating a course via System.exitTo fails if native activity is already running

Issue

From a widget, I use System.exitTo(course.toIntent()) to start navigating a course using native activities such as hike. This works perfectly when there is no activity running.

However, if there is already an activity running, then starting a native activity for a course using an intent (same code as above) fails:

  1. The activity is turned into a multisport activity (even if I choose the same activity type as is already running), creating a new lap (which messes up the totals).
  2. The new course is not loaded for navigation (nothing happens at all, if there was a navigation active at this point, it simply continues).

This happens no matter if the native activity has been started directly or through my widget in the first place. It also does no matter if the activity is actually navigating a course in that moment.

Expected Behavior / Fix

Starting a new course from a widget via System.exitTo(course.toIntent()) while an activity is already running should work exactly as it does when starting to navigate a course / saved location etc. using the activities' navigation menu: the new course/location is loaded for navigation, no change to multisport, no new lap.

Impact

This bug prevents the user to switch the course being navigated during an activity (e.g. during a longer hike that consists of following multiple courses, or when plans change, a detour is necessary etc.). The switch to multisport / starting a new lap messes up the data during the activity (e.g. total distance is reset) and also the resulting saved activity.

Hardware

Device: Fenix 6s Pro, Firmware 23.00 (this issue also existed in the previous FW versions)

Development Environment

CIQ SDK 4.1.6

VSC 1.74.2

VSC Extension 1.0.7

OS: Linux (Kubuntu 22.04.1)

Parents
  • I did some more testing with launching intents for location/waypoints (loaded via PersistedContent.getAppWaypoints) from my widget while an activity is already active:

    • This generally works: a route to the location is calculated and navigation starts. Great!
    • However, this also turns the running activity into "multisport" (even if I choose the same "sport" when launching the intent) and also starts a new lap (same as with courses as reported in this issue). When starting navigation to a location using the activity's "navigation" menu, things work as expected (no multisport, no new lap).

    Please make launching saved locations and courses behave like they do when doing it manually from a running activity: no multisport and no new lap (unless a different sport is actually chosen).

Comment
  • I did some more testing with launching intents for location/waypoints (loaded via PersistedContent.getAppWaypoints) from my widget while an activity is already active:

    • This generally works: a route to the location is calculated and navigation starts. Great!
    • However, this also turns the running activity into "multisport" (even if I choose the same "sport" when launching the intent) and also starts a new lap (same as with courses as reported in this issue). When starting navigation to a location using the activity's "navigation" menu, things work as expected (no multisport, no new lap).

    Please make launching saved locations and courses behave like they do when doing it manually from a running activity: no multisport and no new lap (unless a different sport is actually chosen).

Children
No Data