aesculus / EVTO-App-Feedback

A project to track bugs and ideas for the EVTO App
MIT License
1 stars 0 forks source link

Function of charger picker in New Trip, Add Waypoint #512

Closed EVGrokker closed 6 years ago

EVGrokker commented 6 years ago

The current behavior of the charger picker is overloaded. Or schizophrenic.

First, a description of the current behavior.

When inputting the Origin for a New Trip, the value selected in the charger picker has no effect on the current trip, as EVTO assumes that the car is fully charged upon departure from the Origin. I believe, but I’m not certain, that if you specify a charger, then favorite it, that charger will be associated with that location, and would be referenced if that location were used as a Waypoint in a another trip. But I digress.

When inputting the Destination for a New Trip, or specifying a Waypoint, the function of the charger picker varies upon when it’s invoked.

If you select a Tesla supercharger or Destination charger before entering an address, the picker functions as a filter upon the search results.

If you select any type of charger after entering an address, the picker functions as a means of specifying the type of charger available at the location, which would affect charging time if the stop is used as a charging stop.

So far, I think that overload is awkward, but manageable.

There’s an opportunity to make it slightly less awkward and a bit more intuitive.

In the scenario where the user makes a selection before typing anything into the address field, the picker is functioning as a filter. Since there are only two valid filter values, Superchargers and Destination chargers, it would make sense to limit the picker values to those two choices.

In the scenario where the user makes a selection after typing into the address field, the picker is functioning to provide additional info about the Destination/Waypoint’s charging characteristics. In this case, it makes sense for the picker to be populated as it currently is.

aesculus commented 6 years ago

So far, I think that overload is awkward, but manageable.

Yes. This is the way it works. If you want to use it as a Tesla charger locator, you have to select the either Supercharger or one of the HPWC first. If you just start typing a location it will use place names and ignore the charger setting. If you later choose a charger of any type, it just sets the charger type and has no effect on the location.

In the scenario where the user makes a selection before typing anything into the address field, the picker is functioning as a filter. Since there are only two valid filter values, Superchargers and Destination chargers, it would make sense to limit the picker values to those two choices.

So if they start typing a location after selecting either supercharger or hpwc, then remove all the other choices from the picker? And if they clear the location reset the picker to the full list?

In the scenario where the user makes a selection after typing into the address field, the picker is functioning to provide additional info about the Destination/Waypoint’s charging characteristics. In this case, it makes sense for the picker to be populated as it currently is.

So no change in the current picker?

EVGrokker commented 6 years ago

When the user first opens the New Trip or Add Waypoint dialog, before doing anything, the initial entry (title) of the picker would be 'Filter Search', and the contents of charger picker would be:

(See mockup below). Let's call this the 'filter function'.

Upon shifting the focus to the Origin field, as soon as a character has been entered (assuming that no filter has been applied), the charger picker initial entry (title) would be 'No Charger', and the contents of the charger picker would be the existing list of 18 charger types. The user could select a charger type before or after picking the matching Origin entry from the displayed list of matching addresses. This is the current behavior.

Let's call this the 'type selection function'.

The same behavior would apply to the Destination field. As soon as the first character has been entered, the charger picker would switch from filter functionality to type selection.

For both Origin and Destination, if the user clears the field by touching the 'x', or backspacing, the charger picker would revert to filter functionality until they entered a new initial character.

The behavior would be the same for the Destination field in the Add Waypoint dialog.


chargerpicker copy

aesculus commented 6 years ago

I think I can make this work but one comment:

Only the destination has the charger filter function, not the origin. So no matter what the charger filter setting is when typing in the origin, you only get place names and addresses.

EVGrokker commented 6 years ago

That makes sense. When the focus is in the Origin field, the behavior would be the same as it is currently.

aesculus commented 6 years ago

Please run both the New Trip and Add Waypoint through it's paces on the web version and let me know how it works for you.

Also test Edit Waypoint both for origins where there is no charger and an waypoint that was a supercharger that was required too.

aesculus commented 6 years ago

The help will need to be updated too for both Add Waypoint and New Trip

EVGrokker commented 6 years ago

1.2.0 (84) (Web version) New Trip:

If you're taking the approach of inserting the two Tesla charger options at the top of the list as filters, rather than replacing the contents of the list with only the two charger types, it would make sense to label them differently, perhaps 'Superchargers only' and 'Destination chargers only', to distinguish them from the other choices.

Here's a New Trip that exhibits an odd behavior:

Add Waypoint:

aesculus commented 6 years ago

Who would have guessed that iOS acts differently than Google devices. :-)

I will get back to you once I get this straightened out.

aesculus commented 6 years ago

OK. We are ready for test 2 on all of the above for iOS.

EVGrokker commented 6 years ago

