When having 2 menuItems enabled, there was no way to get to the second item. At first it seamed to be a bug with the keypad, but since the '*' was working correctly on other screens it didn't make sense.
After reviewing the code, I've noticed that the menuLoop function was resetting the loop in a way that didn't cover well all the possibilities.
Inside the "btnloop" while loop (Line ~1258) you will find that the menuItemNo is iterated with the complete possible menu in mind [0-3] while the resetting condition (Line ~1274) was compared to the menuItemCount which contemplated only active menuItems.
This doesn't comply when you have only LNUrlPOS and LNUrlATM items, since the menuItemCount is 2, but LNUrlATM is 3.
largestMenuItemChecked is a new variable that holds the largest item that is active in the menu.
When loading the items checked we update this variable and then use it to compare with in the condition to reset the menuloop.
Variable is started at 0 so there is no need to add any code for menuItem 0, nor validate anything if this item is deactivated later due to lack of wifi connection.
There is already another pull request that solves the issue with an alternative solution. I'm proposing this one since it might be better aligned with the current design. If the other gets merged I will delete this one.
I appreciate any comments. Awesome project!!