Acknowledged

Request - specify if WatchUi.View.onUpdate() is required or optional

If onUpdate() calls would allow differentiating between updates that are required and that are optional, it would allow avoiding unnecessary repainting.

For example, if a watch face does not require updating every second (by showing just HH:MM), then 59 repaints every minute in high-power mode go to waste.

On the other hand, if the OS wipes the screen clean for some reason, then onUpdate() obviously must execute.

The request is to change onUpdate to include an extra parameter to specify if the update is optional or not:

onUpdate(dc as Graphics.Dc, required as Boolean) as Void

This would help writing more power-efficient code.

Parents
  • You can save the last time it was called and not draw if it's less than a second. Though in theory it could be that even though only 100ms passed there was something drawn over it and then you would need to draw...

Comment
  • You can save the last time it was called and not draw if it's less than a second. Though in theory it could be that even though only 100ms passed there was something drawn over it and then you would need to draw...

Children
  • This is probably the single biggest issue impacting the CIQ developers right now.  It's causing CIQ faces to feel sluggish when entering high-power mode, and it's draining batteries.  There's a HUGE bug on Epix 2 Pro that paints the screen every single second in low-power mode.  Battery drain is ridiculous for CIQ faces.

    I finally bit the bullet and developed this exact system.  It worked great on my Epix 2 Pro, and I thought I had a breakthrough in responsiveness and battery usage.  The sleep-wakes were super responsive.  And the battery usage was MUCh better.

    But once I rolled it out, users on other devices flooded in with bug reports.  It turns out that some devices clear the screen, making a paint on every call necessary.  So all those customers were getting "black screens" when an unnecessary paint was called.

    I reverted back to a prior version, and here I am now trying to see if I can figure out a new fix.  It was night-and-day better with the fix, but maybe I can only deploy that on my own device (Epix 2 Pro)?

    Here's my thread on this in the forums:
    forums.garmin.com/.../when-woken-onupdate-is-called-6-times-before-onexitsleep-called


  • This is a hack, not a solution. In fact, this doesn't work on an AMOLED watch I have. It requires onUpdate to execute on every call.