Changes to icon menu / search screen

Developers
sk750
2012-04-23
2013-05-29
  • sk750
    sk750
    2012-04-23

    Hi jkpj,

    currently I don't have much time for GpsMid but I gave yesterday evening a short try of the current GpsMid on my Nokia 5800. Seems there are issues with your latest changes on S60, e.g. the icon menu shows in the LOWER part of the screen some parts of the map, even if the split screen feature is turned off.

    Hope you can reproduce this on one of the mobiles you have access to because I do not have time to dive into this. Guess it's related to setFullScreenMode somehow which triggers a sizeChanged message and the implementations of if and when the sizeChanged message after setFullScreenMode occur are different from each J2ME implementation.

    Best regards
    sk750

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-04-23

    Hmm - looking at the changes, looks like it might be the type of changes sampled below in IconMenuWithPagesGui.java - thinking of it, using Trace width and height should be conditional on split-screen being used. Didn't show up with microemulator tests when I used fullscreen map and fullscreen icon menu - but when map is not full screen, map size is different from icon menu size and I see that this could cause problems.

                       of buttons and status bar)
                    */
    -               if (getWidth() > getHeight() && numRows > numCols
    +               if (Trace.getInstance().getWidth() > Trace.getInstance().getHeight() && numRows > numCols

     
  • sk750
    sk750
    2012-04-23

    Both map and icon menu were set to be full-screen in my test.

     
  • sk750
    sk750
    2012-04-23

    Things have improved with latest git, at least full screen mode settings work.
    Issues I've noticed on Nokia 5800:

    - Custom alerts are not centered in the half screen.
    - Probably keyboard locking should also lock the icon menu in split screen
    - In landscape mode it would be better to have map and icon menu next to each other rather than on top of each other
    - Touching the way name bar  when icon menu is open, should probably be ignored or toggle the split screen

    Anyway - nice feature…

     
  • sk750
    sk750
    2012-04-23

    Another issue is a crash when selecting ok in Setup/Display in split mode on MicroEmulator:

    java.lang.NullPointerException at de.ueller.midlet.iconmenu.LayoutElement.calcPosition(LayoutElement.ja va:247) at de.ueller.midlet.iconmenu.LayoutElement.calcSizeAndPosition(LayoutEle ment.java:160) at de.ueller.midlet.iconmenu.LayoutElement.loadImage(LayoutElement.java: 359) at de.ueller.midlet.iconmenu.IconMenuPage.loadIcons(IconMenuPage.java:12 4) at de.ueller.midlet.iconmenu.IconMenuWithPagesGui.setActiveTab(IconMenuW ithPagesGui.java:298) at de.ueller.midlet.iconmenu.IconMenuWithPagesGui.recreateTabButtons(Ico nMenuWithPagesGui.java:208) at de.ueller.midlet.iconmenu.IconMenuWithPagesGui.paint(IconMenuWithPage sGui.java:567) at de.ueller.gpsmid.ui.TraceIconMenu.paint(TraceIconMenu.java:269) at de.ueller.gpsmid.ui.Trace.paint(Trace.java:2394)

     
  • sk750
    sk750
    2012-04-23

    Another issue is a crash when selecting ok in Setup/Display in split mode on MicroEmulator:

    java.lang.NullPointerException at de.ueller.midlet.iconmenu.LayoutElement.calcPosition(LayoutElement.ja va:247) at de.ueller.midlet.iconmenu.LayoutElement.calcSizeAndPosition(LayoutEle ment.java:160) at de.ueller.midlet.iconmenu.LayoutElement.loadImage(LayoutElement.java: 359) at de.ueller.midlet.iconmenu.IconMenuPage.loadIcons(IconMenuPage.java:12 4) at de.ueller.midlet.iconmenu.IconMenuWithPagesGui.setActiveTab(IconMenuW ithPagesGui.java:298) at de.ueller.midlet.iconmenu.IconMenuWithPagesGui.recreateTabButtons(Ico nMenuWithPagesGui.java:208) at de.ueller.midlet.iconmenu.IconMenuWithPagesGui.paint(IconMenuWithPage sGui.java:567) at de.ueller.gpsmid.ui.TraceIconMenu.paint(TraceIconMenu.java:269) at de.ueller.gpsmid.ui.Trace.paint(Trace.java:2394)

     
  • sk750
    sk750
    2012-04-23

    Another issue is a crash when selecting ok in Setup/Display in split mode on MicroEmulator:

    java.lang.NullPointerException at de.ueller.midlet.iconmenu.LayoutElement.calcPosition(LayoutElement.ja va:247) at de.ueller.midlet.iconmenu.LayoutElement.calcSizeAndPosition(LayoutEle ment.java:160) at de.ueller.midlet.iconmenu.LayoutElement.loadImage(LayoutElement.java: 359) at de.ueller.midlet.iconmenu.IconMenuPage.loadIcons(IconMenuPage.java:12 4) at de.ueller.midlet.iconmenu.IconMenuWithPagesGui.setActiveTab(IconMenuW ithPagesGui.java:298) at de.ueller.midlet.iconmenu.IconMenuWithPagesGui.recreateTabButtons(Ico nMenuWithPagesGui.java:208) at de.ueller.midlet.iconmenu.IconMenuWithPagesGui.paint(IconMenuWithPage sGui.java:567) at de.ueller.gpsmid.ui.TraceIconMenu.paint(TraceIconMenu.java:269) at de.ueller.gpsmid.ui.Trace.paint(Trace.java:2394)

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-04-23

    Some fixes are now in.

    However there are still issues with resizing/full screen with split-screen mode off, can be repeated on the microemulator. Also icon menus with more than 12 entries behave erratically on resize, jumping back and forth between three rows / three columns and often ending up in the wrong mode.

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-04-23

    I think I've now covered all your reports except this:

    - In landscape mode it would be better to have map and icon menu next to each other rather than on top of each other

    Originally I was thinking of doing it like this, but now I'm thinking: as we now already have a (hard-coded) window manager which directs pointer events to the appropriate windows and handles closing & opening of windows and drawing to different windows on thescreen, it'd be better to add a UI for the window manager let the user to arrange the layout.

    Instead of fixed two windows (or three if we count the virtual keyboard), I think I sometimes want to have more.  Maybe as much as six  on the screen at the same time:

    * map
    * search result list (e.g. to list nearest interest POIs)
    * CMS
    * predefined waypoint buttons
    * favorite routing targets
    * virtual keyboard icon which expands the keyboard when pressed (I expect just a few lines of the search result list would usually be necessary, so it doesn't make sense to keep showing of the keyboard tied to showing the search result list; also, with semi-transparency, the virtual keyboard could be on top of the map)

    Track & waypoint handling would also benefit from being able to be used at the time map & virtual keyboard are visible.

    Would probably make better & less error-prone & more easily maintainable code to generalize the window manager code instead of having the current special casing of main icon menu, setup and search, plus the special-cased window handling inside each of GuiSearch, GuiDiscover, GuiDiscoverIconMenu and Trace. And a generalized version would probably make maintenance easier, useful in case someone wants to later add e.g. showing of photos related to waypoints, or make map features / map filtering interface work while showing the map, or make setup work inside a window. Or add something like a road camera view to show a live camera feed when panning the map.

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-04-24

    Split-screen mode would also be useful on keyboard-only phones; that'll require adding of support of passing keyboard events to other windows, and a UI function for switching focus between windows.

     
  • sk750
    sk750
    2012-04-24

    Don't think it's realistic to have 6 windows with current forms,
    J2ME/Android forms probably do not support this.

    Found other bugs in split screen mode:
    - In Setup on the Basic tab there are no labels below the icons
    - Pressing Cancel in Setup / Display returns icon menu to full screen
    - Entering "en" as language code in Setup / Display, confirming with Ok works but going to Setup/Display and confirming with Ok again causes an exception (probably not related to split screen mode)

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-04-24

    Not one of the six examples I gave was a form; I'm not sure if forms can be made to work with windows on J2ME or Android, and wasn't counting on them working. Could perhaps be possible to make them work on Android using some J2MEPolish internals, not sure if it makes sense to go there however.

    There are also some issues with Android back key and split-screen mode, and some in GuiSearch I think. Might be fixing all bugs will happen only after a more generic solution than the current code.

     
  • sk750
    sk750
    2012-04-24

    Ok, I see they are no forms - I've been mislead by the search result list with its menu entries but actually you cover this with the virtual keyboard. For the generic solution I'd prefer different presets for portrait and for landscape orientation of the display.

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-04-24

    Yes, I agree "factory settings" of splitting one way in portrait mode and the other way in landscape mode is the way to go.

    "- In Setup on the Basic tab there are no labels below the icons"

    This is a mystery - for me, sometimes it's the basic settings, sometimes the advanced settins. Started to show up around the time I added the back callback handler to GuiDiscover.

    "- Pressing Cancel in Setup / Display returns icon menu to full screen"

    This might stay for the setup entries as it is until there's a more generic window code base - things works even this way (split menu returns after the setup menu is exited and menu re-entered), and to fix this I think would require more and more special casing.

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-04-24

    "- Entering "en" as language code in Setup / Display, confirming with Ok works but going to Setup/Display and confirming with Ok again causes an exception (probably not related to split screen mode)"

    Couldn't repeat this, but got various other errors with display settings with split-screen menu so I suspect this was connected to split-screen mode. Is perhaps fixed now.

     
  • sk750
    sk750
    2012-04-25

    The exception is:
    Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException:
    2
            at de.ueller.gpsmid.ui.GuiDiscover.returnFromDisplayOptions(GuiDiscover.
    java:1315)
            at de.ueller.gpsmid.ui.GuiDiscover.commandAction(GuiDiscover.java:937)

    Language related the .properties file contains:
    useSoundFilesWithSyntax=sound-de, sound
    lang=de

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-04-25

    Thanks, fixed.

     
  • sk750
    sk750
    2012-04-27

    Hello jkpj,

    seems I do not understand the concept of split screen mode completely:

    When I start GpsMid the map is shown in fullscreen mode and unsplit. As soon as I go to Menu or Search the map screen is split. Now e.g. in the Search screen I select a favorite and press Cursor/Display on the virtual keyboard. The favorite is shown but the split screen stays open.

    Is there anything I can do to see the full map again?

    The most intuitive touch button to use for ending split screen would be IMHO the way bar which currently has no functionality when the screen is split.

    sk750

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-04-27

    "Is there anything I can do to see the full map again? The most intuitive touch button to use for ending split screen would be IMHO the way bar which currently has no functionality when the screen is split. "

    Just press the back icon to go back to the full map.

    I was thinking of if anything should be tied to the way bar (in split-screen mode), but thought that users may press the way bar out of habit even when the menu is visible in split-screen mode, causing the menu to disappear, the opposite of what they intended.

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-04-27

    BTW I think "cursor" is not a good name for the virtual keypad switching function, describing the technical type of virtual keyboard. Should be something like "select" or "choose", describing the function achieved by pressing the button.

     
  • sk750
    sk750
    2012-04-27

    > Just press the back icon to go back to the full map.

    But there's no back icon in the Search screen ;)

    So do I have to press Cursor -> Exit Search -> Back Icon to return to the map?

    > I was thinking of if anything should be tied to the way bar (in split-screen mode), but thought that users may press the way bar out of habit even when the menu is visible in split-screen mode, causing the menu to disappear, the opposite of what they intended.

    Anyway I think this would have been faster and more intuitive to get the full screen again.

     
  • sk750
    sk750
    2012-04-27

    > Should be something like "select" or "choose", describing the function achieved by pressing the button.

    I think "action" might be a good name.

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-04-27

    True about the search screen - now also the icon menu bar / way bar exits split-screen mode.