I'm using SDK v3.1.9 on a Vivoactive 4s. I've modified the Analog sample program to show both steps and heart rate. That all works fine when the updates are done once a minute via onUpdate(). However I want them to update more frequently than that, so I've added the update code to onPartialUpdate() and am using clips to minimise the amount of screen to be updated.
If I redisplay these values every second it works but the power budget occasionally gets exceeded. If I try and only redisplay these values when they change then on all subsequent seconds where the values do not change that part of the display is blacked out (Graphics.COLOR_BLACK), presumably because the clip(s) is/are being overwritten by the secondhand processing.
I've read elsewhere on this forum that the clips are additive when created within a single call to onPartialUpdate() however, I've tried creating all of the clips, then done a dc.clear() and then redisplayed each changed value but the clips are clearly not being properly recognised as the text displays are rubbish, although the second hand ticks without a problem.
Ideally, what I'd like to be able to do is to use a clip when necessary and then delete the instance of it in some way before recreating it for another display. Is there any way to do that and, if not, will I have to calculate the whole clipping area myself or is there some other magical way in which I can update up to 3 completely separate areas in a single call to onPartialUpdate()?
For clarity, when I set a clip for each value and update it every second as a single block of code those values are displayed continuously. When I set a clip and update each value only when it changes that value displays for one second and then disappears. When I create all three clips (whenever required) and then redisplay all three displays together the secondhand is fine the other two displays (drawn before the secondhand) are rubbish and it looks as if the clipped area has been miscalculated.