Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Confusion about "missing trips" from the "To Label" screen #659

Open
shankari opened this issue Aug 8, 2021 · 4 comments
Open

Confusion about "missing trips" from the "To Label" screen #659

shankari opened this issue Aug 8, 2021 · 4 comments

Comments

@shankari
Copy link
Contributor

shankari commented Aug 8, 2021

Report from a user:

I just found another problem: the return part of the trip at 5:00 below is not showing up.
Update: I found that the return trip does appear in the trip diary and under "all trips" on the labels screen. Sorry for the false alarm. Probably there was just a high enough certainty of the labels that it wasn't shown on the "to label" screen. Unfortunately, all of the inferred labels were incorrect. :(

Reported by other users as well; one of them saw only the "red trips" in the "to label" screen and thought that the auto-labeling was not working; when they saw "all trips" ~ 50% of their trips were auto-labeled.

@GabrielKS, I think this one is yours as well

@GabrielKS
Copy link

GabrielKS commented Aug 9, 2021

Yeah, I have Thoughts on this one.

What I see going on here is that

  1. Existing users have become accustomed to all of their trips appearing in the default Label view because that has been the case up until now
  2. Now that they're only seeing the ones they're expected to label, they think trips are missing
  3. As soon as someone shows them the other two tabs and they see the "missing" trips there, they understand what's going on and no longer perceive a problem

Correspondingly, there are three ways to fix this:

  1. Don't get users accustomed to seeing all of their trips in the default Label view — not possible for existing users, but if my new UI is universally adopted, this will automatically be the case for all new users after this summer
  2. Put all trips in the default view, so the user's learned expectation is not broken
  3. Communicate clearly to every user who has developed this expectation that things have changed, they should no longer expect to see every trip on the default view, and if they want to see every trip there's a way to do that

A principle underlying my design has been "by default, only show the user what they need to be shown." I can't think of a way to implement solution 2 above without breaking this principle and requiring a significant redesign. Moreover, we're hoping to get to a point with our inference algorithms where the user maybe only needs to label one trip every few days, at least in relaxed mode. I think having a screen that displays only those trips that the user needs to interact with is the correct choice, and I think that having that screen be the default screen is also the correct choice, at least in the long term.

So I propose we go with solution 3 for now until we have gotten to every user who has developed the now-problematic assumption, at which point solution 1 will take over.

@shankari
Copy link
Contributor Author

I am definitely not a UX designer, but I wonder if including an in-screen "walkthrough" to show "here's where all the trips are" the first few times would be helpful. We do have ngWalkthrough integrated into the UI.

e.g.
https://github.com/e-mission/e-mission-phone/blob/066dc51dd175fae446e82d7d53717a8ae5d1f7b2/www/js/diary/infinite_scroll_list.js#L536

You have to define steps and change the "DONE" condition
https://github.com/e-mission/e-mission-phone/blob/066dc51dd175fae446e82d7d53717a8ae5d1f7b2/www/js/diary/infinite_scroll_list.js#L550

@shankari
Copy link
Contributor Author

I just double-checked this by clicking on the ? button on the main diary page, and it seems to work.

shankari added a commit to shankari/e-mission-phone that referenced this issue Aug 16, 2021
The auto-load on scroll feature, so common to messaging and chat apps is
actually fairly complicated to implement correctly in the case in which
we display a filtered list. In particular:
- the additional scrolling required to maintain "place" in the list triggers
  multiple "scroll" calls even when the user is not doing anything, which leads
  to multiple calls to the server.
- if new entries are not added to the list after the server call, then the
  condition that triggered the server call (top < threshold) persists, leading
  to multiple calls again.

See e-mission/e-mission-docs#662

This is an inherent limitation of using auto-load on scroll for a
filtered list and also happens with the standard ionic component,
e-mission/e-mission-docs#662 (comment)

So instead of butting my head against the wall getting auto-load to work, I
switched to manual load, similar to the diary screen.
e-mission#769

As a bonus, this also helps with e-mission/e-mission-docs#659
It indicates how many of the trips are displayed in **this filter**, should
help to clarify questions around "missing trips" and allow users to explore
other tabs as necessary.

Testing done:
- loaded data for a user with a single trip
- labeled that trip so the user had no trips
- loaded data for a user with multiple trips

In all cases, used the button to scroll all the way to the oldest trip.
Did not encounter any issues.
@shankari
Copy link
Contributor Author

@GabrielKS after watching my daughter label trips today, I think that part of the reason for this confusion is that people using temporal "linkages" between trips to figure out the label. So she expected to two trips today, one to school and one from school. But she only saw one. So she felt like she had to open up the map to figure out which one it was, while if there had been two, she would have been able to know which one was which just by looking at the ordering.

BTW, are you able to add the walkthrough before the deployment?

GabrielKS pushed a commit to GabrielKS/e-mission-phone that referenced this issue Aug 19, 2021
The auto-load on scroll feature, so common to messaging and chat apps is
actually fairly complicated to implement correctly in the case in which
we display a filtered list. In particular:
- the additional scrolling required to maintain "place" in the list triggers
  multiple "scroll" calls even when the user is not doing anything, which leads
  to multiple calls to the server.
- if new entries are not added to the list after the server call, then the
  condition that triggered the server call (top < threshold) persists, leading
  to multiple calls again.

See e-mission/e-mission-docs#662

This is an inherent limitation of using auto-load on scroll for a
filtered list and also happens with the standard ionic component,
e-mission/e-mission-docs#662 (comment)

So instead of butting my head against the wall getting auto-load to work, I
switched to manual load, similar to the diary screen.
e-mission#769

As a bonus, this also helps with e-mission/e-mission-docs#659
It indicates how many of the trips are displayed in **this filter**, should
help to clarify questions around "missing trips" and allow users to explore
other tabs as necessary.

Testing done:
- loaded data for a user with a single trip
- labeled that trip so the user had no trips
- loaded data for a user with multiple trips

In all cases, used the button to scroll all the way to the oldest trip.
Did not encounter any issues.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants