-
• #2
I think you have hit an edge case there. Clocks can fastload iconlaunch since it contains
loadWidgets
, but iconlaunch does not handle the possibility of already loaded widgets in the case of being fastloaded with fullscreen configured. The solution would probably be usingwidget_utils
to hide the widgets ifsettings.fullscreen = true
. -
• #3
EDIT: @halemmerich beat me to it, but I'll leave my comment as well.
I believe
require('widget_utils').hide()
could be introduced to Icon Launcher to add that functionality, called if full screen is set.require('widget_utils').show()
should probably be added to it'sremove
-function in that case so that widget show on the clock when fast loading back.On the other hand, if we set
widget_utils.show()
in theremove
- function and fast load a clock that should be full screen it will get widgets if it itself doesn't tell widgets to hide. Maybe apps that utilize fast loading (clocks and launchers so far) should be expected to tell widgets to either.hide()
,.show()
or use.swipeOn()
? -
• #4
Thanks everyone. Not sure if this is a bug or a feature request.
-
• #5
I think much regarding fastloading is still not entirely crystallized, and the discussions we have here on the forum and on the github repo will inform how it will shape up. So the line between bug and feature request can become unclear when talking about this. :)
-
• #6
On the other hand, if we set widget_utils.show() in the remove- function and fast load a clock that should be full screen it will get widgets if it itself doesn't tell widgets to hide.
That's correct. Clocks that don't use loadWidgets automatically don't get fast-loaded. If they have loadWidgets and they don't want widgets then they should hide them.
So I think IconLauncher should hide widgets as suggested - I've just done that
Maybe apps that utilize fast loading (clocks and launchers so far) should be expected to tell widgets to either .hide(), .show() or use .swipeOn()?
Yes, they should if they have a loadWidgets call but they don't want widgets showing.
I do mention that fast loaded apps need widgets in https://www.espruino.com/Bangle.js+Fast+Load but if you think this could be clearer, PRs alwayts welcome :)
-
• #7
I do mention that fast loaded apps need widgets in https://www.espruino.com/Bangle.js+Fast+Load but if you think this could be clearer, PRs alwayts welcome :)
No, I don't think it's unclear that widgets need to be loaded. I didn't think the logic through. I guess there shouldn't be a case where setting
.show()
in theremove
-function would lead to full screen clocks showing widgets.But yes, I might to a PR regarding resetting widgets
.show()
-ing,.hide()
-ing or.swipeOn()
-ing in theremove
-function. I'm debating whether to suggest saying to set.show()
or.swipeOn()
, since showing loaded widgets has been standard practice and is still kind of default ifwidget_utils
isn't used, but.swipeOn()
is the new recommended way.Issue #2192 ties into this also.
We can discuss further when I make the PR.
-
• #8
Ok, great! But in
remove
you should always just to.show
if you usehide/swipeOn
anywhere else.The idea is when fast loading, the app should expect that the widgets are already loaded and showing, and when it exits it should leave them that way
Hi All,
I am wondering what the expected behaviour of fast clocks is when using Icon Launcher in fullscreen mode. OR if there is a problem with icon launcher.
I would expect that widgets are not displayed on the launcher at all.
But this is not the case.
Here is a simple way to reproduce:
1.do a factory reset through the setting app
2.delete about welcome alarms health and bt widget scheular
3.update apps so that you end up with
icon launcher 0.14
simplest 0.6 (not a standard app but code is minimal and is not a fast clock)
and set launcher to icon launcher, options show clock = full screen =direct launch = one click exit = All Ticked
EXPECTED behaviour is that regardless of what app or clock is running when the launcher is run (though the button press) that no widgets will be displayed. See the first screenshot.
BUT this is not the case:
Run the launcher - select SImplest Clock (not a fast clock)
Run the launcher and not widgets are displayed
Select simplest clock
Run the launcher - no widgets are displayed
Select Anton clock ( fast load clock)
Run the launcher - widgets are displayed
Select Simplest clock
Run the launcher and no widgets are displayed.
There is no problem with simplest clock. The code for simplest clock was a clone of Anton clock 0.03 but without the custom font. You can repeat with other combinations of a fast load and a non fast load clocks, eg 7 segment (non fast) and slopeclock (fast) and after running the fast load clock the icon launcher will show the widgets.
4 Attachments