Ticket Created
over 5 years ago

WERETECH-8376

FR45 fades watch-face black

Hi, my watch-face fades to black immediately and only shows after the gesture of looking to the watch on FR45s. 

Next video shows that Garmin for some reason fades the watch, because it takes 4 frames to hide and show it. There's no such functionality in the watch face itself: 

https://drive.google.com/file/d/0B98rO91GOxZrQ2ZmYTVEOVUtb0FXQlZjZUtzam9NejhKdS1V/view?usp=sharing

What causes it and how to fix it? The problem seems to be only on FR45 and user reports that other watch faces run fine. 

It is as simple as in the video, just hours, minutes and an arc. No seconds shown. Battery consumption with such settings is better than on the stock watch faces. 

Thanks for hints what might be wrong. 

Edit: culprit found: some devices (FR45, FR630, Vivoactive4) clear the screen with every watch-face onUpdate if you don't completely re-render the whole screen. On most of the other devices it works as intended, meaning the screen persists unless you clear it. 

  • Works fine in the sim. I am not aware of any device other than FR45 with this issue. Already 3 users reported. 

    If you slow-down the fading in/out you'll see like it was animated. This is not being done by the watch face. It just renders all at once.

    If the display itself on this device is not that incredibly slow, for some reason the watch itself must decide to hide the watch face and use this strange fade-in / fade-out effect. 

    The onUpdate is pretty straightforward: https://github.com/myneur/late/blob/calendar-device/source/lateView.mc

    My guess is that the watch could decide e.g. for the battery purpose to hide the watch-face this way. But I don't see the reason as this watch eats less battery than the stock ones. It does not update every second, just every minute or onExitSleep

  • Do you see this in the sim?  It's probably something in your onUpdate() code (that's where you should be drawing everything.  If you're not using layouts, comment out the view.onUpdate() or make sure it's the first thing in onUpdate().