Acknowledged
CIQQA-3915

ActionMenu not closing after selection on touch-based watches (simulator)

I observed the following issue in the simulator on touch-based watches:

  • When using an ActionMenu

  • and selecting an option in the ActionMenu, the delegate's onSelect() is called, but the action menu is not closed.

  • Selecting the same option again does not trigger onSelect() anymore.

  • When pressing the back button, the delegate's onBack() is not called. Instead, the app crashes with a Null Reference Error.

The ActionMenu is opened from the onSelect() handler of a CustomMenuItem, i.e. the user selects the menu item in a CustomMenu, which then opens the ActionMenu.

This occurred on all touch-based watches I tested: Vivoactive 6, Venu 2 Square, Venu 4, and Venu X1. I do not have a physical device, so I cannot tell whether this also happens on real devices or if it is a simulator issue.

Here is the source code used to reproduce the issue:

https://github.com/openhab/openhab-garmin/releases/tag/Issue-%23296

/source/main/user-interface/features/sitemap/shared/CommandMenuHandler.mc opens the ActionMenu.

/source/main/user-interface/features/sitemap/shared/CommandActionMenuDelegate.mc implements the input delegate.

Note that onBack() is currently commented out, since I normally do not need it. I only added it temporarily while debugging this issue.

Parents
  • You try doing a popView at the end of your onSelect code?

    I tried this and it does close the action menu, but it also pops the underlying view from which the action menu was opened.

    What actually works is calling switchToView with the underlying view. This closes the action menu and returns to the underlying view.

    I have reached out to a user who has a Venu 2 to check whether the issue also occurs on a real device. If it does, I will implement switching back to the underlying view as a workaround.

Comment
  • You try doing a popView at the end of your onSelect code?

    I tried this and it does close the action menu, but it also pops the underlying view from which the action menu was opened.

    What actually works is calling switchToView with the underlying view. This closes the action menu and returns to the underlying view.

    I have reached out to a user who has a Venu 2 to check whether the issue also occurs on a real device. If it does, I will implement switching back to the underlying view as a workaround.

Children
No Data