widget and UII.BehaviorDelegate

I've reported bug

https://forums.garmin.com/developer/connect-iq/i/bug-reports/behaviordelegate-doesn-t-work-on-sim-some-devices

but....

I have standard code in PSX-7

(:glance)
class PSX7App extends APP.AppBase
{
    //...
    function getInitialView()
    {
        return [new PSXView(), new PSXDelegate()];
    }
        
    function getGlanceView()
    {
        return [new PSXGlanceView()];
    }  
}

and using 4.1.7 in main view up/down buttons work on sim

- always well - for some devices (e.g. f7 maybe all 4.0)

- for older one (e.g my f6p)  only when launched from the glance

- one user tries tu use my PSX-7 widget on f5x and no up/down events - it exit and changes widget

The same user with f5x claims up/down runs well in psx-4 but in psx-4

- no (:glance) annotation (all app is loaded in glance)

- built with 4.1.5 (but when I testing now from 4.1.4 all runs bad)

So should I handle something in different way? Maybe for devices with no glance should be app no widget (in watch-app everything runs well in sim).

  • Actually, most devs understand when it is explained to them  I see you did a bug report on this, but I see questions, not other bug reports.

  • You know how it is Slight smile.

  • Maybe it is not bug but bad design I could always return false from delegate to inform move to next widget...

    And consequence of bad design is such behaviour when no glance

    - watch face

    - pressing up

    - for the moment system shows widget list than automaticity main view for first widget

    I think one problem here is you are making an incorrect assumption/interpretation of what's happening here.

    "- for the moment system shows widget list than automaticity main view for first widget"

    The incorrect interpretation is that "the main view for first widget" is not the same as (or part of) the widget list. But the design (whether you agree or not) is clearly that the main view for each widget is supposed to be part of the widget list. The reason you see the widget name and icon briefly, followed by the main widget view, is only because CIQ widgets take a long time to load. That's probably part of the reason glances were created in the first place.

    For CIQ widgets, the widget name and icon is just a placeholder for the main widget view, so that you have something to look at while the widget is loading. It's not meant to be a different view/mode altogether.

    To see what I mean, just look at how non-CIQ system widgets behave - each system widget's "main view" is loaded immediately, because they don't have the same limitations as CIQ widgets. Nobody expects a CIQ or non-CIQ widget to immediately respond to UP or DOWN, because as Jim pointed out, how else would the user scroll through the widget list? It's only devs who expect to be able to code widget in the same style as a device app who might have a problem with that.

    Just imagine if it worked differently - the user scrolls from the watch face to a widget by pressing UP - now all of a sudden they're "trapped" in that widget's UI (UP and DOWN scroll the individual widget's UI, not the widget loop), and they can't get out without pressing BACK. That wouldn't make any sense to the user, and it would be unfriendly for users who just wanted to scroll past your widget without interacting with it.

  • It doesn't matter, I've added additional view.

    The problem is always the same... the quality of doc.