Proposal to swap tap actions on the mapscreen

sk750
2012-06-10
2013-05-29
1 2 > >> (Page 1 of 2)
  • sk750
    sk750
    2012-06-10

    Since the travel mode is/can now be shown on the map screen I've often wished that single tapping the distance would start route calculation without asking for route options and long tap on distance would do what currently single tapping the distance does: asking for route options before route calculation.

    Any objections to change GpsMid's ui like this?

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-06-11

    Single tapping will start route calc without asking after you set the appropriate setting. I mostly use this, but on occasion I want GpsMid to ask for route settings. I think it's useful for the user to be able to change the single tap behaviour, so I object to changing the function of short tap on distance so that it wouldn't honor the setting.

    For long tap, I agree with you that it would make more sense to have long tap ask for options rather than have it not ask for options as it currently does.

    Another choice to consider: make long tap a toggle for selecting whether the short tap will ask for options or not. I think I'd prefer the latter - it wouldn't be a 180 degree turn from the old functionality, and at least for me it seems that when I want GpsMid to ask for settings, I tend to want that several times in a row.

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-06-11

    "Another choice to consider: make long tap a toggle for selecting whether the short tap will ask for options or not. I think I'd prefer the latter"

    To clarify: I meant I prefer having long tap be a toggle for switching the setting, over long tap being a route button which always asks for settings. But still in my opinion a long tap for routing with asking for options would be an improvement from current mode, so I won't object to that change either.

     
  • sk750
    sk750
    2012-08-03

    In my local repository I've now changed long tap the distance to always ask for route options and turned off asking for route options in Setup.

    Now I'm missing a quick way to recalculate the route which previously was long tapping the distance. Single tapping the distance doesn't do the same as long pressing the distance before because single tapping toggles routing.

     
  • sk750
    sk750
    2012-08-03

    Here's the patch as I don't think I'll push this to git for now.

    diff --git a/src/de/ueller/gpsmid/ui/Trace.java b/src/de/ueller/gpsmid/ui/Trace.java
    index 1f3dc75..a3a2a44 100644
    --- a/src/de/ueller/gpsmid/ui/Trace.java
    +++ b/src/de/ueller/gpsmid/ui/Trace.java
    @@ -201,8 +201,9 @@
        protected static final int TOUCH_HELP_CMD = 69;
        protected static final int CMS_CMD = 70;
        protected static final int TOGGLE_UNUSEABLEWAYS_DARKER = 71;
    +   protected static final int ROUTING_START_WITH_MODE_SELECT_ALWAYS_CMD = 72;
    
    -   private final Command [] CMDS = new Command[72];
    +   private final Command [] CMDS = new Command[73];
    
        public static final int DATASCREEN_NONE = 0;
        public static final int DATASCREEN_TACHO = 1;
    @@ -596,6 +597,7 @@
            CMDS[TOUCH_HELP_CMD] = new Command(Locale.get("trace.touchhelp")/*Touchscreen functions*/,Command.ITEM,100);
            CMDS[CMS_CMD] = new Command(Locale.get("trace.Tacho")/*Tacho*/, Command.ITEM, 100);
            CMDS[TOGGLE_UNUSEABLEWAYS_DARKER] = new Command(Locale.get("trace.ToggleUnuseableWaysDarker")/*Toggle unuseable ways darker */, Command.ITEM, 100);
    +       CMDS[ROUTING_START_WITH_MODE_SELECT_ALWAYS_CMD] = new Command(Locale.get("trace.CalculateRoute2")/*Calculate route...*/,Command.ITEM, 100);
    
            addAllCommands();
    
    @@ -1680,12 +1682,20 @@
                    if (Configuration.getCfgBitSavedState(Configuration.CFGBIT_DONT_ASK_FOR_ROUTING_OPTIONS)) {
                        commandAction(ROUTING_START_CMD);
                    } else {
    -                   GuiRoute guiRoute = new GuiRoute(this, false);
    -                   guiRoute.show();
    +                   commandAction(ROUTING_START_WITH_MODE_SELECT_ALWAYS_CMD);
                    }
                    return;
                }
    -           
    +
    +           if (c == CMDS[ROUTING_START_WITH_MODE_SELECT_ALWAYS_CMD]) {
    +               gpsRecenter = true;
    +               gpsRecenterInvalid = true;
    +               gpsRecenterStale = true;
    +               GuiRoute guiRoute = new GuiRoute(this, false);
    +               guiRoute.show();
    +               return;
    +           }
    +
                if (c == CMDS[ROUTING_START_CMD]) {
                    if (!routeCalc || RouteLineProducer.isRunning()) { // if not in route calc or already producing the route line
                        // if the route line is currently being produced stop it  
    diff --git a/src/de/ueller/gpsmid/ui/TraceLayout.java b/src/de/ueller/gpsmid/ui/TraceLayout.java
    index 14cf8f5..0158814 100644
    --- a/src/de/ueller/gpsmid/ui/TraceLayout.java
    +++ b/src/de/ueller/gpsmid/ui/TraceLayout.java
    @@ -249,7 +249,7 @@
            e.setBackgroundColor(Legend.COLORS[Legend.COLOR_RI_DISTANCE_BACKGROUND]);
            e.setColor(Legend.COLORS[Legend.COLOR_RI_DISTANCE_TEXT]);
            e.setVRelative(ele[ROUTE_INSTRUCTION]);
    -       e.setActionID(Trace.ROUTING_TOGGLE_CMD + (Trace.ROUTING_START_CMD << 16) );
    +       e.setActionID(Trace.ROUTING_TOGGLE_CMD + (Trace.ROUTING_START_WITH_MODE_SELECT_ALWAYS_CMD << 16) );
    
            e = ele[SPEED_CURRENT]; addElement(e,
                    LayoutElement.FLAG_HALIGN_LEFT | LayoutElement.FLAG_VALIGN_ABOVE_RELATIVE |
    
     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-08-07

    I assume you've tested your patch for time now, and seems simple enough to not have a big risk of bugs. I think your patch with the double-tap distance for recalc would be an improvement suitable for 0.8. Are there reasons not to put this in for 0.8? If not, I can push it to git with the double-tap change.

     
  • sk750
    sk750
    2012-08-07

    Yes. but in my experience double tap doesn't work very reliably, frequently the single tap action is triggered instead.

    Usually I do the following to do a route calc:

    - Press _ to get to GuiSearch
    - Tap a favorite
    - Tap "Choose" from virtual keyboard
    - Tap "Dest"
    - If necessary change travel mode on map screen
    - Long tap distance to calc the route

    Would be great if this could be shortened with
    e.g. car, bike and foot directly on new keys
    in virtual keyboard.

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-08-07

    Well, then we should fix the double tap issues. One reason for double tap failure might be that the threshold is quite low. Another might be that when finger is down, a drag action detected for a few pixels away will invalidate double tap - I'll try code to reset pointerDraggedMuch if pointer is moved back to original touch place.

    Currently we have:

    //#if polish.android
    // FIXME should be set based on something like pixels per inch value
    private final static int DRAGGEDMUCH_THRESHOLD = 24;
    //#else
    private final static int DRAGGEDMUCH_THRESHOLD = 8;
    //#endif

    Perhaps instead threshold should be screen measures divided by something.

     
  • sk750
    sk750
    2012-08-07

    > I assume you've tested your patch for time now, and seems simple enough to not have a big risk of bugs

    No I did remove the patch from my code again and did not test it anymore. And I guess especially while driving double tapping will be too hard to perform. Let's postpone some improvement here for after the release.

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-08-14

    I did some work on this, but requires more.

     
  • sk750
    sk750
    2012-08-14

    Yes, double tapping now also cancels routing but still calculates the route. Had issues to cancel the route.

    Starting to become really concerned about getting a release out without new issues introduced in the last week before the release :-/

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-08-14

    OK, thanks, I'll try stopping first then starting - it did work in the test with the other way around, too :-)  Though there was a Routing == null message, the route was shown, but perhaps the message will go away now.

    In my experience, two-finger tap is easier to perform than long tap.

    Anyway, when doing that commit, I was under the impression that we agreed on having long tap do a route (re)calculation with always asking for options. Also recall you said on Open discussion you missed the option for route recalc without asking for option, and I said double tap is free for that. But might be I remember wrong, haven't checked.

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-08-14

    "Usually I do the following to do a route calc: - Press _ to get to GuiSearch - Tap a favorite - Tap "Choose" from virtual keyboard - Tap "Dest" - If necessary change travel mode on map screen - Long tap distance to calc the route Would be great if this could be shortened with e.g. car, bike and foot directly on new keys in virtual keyboard."

    Sounds quite complicated. I also find simple routing needlessly complicated, needing improvement. There's a touch function for routing directly from the search list, but if even you don't use it, that's probably not a very good UI (I forget what it was, maybe slide). I use choose & route to from the virtual keyboard. Then if route mode needs changing, tap(s) on travel mode, then two taps on distance to destination. (Now seems to work with double tap, should work also with two-finger tap).

    If you often need to select travel mode, the ask for route settings is there.

    One option would be to have long tap on travel mode to do a route recalc with the new travel mode.

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-08-14

    "Since the travel mode is/can now be shown on the map screen I've often wished that single tapping the distance would start route calculation without asking for route options and long tap on distance would do what currently single tapping the distance does: asking for route options before route calculation."

    This is now done. Clarifcation: single tapping the distance will look at user-specified flag whether to ask for routing options or not.

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-08-14

    "Now I'm missing a quick way to recalculate the route which previously was long tapping the distance."

    This is now double tap / two-finger tap.

     
  • sk750
    sk750
    2012-08-14

    >> Now I'm missing a quick way to recalculate the route which previously was long tapping the distance."

    > This is now double tap / two-finger tap.

    IMHO it should be like this:
    Single tap while no route line there: calc route without asking options
    Single tap while route line there: recalc route
    Double tap while route line there: stop routing
    Maybe: Double tap while no route line there: clear destination
    Long tap: calc route with asking options

    Hard to keep up with your GpsMid development speed when not having holidays … :-/

     
  • sk750
    sk750
    2012-08-14

    But should also take care to break nothing for keyboard commands. One more reason I would have postponed this to after the release :-/

     
  • sk750
    sk750
    2012-08-14

    >>"Now I'm missing a quick way to recalculate the route which previously was long tapping the distance."

    Clarification: The reason I missed this was that single tapping turned off routing first, so you had to tap twice on the distance.

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-08-14

    According to the wiki page, double tap a search result will select for routing / destination, and Slide horizontally at least one char height to the right: route to entry. But have to say I find these gestures difficult, and most often just use the virtual keyboard.

    Where would we put the travel mode selection on the virtual keyboard? Growing the keyboard might not be so good especially for small-screen devices. Would we add long tap / double tap for the virtual keyboad?

    If we add the automatic route recalc (stoppable by user action) after travel mode change, route recalc for current travel mode will be easier.

     
  • sk750
    sk750
    2012-08-14

    > If we add the automatic route recalc (stoppable by user action) after travel mode change, route recalc for current travel mode will be easier.

    With my proposal above "route (re)calc" would simply happen by single tapping distance.

    > Where would we put the travel mode selection on the virtual keyboard?

    Might be easier to have long tap on 3 to calc the route with current travel mode.
    User can select current travel mode first on map screen.

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-08-14

    "Single tap while route line there: recalc route
    Double tap while route line there: stop routing"

    On first thought, I don't like this - I find the current toggle behaviour natural. But that's probably habit for a big part, and from UI design perspective your proposal sounds good. Function varying based on route line existence however is perhaps not so good from all perspectives.

    One relatively big problem though: if double tap / two-finger tap doesn't work well, it will be very annoying and possibly dangerous to try to silence routing instructions e.g. for a phone call or when talking to others. But actually we probably should have a separate mute function anyway, e.g. single tap on map will bring up a mute icon, tapping which will silence GpsMid and bring up a mute indicator somewhere.

    "Maybe: Double tap while no route line there: clear destination"

    _If_ we go with changing the function based on route line existence, I like this one.

     
  • Jyrki Kuoppala
    Jyrki Kuoppala
    2012-08-14

    "With my proposal above "route (re)calc" would simply happen by single tapping distance."

    Yes, but still easier to have route recalc happen automatically without single tapping the distance after travel mode change.

     
1 2 > >> (Page 1 of 2)