v 1.2.0 (84) web version

New Trip:

After touching Save, the route won't calculate, so I can't test the Add Waypoint. (The trip I was planning was from Seattle WA to Port Townsend WA.)

aesculus commented 6 years ago

Can you try it now? There is still some weirdness if you set the values and then come back wrt what is shown in the charger selector. It will clear the setting which it should not. I need a bit more time to work on that.

aesculus commented 6 years ago

I think I fixed it. The charger selector only involves the destination so it does not matter what it says when you type into the origin, it will only deal with addresses and places. So I removed any change based on what happens in the origin field.

EVGrokker commented 6 years ago

I think the filtering may be working correctly, however the optimizer is hanging up at about 20%, so I can't really test it thoroughly. (New Trip: Seattle WA - Port Townsend WA, Auto).

There's a case to be made for the Origin allowing the same charger filtering as a destination. Suppose that I want to plan a trip originating at a Supercharger or Destination charger? Those are both plausible scenarios, and having the behavior function identically for both Origin and Destination fields makes the help simpler.

Once optimization is working properly, I can test Add Waypoint.

aesculus commented 6 years ago

What origin and destination causes the hang

EVGrokker commented 6 years ago

(New Trip: Seattle WA - Port Townsend WA, Auto).

aesculus commented 6 years ago

For me it stalls for about 10 seconds on 20% and then takes off. Remember this is on the test server so it can be slow.

I will double check why it appears to be stalling for so long but it does take off for me.

aesculus commented 6 years ago

iOS is not auto calculating the Add Waypoint though. Checking on that now

aesculus commented 6 years ago

Well I did some debugging and could not find an error. It worked fine. Now it is working for me. Perhaps Safari had cached something? Give it a try yourself and see if it works.

I added Cranberry winery as a waypoint via the destination charger routine.

aesculus commented 6 years ago

There's a case to be made for the Origin allowing the same charger filtering as a destination. Suppose that I want to plan a trip originating at a Supercharger or Destination charger? Those are both plausible scenarios, and having the behavior function identically for both Origin and Destination fields makes the help simpler.

But not a good case. This is all very complex and tricky. Using the charger filter for multiple input fields is almost impossible and not worth it for the few times it might come into play.

So for now you cannot start at a charger spot unless you first copy the address from the destination picker, and this also means that the origin will not have a charger by default either. And the app does not know how to deal with chargers at origins unless it is at a continuation (a former destination).

EVGrokker commented 6 years ago

I tried the Seattle - Port Townsend Auto route just now in the web version of (84), and after five minutes it's still hung at 20%. I tried the same route in iOS beta (83) and it calculates without any hesitation, so I'll presume it's that particular routing problem is an anomaly that will be resolved once the next beta is released.

I tried another route, Seattle WA - Bend Supercharger, and that hangs in the same way.

aesculus commented 6 years ago

Something weird I think going on with the web version. I will compile this am for you and let's see if that's OK.

aesculus commented 6 years ago

I sent just you V1.2 (84). Note it stalls out at about 60% now but should resume in about 10 seconds. I need to determine why it's doing that.

aesculus commented 6 years ago

Rats. The destination charger is not working on the compiled version either so hold off on testing.

aesculus commented 6 years ago

