Acknowledged
CIQQA-3255

bug: vivoactive3 returns true for ActivityMonitor.Info has :pushes

I have the following code in one of my menus:

        if (ActivityMonitor.Info has :pushes) {
            addItem(settings, Rez.Strings.activityTypeWheelchairPushWalk, 65000);
            addItem(settings, Rez.Strings.activityTypeIndoorWheelchairPushWalk, 65086);
        }

And I got an Invalid Value exception in ERA:

Error Name: Invalid Value
Occurrences: 1
First Occurrence: 2025-05-26
Last Occurrence: 2025-05-26
Devices:
vívoactive® 3: 8.20
App Versions: 0.9.6
Languages: ces
Backtrace:
SessionDebug.createSession:5
SessionDebug.session65086:73
SessionDebug.createSessionDebug:94
HikerAppView.createSession:66
SettingsMenu2.onSelect:220

However this can only happen if ActivityMonitor.Info has :pushes is true for vivoactive3.

In the simulator (SDK 8.1.1) I can't reproduce the problem neither with nor without --disable-api-has-check-removal 

I am not 100% but 99% sure that in this build I used --disable-api-has-check-removal so if I understand correctly then this is a bug in the vivoactive firmware. Or in the simulator, that returns false, but then why does va3 throw the Invalid Value exception when calling: 

