Acknowledged

API Request - functions that allow an app to specify the start and end of an activity

This would solve this issue: https://forums.garmin.com/outdoor-recreation/outdoor-recreation/f/fenix-7-series/308450/bug-long-press-back-button-issue-still-not-fixed-in-fw9-33 and https://forums.garmin.com/outdoor-recreation/outdoor-recreation/f/epix-2/334122/bug---epix2-marq2-f7-long-press-of-back-button-from-an-app-does-not-terminate-it-properly-when-no-activity-is-running#pifragment-1292=1

If an app is not running an activity then a long press back should terminate it so that if long press back is set to "show watch face" the Back and Start buttons function consistently with builtin apps that do not start activities, like Maps and all built-in glances.

  • Let's say I want to implement a stop watch app that supports multiple stop watches.  In this case it is not recording anything but still wants to behave like it is running in the background if you long press back to see the WF.  In that case, the Start button should reopen the stopwatch app.  That's how the native timers app works.

    But if you implement a weather app and you open it via the Glances view and long press back to the WF, the start button should not resume the weather app.  That's how the native weather app works.

    As I see it, the real issue is that Garmin has implemented a different behavior for native vs CIQ apps.  And it has made Glances behave like apps launched from the activities list.  Not all Glances should be treated as Apps.

  • It seems that the first step would be to roll back to the previous behavior before making any API changes. But somehow I doubt that will happen

    That's why I suggest adding this API for activities that don't record anything.

  • Anyway, given that:

    - "CIQ apps which record an activity" are a subset of "CIQ apps which track an activity"

    - Garmin previously applied different behavior when a CIQ app was recording vs when it was not (the previous behavior is what you wanted)

    It seems that the first step would be to roll back to the previous behavior before making any API changes. But somehow I doubt that will happen.

  • IOW, 945 LTE already behaves the way you want, without any changes to the CIQ API.

    API changes would only be necessary if Garmin wanted an app to be able to respond somehow to a "request to return to watchface via hotkey" and choose whether to terminate or not. I doubt they want to add that kind of complexity and freedom to the api.

    If we're saying that CIQ apps should act like native apps, then most native apps (which map to sports) are really only "active" once recording has started (i.e. the user has pressed START to initialize a recording, and they haven't terminated the current recording by saving or discarding the activity.) In the same way, we could say that a CIQ app is only "active" (in terms of an "activity") when it's actually recording an activity.

    Ofc this would exclude a whole class of apps that have some concept of a "session" or "activity", but they just don't record anything.

  • Is this really necessary? CIQ apps already have the ability to start and stop an ActivityRecording session.

    At least on older devices (e.g. 935, 945 LTE), the behavior matches what you are asking for.

    e.g. 945 LTE:

    Setup:

    1) Assign Hold Back hot key to "Watchface"

    2) Create CIQ app which records an activity

    Test case 1:

    3) Open CIQ app, but do not start recording

    4) Hold Back (you'll be returned to the watchface)

    5) Press START at the watch face and note that you're taken to the activity list (as you expect). It's arguable whether this behavior is "necessary" or "correct", though

    Test case 2:

    3) Open CIQ app, and start recording

    4) Hold Back (you'll be returned to the watchface)

    5) Press START at the watch face and note that you're taken back to the CIQ app. This behavior is pretty unambiguously necessary and correct, since Garmin devices don't let you record more than 1 activity simultaneously, so letting the user select a native activity at this point is not an option.