I am trying to do a basic Venu watch face where I'm just printing a large font digital time while in "high power" mode and then printing a very small font time when the device enters sleep. The goal is to get an "always-on" functionality working.
The CIQ3.1 release notes say this:
"Always On watch faces behave differently from MIP to AMOLED. With MIP screens, you can use View.onPartialUpdate to update a portion of the screen every second. With AMOLED screen, this is no longer allowed. Instead, when WatchUi.onEnterSleep is called, you are allowed to render a watch face that must obey the rules of the AMOLED burn-in
protector:
- No more than 10% screen pixels can be on
- No pixel can be on longer than 3 mins
Ways you can prevent burn in are by drawing the time with a thin font, shifting the time every minute as not to repeatedly leave the same pixels on, and not having static tick marks that leave the same pixels on.
Note that watch faces can detect whether a product has screen protection enforced by checking the value of DeviceSettings.requiresBurnInProtection."
I have used the OnEnterSleep method to set a var called lowPower (and the OnExitSleep to clear it) and then I do a forced update via WatchUi.requestUpdate(). The update method then paints the screen black and draws the text. The text is very small and clearly less than 10% of the pixels. I also implemented a basic rotational algorithm where the text is shifted around the screen automatically on every update, as per the requirements above. The text never overlaps with itself so I'm pretty sure I'm meeting all of the burn-in requirements.
In the simulator I see everything working correctly, and I can toggle Low Power Mode and everything appears as I want it to. I also don't get the heatmap warning indicator, so again I'm pretty sure I'm meeting all of the requirements. But when I put the .prg on my watch and try to run it, the watch always turns the display off. I see the high power mode, and then I see the small text when it goes to sleep, but then the display immediately turns off. I'm not sure what I am doing wrong.