ActivityRecording.createSession({:name => "name", :sport => 65 as Activity.Sport, :subSport => 86 as Activity.SubSport});
(which BTW doesn't fail in the simulator)

Parents
  • Sure np. A buddy lent me his va3 a while ago, so it's nice to finally have a use for it, other than marvelling at how bad Garmin's touch-first UI was in 2017. Seriously, by looking at older Garmins, you do get an appreciation for all the UI/UX improvements Garmin has made.

    I did notice that:

    - I can only sideload one app at a time (I assume you used the same app-id for both PRGs)

    - both apps appear in the activity list as "Hiker App B"

    My findings for both PRGs:

    - neither of the wheelchair options exist in the activity type menu (obviously there's no crash, since there's nothing for me to select that would crash the app in same way that you reported)

    Have no idea why the store version of the app behaves differently, especially since it was last updated April 11 (after the current 8.1.1 SDK was released), and I assume you used the latest SDK to build the store version as well as the PRGs you posted.

    Here's the logs:

    HIKERAPP.txt
    1607220107 19:25:47 HikerApp
    1607220107 19:25:47 HikerBaseApp.initialize: memory: free:66264, used:60768, total:127032
    1607220107 19:25:47 onStart
    1607220108 19:25:48 setGnssConfig(1): GNSS: GPS
    1607220108 19:25:48 getInitialView
    1607220108 19:25:48 KPAY.getAccountToken: 80a3c7e94ef98ade41330a116433ec10cd538693
    1607220108 19:25:48 KPAY.triggerUpdate
    1607220108 19:25:48 triggerWebEvent: 60
    1607220108 19:25:48 scheduleWebEvent: 60
    1607220108 19:25:48 UV.loadUV: KPay invalid
    1607220108 19:25:48 requestFetch: true
    1607220108 19:25:48 createSession: Walk (11000)
    1607220108 19:25:48 readSettings
    1607220108 19:25:48 onLayout
    1607220108 19:25:48 startUpdates
    1607220108 19:25:48 onShow
    1607220108 19:25:48 waitForGnss: 1, true
    1607220108 19:25:48 onHide
    1607220109 19:25:49 pauseUpdates
    1607220109 19:25:49 startMinuteTimer
    1607220109 19:25:49 WaitForPositionView.onShow: 1, false
    1607220110 19:25:50 onBack: yes
    1607220110 19:25:50 onKey: 5, 2
    1607220110 19:25:50 WaitForPositionDelegate.close: skip GPS fix
    1607220110 19:25:50 onShow
    1607220110 19:25:50 waitForGnss: 1, false
    1607220111 19:25:51 onMenu: no
    1607220111 19:25:51 openSettings
    1607220112 19:25:52 onHide
    1607220112 19:25:52 pauseUpdates
    1607220112 19:25:52 setGnssConfig(0): GNSS disabled
    1607220112 19:25:52 startMinuteTimer
    1607220113 19:25:53 s.onMenuItem: activityType
    1607220117 19:25:57 t.onMenuItem: Mountaineering: 16000
    1607220117 19:25:57 createSession: Mountaineering (16000)
    1607220117 19:25:57 readSettings
    1607220117 19:25:57 activityTypeId: 11000 => 16000
    1607220118 19:25:58 onShow
    1607220118 19:25:58 waitForGnss: 0, false
    1607220118 19:25:58 onTap: 0
    1607220118 19:25:58 onBack: yes
    1607220118 19:25:58 onKey: 5, 2
    1607220118 19:25:58 doAction: 1
    1607220118 19:25:58 onLapOrBack
    1607220118 19:25:58 onStop
    1607220118 19:25:58 stopUpdates
    1607220118 19:25:58 setGnssConfig(0): GNSS disabled
    1607220118 19:25:58 onHide
    1607220118 19:25:58 pauseUpdates
    1607220118 19:25:58 setGnssConfig(0): GNSS disabled
    1607220118 19:25:58 startMinuteTimer
    1607220118 19:25:58 onStop
    1607220118 19:25:58 onStop
    1607220118 19:25:58 stopUpdates
    1607220118 19:25:58 setGnssConfig(0): GNSS disabled
    1607220118 19:25:58 onStop: disable GPS
    

    HIKERAPP2.txt
    1607220330 19:29:30 HikerApp
    1607220330 19:29:30 HikerBaseApp.initialize: memory: free:4800, used:23928, total:28728
    1607220330 19:29:30 onStart
    1607220330 19:29:30 getServiceDelegate
    1607220330 19:29:30 onStop
    1607220339 19:29:39 HikerApp
    1607220339 19:29:39 HikerBaseApp.initialize: memory: free:69016, used:58016, total:127032
    1607220339 19:29:39 onStart
    1607220339 19:29:39 setGnssConfig(1): GNSS: GPS
    1607220339 19:29:39 getInitialView
    1607220339 19:29:39 KPAY.getAccountToken: 
    1607220340 19:29:40 KPAY.generateAccountToken: 80a3c7e94ef98ade41330a116433ec10cd538693
    1607220340 19:29:40 KPAY.triggerUpdate
    1607220340 19:29:40 triggerWebEvent: 60
    1607220340 19:29:40 scheduleWebEvent: 60
    1607220340 19:29:40 UV.loadUV: KPay invalid
    1607220340 19:29:40 requestFetch: true
    1607220340 19:29:40 createSession: Hike (17000)
    1607220340 19:29:40 readSettings
    1607220340 19:29:40 onLayout
    1607220340 19:29:40 startUpdates
    1607220340 19:29:40 onShow
    1607220340 19:29:40 waitForGnss: 1, true
    1607220340 19:29:40 onHide
    1607220340 19:29:40 pauseUpdates
    1607220340 19:29:40 startMinuteTimer
    1607220340 19:29:40 WaitForPositionView.onShow: 1, false
    1607220342 19:29:42 WaitForPositionDelegate.onMenu
    1607220342 19:29:42 openSettings
    1607220343 19:29:43 s.onMenuItem: activityType
    1607220349 19:29:49 t.onMenuItem: Stair Stepper: 4016
    1607220349 19:29:49 setGnssConfig(0): GNSS disabled
    1607220349 19:29:49 createSession: Stair Stepper (4016)
    1607220349 19:29:49 readSettings
    1607220349 19:29:49 activityTypeId: 17000 => 4016
    1607220351 19:29:51 WaitForPositionView.onShow: 0, true
    1607220351 19:29:51 WaitForPositionView.onShow: close
    1607220352 19:29:52 onShow
    1607220352 19:29:52 waitForGnss: 0, true
    1607220352 19:29:52 onBack: yes
    1607220353 19:29:53 onKey: 5, 2
    1607220353 19:29:53 doAction: 1
    1607220353 19:29:53 onLapOrBack
    1607220353 19:29:53 onStop
    1607220353 19:29:53 stopUpdates
    1607220353 19:29:53 setGnssConfig(0): GNSS disabled
    1607220353 19:29:53 onHide
    1607220353 19:29:53 pauseUpdates
    1607220353 19:29:53 setGnssConfig(0): GNSS disabled
    1607220353 19:29:53 startMinuteTimer
    1607220353 19:29:53 onStop
    1607220353 19:29:53 onStop
    1607220353 19:29:53 stopUpdates
    1607220353 19:29:53 setGnssConfig(0): GNSS disabled
    1607220353 19:29:53 onStop: disable GPS
    

Comment
  • Sure np. A buddy lent me his va3 a while ago, so it's nice to finally have a use for it, other than marvelling at how bad Garmin's touch-first UI was in 2017. Seriously, by looking at older Garmins, you do get an appreciation for all the UI/UX improvements Garmin has made.

    I did notice that:

    - I can only sideload one app at a time (I assume you used the same app-id for both PRGs)

    - both apps appear in the activity list as "Hiker App B"

    My findings for both PRGs:

    - neither of the wheelchair options exist in the activity type menu (obviously there's no crash, since there's nothing for me to select that would crash the app in same way that you reported)

    Have no idea why the store version of the app behaves differently, especially since it was last updated April 11 (after the current 8.1.1 SDK was released), and I assume you used the latest SDK to build the store version as well as the PRGs you posted.

    Here's the logs:

    HIKERAPP.txt
    1607220107 19:25:47 HikerApp
    1607220107 19:25:47 HikerBaseApp.initialize: memory: free:66264, used:60768, total:127032
    1607220107 19:25:47 onStart
    1607220108 19:25:48 setGnssConfig(1): GNSS: GPS
    1607220108 19:25:48 getInitialView
    1607220108 19:25:48 KPAY.getAccountToken: 80a3c7e94ef98ade41330a116433ec10cd538693
    1607220108 19:25:48 KPAY.triggerUpdate
    1607220108 19:25:48 triggerWebEvent: 60
    1607220108 19:25:48 scheduleWebEvent: 60
    1607220108 19:25:48 UV.loadUV: KPay invalid
    1607220108 19:25:48 requestFetch: true
    1607220108 19:25:48 createSession: Walk (11000)
    1607220108 19:25:48 readSettings
    1607220108 19:25:48 onLayout
    1607220108 19:25:48 startUpdates
    1607220108 19:25:48 onShow
    1607220108 19:25:48 waitForGnss: 1, true
    1607220108 19:25:48 onHide
    1607220109 19:25:49 pauseUpdates
    1607220109 19:25:49 startMinuteTimer
    1607220109 19:25:49 WaitForPositionView.onShow: 1, false
    1607220110 19:25:50 onBack: yes
    1607220110 19:25:50 onKey: 5, 2
    1607220110 19:25:50 WaitForPositionDelegate.close: skip GPS fix
    1607220110 19:25:50 onShow
    1607220110 19:25:50 waitForGnss: 1, false
    1607220111 19:25:51 onMenu: no
    1607220111 19:25:51 openSettings
    1607220112 19:25:52 onHide
    1607220112 19:25:52 pauseUpdates
    1607220112 19:25:52 setGnssConfig(0): GNSS disabled
    1607220112 19:25:52 startMinuteTimer
    1607220113 19:25:53 s.onMenuItem: activityType
    1607220117 19:25:57 t.onMenuItem: Mountaineering: 16000
    1607220117 19:25:57 createSession: Mountaineering (16000)
    1607220117 19:25:57 readSettings
    1607220117 19:25:57 activityTypeId: 11000 => 16000
    1607220118 19:25:58 onShow
    1607220118 19:25:58 waitForGnss: 0, false
    1607220118 19:25:58 onTap: 0
    1607220118 19:25:58 onBack: yes
    1607220118 19:25:58 onKey: 5, 2
    1607220118 19:25:58 doAction: 1
    1607220118 19:25:58 onLapOrBack
    1607220118 19:25:58 onStop
    1607220118 19:25:58 stopUpdates
    1607220118 19:25:58 setGnssConfig(0): GNSS disabled
    1607220118 19:25:58 onHide
    1607220118 19:25:58 pauseUpdates
    1607220118 19:25:58 setGnssConfig(0): GNSS disabled
    1607220118 19:25:58 startMinuteTimer
    1607220118 19:25:58 onStop
    1607220118 19:25:58 onStop
    1607220118 19:25:58 stopUpdates
    1607220118 19:25:58 setGnssConfig(0): GNSS disabled
    1607220118 19:25:58 onStop: disable GPS
    

    HIKERAPP2.txt
    1607220330 19:29:30 HikerApp
    1607220330 19:29:30 HikerBaseApp.initialize: memory: free:4800, used:23928, total:28728
    1607220330 19:29:30 onStart
    1607220330 19:29:30 getServiceDelegate
    1607220330 19:29:30 onStop
    1607220339 19:29:39 HikerApp
    1607220339 19:29:39 HikerBaseApp.initialize: memory: free:69016, used:58016, total:127032
    1607220339 19:29:39 onStart
    1607220339 19:29:39 setGnssConfig(1): GNSS: GPS
    1607220339 19:29:39 getInitialView
    1607220339 19:29:39 KPAY.getAccountToken: 
    1607220340 19:29:40 KPAY.generateAccountToken: 80a3c7e94ef98ade41330a116433ec10cd538693
    1607220340 19:29:40 KPAY.triggerUpdate
    1607220340 19:29:40 triggerWebEvent: 60
    1607220340 19:29:40 scheduleWebEvent: 60
    1607220340 19:29:40 UV.loadUV: KPay invalid
    1607220340 19:29:40 requestFetch: true
    1607220340 19:29:40 createSession: Hike (17000)
    1607220340 19:29:40 readSettings
    1607220340 19:29:40 onLayout
    1607220340 19:29:40 startUpdates
    1607220340 19:29:40 onShow
    1607220340 19:29:40 waitForGnss: 1, true
    1607220340 19:29:40 onHide
    1607220340 19:29:40 pauseUpdates
    1607220340 19:29:40 startMinuteTimer
    1607220340 19:29:40 WaitForPositionView.onShow: 1, false
    1607220342 19:29:42 WaitForPositionDelegate.onMenu
    1607220342 19:29:42 openSettings
    1607220343 19:29:43 s.onMenuItem: activityType
    1607220349 19:29:49 t.onMenuItem: Stair Stepper: 4016
    1607220349 19:29:49 setGnssConfig(0): GNSS disabled
    1607220349 19:29:49 createSession: Stair Stepper (4016)
    1607220349 19:29:49 readSettings
    1607220349 19:29:49 activityTypeId: 17000 => 4016
    1607220351 19:29:51 WaitForPositionView.onShow: 0, true
    1607220351 19:29:51 WaitForPositionView.onShow: close
    1607220352 19:29:52 onShow
    1607220352 19:29:52 waitForGnss: 0, true
    1607220352 19:29:52 onBack: yes
    1607220353 19:29:53 onKey: 5, 2
    1607220353 19:29:53 doAction: 1
    1607220353 19:29:53 onLapOrBack
    1607220353 19:29:53 onStop
    1607220353 19:29:53 stopUpdates
    1607220353 19:29:53 setGnssConfig(0): GNSS disabled
    1607220353 19:29:53 onHide
    1607220353 19:29:53 pauseUpdates
    1607220353 19:29:53 setGnssConfig(0): GNSS disabled
    1607220353 19:29:53 startMinuteTimer
    1607220353 19:29:53 onStop
    1607220353 19:29:53 onStop
    1607220353 19:29:53 stopUpdates
    1607220353 19:29:53 setGnssConfig(0): GNSS disabled
    1607220353 19:29:53 onStop: disable GPS
    

Children
No Data