[widbt_notify x lcdclockplus] clockinfo is not redrawn immediately after go back from widget notification to clock
Affected hardware version
Bangle 2
Your firmware version
2v24
The bug
Hi, As I dont think there is replacement for lost bt notification I would like to mark this as occurring issue. As messages ui notification is not breaking returning to watchface (only other popup overlay that I am using) I would investigate this a but further but any help would be appreciated. I see that this widget is a bit dated now and probably now there are more clear ways to go back from popup to watchface.
As shown clockinfo is redrawn only when its call its emit redraw (timers, events etc.) and not immediately after returning from notification popup.
Thanks in advance
Installed apps
No response
Sounds like a bug with widbt_notify or the app - looking at the code, it's both.
widbt_notify expects a global draw function to call, which should redraw the widgets (this isn't a hard contract, just implicit). lcdclockplus has a global draw function, but doesn't redraw clkinfo.
I would say widbt_notify should avoid this implicit coupling and redraw clkinfo itself - via require("clock_info").clockInfos - @KungPhoo / @pebl-hank this is perhaps one for you, or we can see who picks this up
There is now an option to setUI to add a redraw call: https://www.espruino.com/Reference#l_Bangle_setUI
But pretty much no apps do this at the moment so it wouldn't be much use.
While lcdclockplus does have a draw function, it's inside a {} so is hidden and couldn't be called anyway AFAIK.
I don't think widgets should be clearing the whole screen at all. We have setLCDOverlay that can display something over the clock without blowing everything else away, or there's even the notify library that does this all for you and would be perfect: https://github.com/espruino/BangleApps/tree/a32d268b7ddb087fff32b8131f4feda86511dd33/apps/notify
But personally if nobody fixes this we should probably just kill this app. It's unmodified in 2 years and as far as I can see there are extremely few clocks or apps that it wouldn't completely break now.
Just fixed this by using the 'notify' library so if you update now it should be ok.
I also spotted 2 other widgets that completely clear the screen and fixed those.
The slightly odd thing is this should only attempt a redraw if there is draw function, which there shouldn't be for lcdclockplus (I just ran it and checked) - so there must be some other widget/bootcode/etc that is broken that's defining a global draw function and fooling it.