Complete
over 3 years ago

WERETECH-9575

By Design

VA4 firmware 5.0 always clears the goalView dc every second

VA4 firmware 5.0 always clears the goalView dc every second.

The dc is always cleared every second during the display of the goalView.

My watch face implements a goalView but only renders the content once at the beginning and then draw over to get an animation like behaviour.

-> https://apps.garmin.com/en-US/apps/fc3f9b9f-add6-46cb-8e0b-9a2172a04c31

With the new firmware the goalView is cleared each second and draws only the new content. This leads to false rendering of my goalView and flickering of the complete VA4 display.

Please fix, thanks.

To reproduce this bug set the floors goal to the next number and go for a small climb. ;-)

Other watches are fine e.g. F5X, F6X

  • There are at least 2 things to check...

    1. The the screen gets black with each onUpdate check the first clip the arc is drawn every onUpdate but still flickers

    2. why is the SDK behaviour on each device different? I don't want to spend my time to develop the code for each device. (the different screen sizes are already enough)

    I'm currently thinking about to remove the support for some devices (e.g. the VA3 & 4) due to annoying system errors and strange user bug reports like above.

  • What Travis is saying is that you should update the complete screen, as there isn't too much on your goal screen that shouldn't have a major issue in redrawing everything every second. If you would have a lot on your screen then creating a bufferedbitmap to save the contents would be another way to go.

  • - The first clip with the VA4 and a black screen flickering for each refresh with onUpdate.

    - The second clip with a F6X and perfectly animation by simply drawing over the previous dc without a clear, the data values are only drawn once at the first onUpdate call.

  • This is what it looks like... same code for all devices.

    Sorry, the bug is related to the VA4.

  • I'm pretty sure this is not specific to the goal view, and it isn't new with the 5.0 firmware. This kind of trick used to work with devices based on a previous graphics system, but has not worked on the vivoactive4/venu devices since inception. There has been some discussion about making the new system compatible, and there is already a bug report for that.

    We currently expect that an app will redraw the entire screen for every call to onUpdate. You may be able to simulate what you need by allocating a BufferedBitmap when initializing your view, and then rendering into it and then drawing that to the screen in each call to onUpdate.