1] My app implements onSwipe[] , BUT it returns false for right and left swipe. Still, I could not find a way to dismiss a menu on the Vivoactive 3 simulator [which I can do with the back key for the other devices].
Am I missing something or did I find a bug?
My code is basically:
var aMenu = new Ui.Menu[]; aMenu.addItem["aMenuItem", :menuItem]; Ui.pushView[aMenu, new aMenuDelegate[], Ui.SLIDE_IMMEDIATE];
I do not think my "menu delegate" really plays a role here, especially when the same code works for all other devices. But, ok, maybe it's just a simulator issue.
Now... something more important:
2] "Hold on" the screen is now Menu? Right swipe is now Back? Then you shouldn't say that apps for Approach S60 and Vivoactive 3 are easily and automatically portable.
I have apps for which onHold and onMenu [or onKey, then key == KEY_MENU] had completely different implementations. Same for swipe right and key == KEY_BACK.
If I can't use onHold and onMenu as separate behaviours for the Vivoactive 3 [or any other touchscreen device], a lot has to be changed. And if this is the case, Garmin shouldn't consider the Approach S60 and the Vivoactive 3 as fully compatible devices. I ported my apps for the Approach and they were automatically made available for the Vivoactive 3, but now I'm afraid they'd just "malfunction" on the Vivoactive 3 [I do not have it to test - yet].
I don't utilize any custom swipe event functionality so I don't have any suggestions on how to over come your other swipe issues. I do, however, feel your pain on the input change similarly with respect to the fact that a long press on the up button now goes to the built in watch settings page.
Maybe it'd require major changes on the firmware [and I really hope that it's technically possible], but I think it'd be a great idea to have a long press on the ENTER/ACTION key to behave as onMenu/KEY_MENU [and onHold as onHold].
The new device has only one physical button, while the predecessors had two or three, which had different long press and short press behaviors [talking about the VAHR and Approach S60]. Even though it's a touchscreen device and there are some possible workarounds, the lost of three input possibilities is a big thing, especially when the new input mapping messes up with the existing ones.
Making generic apps [e.g. one which would work for the VAHR and for the VA3] seems to be a challenge now. What is the expected behavior of my app with onHold?? Can't I have it together with onMenu as before?? Without annotations or anything more "complex'?
Here's how things are supposed to work. I think there are bugs in the sim. (long press on the va3 doesn't generate onMenu() for example, and right swipe should dismiss the menu)
I'm just going by the blog post for now. Based on what it says, my apps should be fine. I avoid things like onHold, onKeyPress, onKeyRelease, as I'm not quite sure what happens with them on a given device. And I only use BehaviorDelate.
(side note: r.485, the bad url you told me about in the guest post has been fixed! Thanks again!)
...(long press on the va3 doesn't generate onMenu() for example, and right swipe should dismiss the menu) ...
It does in my case! But I cannot close the menu, because of the left-to-right-swipe issue/wrong implementation :) You cannot use onHold and onMenu at the same time, I guess.
Probably the "issue" is a deceptive blog post, aka, wrong implementation :rolleyes:
I tracked down why I wasn't seeing the long press in a watch app. Turns out I was looking for KEY_MENU in it. If I switch to onMenu(), it works fine. So it was my bug! :(
- onHold and right swipe can't be used on the Vivoactive 3. The respective gestures trigger onMenu and onBack. - onKey events with KEY_MENU and KEY_ESC will not be triggered in these cases.
If my implementation for the Approach S60 was:
[HTML]function onKey[evt] { if [ evt.getKey[] == KEY_MENU ] { // open a menu } else if [ evt.getKey[] == KEY_ESC ] { // do whatever } }[/HTML]
then my auto-migrated app won't work.
But ok, not a big problem, I can refactor the code.
However, when I read
... Turns out I was looking for KEY_MENU in it. If I switch to onMenu, it works fine. So it was my bug! :(
I get the feeling that I'm not the only dev that uses the onKey strategy instead of onBack, onMenu, etc.
So, would it be possible to let onKey with KEY_MENU and KEY_ESC to be triggered by onHold and right swipe on the Vivoactive 3?
I am going to hold off on the Vivoactive 3 .. as well my app exits (menu maybe) on a right swipe that I can tell in the simulator. Thus .. not working and I have no code anywhere to have it do so. But I see a ton of apps already for the device and I bet that there are going to be issues as they were surely mostly all auto migrated. I am going to buy a Vivoactive 3 when it comes out here in 2024. Until then .. not going to take the leap as it is just too risky as the Vivoactive 3 seems different than other devices, either that or the simulator is just having a bad day.
Stay positive! Until the watch is released, we will receive several new SDK's and/or get another tutorial, how to workaround it :) I'll get mine maybe not as soon as possible. I'd like to read some reviews, first :rolleyes:
I do not care about the Connect IQ stuff .. I just want the device. It will probably be 2 months after the US gets them that we will get them in Canada where I live. I have little to no interest in developing for the Vivoactive 3 due to it being a round device.
As a slight update to some of the questions here. There is a bug in the sim that is causing the menu behavior to behave inaccurately. I've already reproduced the bug and reported it internally.