Oh drat. Nevermind the destination error. You cannot test the destination chargers on the compiled version because it links to the production chargers which have no destination chargers. :-(

I just manually added your friend the Cranberry Winery to the production chargers. So that is the only destination charger you can try.

Please give this a trip via V1.2 (84).

EVGrokker commented 6 years ago

v 1.2.0 (84)

The dialog seems to be behaving as described in the New Trip dialog.

However, I urge you to reconsider your decision about how the Origin field behaves with respect to the Charger Filter. In the current version (84), you can select a charger filter, but it's ignored when returning results. This looks like a bug to a user.

There's no downside to allowing the user to filter both the Origin and Destination equally, and it will save you from defending the design decision when someone reports it as a bug. If the user doesn't want to filter Origin results by charger, they simply won't use the filter. And if they do want to calculate a trip originating at a location which happens to be a supercharger or destination charger, they can do so.

EVGrokker commented 6 years ago

v 1.2.0 (84)

The dialog does not seem to be behaving correctly in the Add Waypoint dialog.

I created a trip from Seattle WA - Burlington Supercharger. Next, Add Waypoint at the Fairfield Inn in Burlington, WA. After selecting the matching result from the list, the charger picker still displays 'Charger Filter', instead of 'No Charger'.

aesculus commented 6 years ago

The problem is context: The picker is overloaded with two functions - as filter and as a state/chooser for what is selected as the charger.

Sure I could play tricks by knowing where you last had focus as a filter, but then what do I do about state? As you moved about I would not know what state to show (this is what made me turn it off for origin).

In the current version (84), you can select a charger filter, but it's ignored when returning results. This looks like a bug to a user.

Sort of. I can fix that by labeling it the Destination Charger Filter.

The dialog does not seem to be behaving correctly in the Add Waypoint dialog.

Fixed in V1.2 (85)

EVGrokker commented 6 years ago

The problem is context: The picker is overloaded with two functions - as filter and as a state/chooser for what is selected as the charger. Sure I could play tricks by knowing where you last had focus as a filter, but then what do I do about state? As you moved about I would not know what state to show (this is what made me turn it off for origin).

I thought I had worked through the state scenarios early on in the discussion, but let me give it another try.

Terminology:

Let's assume a clean slate, in other words, the user has just opened the New Trip dialog.

Upon shifting focus to either the Origin or Destination field, the charger picker shows 'Charger Filter'. At this point, as long as nothing's been entered into the field with focus, the user can opt to change the Charger Filter to one of the available options, or leave it alone, for unfiltered results.

As soon as they type the first character, the list of matching results overlays the charger picker, which is useful to remove the option to change the selection until they've confirmed a choice from the popup list. Once they've confirmed a choice, the charger picker is now showing a list of all possible charger choices to assign to the chosen address.

I don't see the state issues being a problem. If the selected field (Origin/Destination) has the focus, and is empty, the picker is populated with the filter choices. If the selected field has the focus, and is populated (after the user's selected a matching address), the picker is populated with the charger assignment choices. You only have to track state from the time they enter the field until they select a matching address.

Let's say that both Origin and Destination are populated with validated addresses, and the user touches in one of the fields. If they edit the field, the matching list of addresses is displayed, obscuring the charger picker until they confirm their selection.

Let's say that both fields are populated, and the user clears/resets one of the fields. In that case, the charger picker reverts to the filter mode until a character is typed, which once again obscures the picker, which will be in assignment mode when they've selected a matching address.

There's another condition to consider - suppose that neither Origin or Destination has the focus. What should the charger picker display? If both fields are empty, I'd say the picker should be in filter mode. If either field is (or both are) populated, I'd propose that the picker is in assignment mode. Of course, once the user enters an empty field, the picker reverts to filter mode until they've started typing.

As mentioned multiple times in this thread, this discussion exists because of the functional overload of the picker. There are some redesign approaches that could resolve the overload. For example, you could choose to only allow charger assignments in the Edit Waypoint dialog.

I think the overload will work, but feel that applying consistent behavior between Origin and Destination solves more problems than it creates.

aesculus commented 6 years ago

What do you show in the charger picker after both addresses are loaded? There is only one picker to show state. Which one would it be? That is confusing if it can show two.

Keep in mind that the location selector also only has one address too. There is only one list item. Truthfully I should probably remove that once a selection has been made as it's context is the last selection made and is redundant to what's in the location field.

aesculus commented 6 years ago

BTW knowing that the origin has a charger does nothing for the app. It never fits into any calculation. It assumes you start with the energy you have in Settings and if you need to change that, you do that in the Edit Segment dialog.

So we are debating a feature that can never get used.

EVGrokker commented 6 years ago

If either or both fields are populated, the picker is in assignment mode.

The only time it would be in filter mode:

BTW knowing that the origin has a charger does nothing for the app. It never fits into any calculation. It assumes you start with the energy you have in Settings and if you need to change that, you do that in the Edit Segment dialog. So we are debating a feature that can never get used.

The filter feature can be useful when selecting a trip's origin. For example, the Burlington WA supercharger is literally in the parking lot of the Fairfield Inn. User plans to charge up at that SC before departing. Or I'm staying overnight at a Destination charger.

It's an additional way to specify a valid Origin that offers an additional tool to the user.

aesculus commented 6 years ago

The filter feature can be useful when selecting a trip's origin. For example, the Burlington WA supercharger is literally in the parking lot of the Fairfield Inn. User plans to charge up at that SC before departing. Or I'm staying overnight at a Destination charger.

Each of those scenarios is covered already in the MST next segment.

The origin thing only applies to the start of a trip. The start of a segment would be the destination of the prior segment. So we are only talking about trips that the user would probably start from home, hence no charger is required.

Sure there will be some that want to plan each segment as a separate trip but ...

I really think having the charger picker bounce back and forth is more confusing than the little value you get from being able to choose an origin from a charger list when it will rarely get used.

BTW many of the Tesla superchargers can be entered without the sc picker by first prepending tesla to the location name. Sure you don't get the fact that it's a charging origin, but again the app does not use this. And the same applies to many destination charger locations. This is why my first test failed. I thought I was picking up a destination charger at Kirkwood but it was Google places finding the exact same location.