Acknowledged
over 1 year ago

Instinct 2s / 2 / 2X - BUG WatchUi.requestUpdate() in high power mode!

After spending a considerable amount of time investigating why animated watch faces (WF) don't always display smooth animations on the Instinct 2s / 2 / 2X, and firmly believing that the simulator within the SDK does not accurately replicate the behavior of the real device, I have created a special version of the WF. I asked Instinct 2 owners to install it and share the results with me.

After receiving the test results from real devices, I concluded that onUpdate does not occur on actual devices after WatchUi.requestUpdate in 'high power' mode following wrist rotation. Interestingly, it functions correctly after button presses. This inconsistency is indicative of a bug. The simulator does not exhibit this issue. Clearly, other Garmin models do not encounter this problem.

3ykwDT9J4?feature=share

Parents Comment Children
  •        // Update the view
        function onUpdate(dc as Dc) as Void {
            ...
            ...
            ...
            if(highPerformance){
                mTimer.start(method(:mTimerCallback), 50, false);
            }
        }
        
        function mTimerCallback() as Void{
            WatchUi.requestUpdate();
        }
        
        // The user has just looked at their watch. Timers and animations may be started here.
        function onExitSleep() as Void {
            highPerformance = true;
            WatchUi.requestUpdate();
        }
    
        // Terminate any active timers and prepare for slow updates.
        function onEnterSleep() as Void {
            highPerformance = false;
            mTimer.stop();         
        }