• 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

    bootloader 0.55 (standard)
    setting 0.55   (standard)
    launcher 0.20  (standard)
    widlock 0.7    (standard)
    widbat 0.9     (standard)
    anton  0.11    (standard , but this version is a fast clock)  
    
    1. install:
      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

    • download (1).png
    • download (2).png
    • download (4).png
    • download (3).png
  • 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 using widget_utils to hide the widgets if settings.fullscreen = true.

  • 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's remove-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 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. Maybe apps that utilize fast loading (clocks and launchers so far) should be expected to tell widgets to either .hide(), .show() or use .swipeOn()?

    Here is a tutorial on widget_utils.

  • Thanks everyone. Not sure if this is a bug or a feature request.

  • 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. :)

  • 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 :)

  • 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 the remove-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 the remove-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 if widget_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.

  • Ok, great! But in remove you should always just to .show if you use hide/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

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

Icon Laucher, fullscreen setting, what is expected behaviour with fast clocks

Posted by Avatar for HughB @HughB

Actions