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

WIP - Issue #155 - UI re-design #177

Closed
wants to merge 634 commits into from

Conversation

barbeau
Copy link
Member

@barbeau barbeau commented Sep 19, 2014

Please don't merge - this is a work-in-progress pull request so others can keep track of progress and provide feedback on the UI re-design (#155), including Maps API v2 implementation (#56) and StopInfo project (#103).

I'm updating this top comment with progress as we go.

To try out the UI re-design, please register as an alpha tester!

Known issues:

TODO:

Feedback is appreciated! Screenshots are below.

image

@caitbonnar APK to install and test StopInfo is linked above in this PR.

@barbeau
Copy link
Member Author

barbeau commented Oct 1, 2014

Some good news - I was able to port OBA from ActionBarSherlock to the official Android ActionBarCompat support library, and it seems 2.3 support is still intact, although I currently don't have a 2.3 device handy to test with. I've uploaded a new APK (linked in the original post above), so if you have a 2.3 device and want to test it out, please let me know of the results.

I've also knocked a few of the items off the above list - I'll continue to update it above based on the latest status of this PR and linked APK as I make more progress.

@barbeau
Copy link
Member Author

barbeau commented Oct 3, 2014

@caitbonnar Have you had a chance to check out the StopInfo button in Puget Sound? Any feedback on this, and general usability of voice-over elements, would be great.

@caitbonnar
Copy link

@barbeau I haven't had the chance yet -- it's been more difficult than expected to track down an Android device I can use to test, but I found someone to bring one in for me this coming Monday. I also e-mailed a blind Android OBA user for some feedback, and will be talking to him more in depth about general usability issues. As far as I know they are mainly labeling issues.

Sorry for the delay! I should have the feedback for you by the late afternoon on Monday -- is that too long to wait?

@barbeau
Copy link
Member Author

barbeau commented Oct 3, 2014

@caitbonnar No, Monday's fine! It's just easier to fix issues the sooner I know about them, so while I'm working on specific blocks of code I can be sure to improve them as far as accessibility goes. I'm hoping to have the tabs in place soon as well, which I imagine will be a big improvement for accessibility.

@caitbonnar
Copy link

@barbeau Good to know. Thanks for working on this! It will be a big help to the BLV Android users. :-)

@paulcwatts
Copy link
Member

I finally have a chance to look at this branch! Overall it looks pretty great, it's so modern :)

What is the navigation drawer supposed to be used for? I can't find a reference to it in the comps.

One concern: it seems odd to change the overflow menu based on whether or not the stop is selected on the map. I understand this is a combination of the menu on the map and the menu on the (formerly) arrivals screen, but it's very confusing because the context is no longer on the stop, it's not the map. I think moving that information to a separate menu that is accessed from the context of the stop is better.

The "Show On Map" menu item isn't even necessary, since aren't you already seeing it on the map?
Also, I think the "Filter Routes" item will be confusing when you add the nearby routes. It won't be clear that "Filter Routes" applies to the stop, not the map.

@barbeau
Copy link
Member Author

barbeau commented Oct 6, 2014

@paulcwatts Thanks! :)

I completely agree re: the Action Bar overflow menu issues - I actually haven't touched that yet, its still on the TODO list. The current contents are just a side-effect of moving the ArrivalsListFragment to the sliding panel on the map view without changing anything related to menus. I'll have to do some more thinking about how to split these out so they make sense. I've kept support for the ArrivalsListActivity & ArrivalsListFragment (this is still what you see when you start OBA from a shortcut), so one option is to allow the user to dive into this view and make things like route filter accessible from there.

Here's the mockup for the navigation drawer:

oba android ui mockup-on menu key

It will hold some of the global menu options in a format close to Google apps (e.g., Maps, Play, Docs, Drive, Sheets). I originally thought that I would add view-specific menu options to the top of the navigation drawer, but I'm not sure how well that will work in practice (as you say, some of these items like "route filter" would be confusing when displayed there).

I plan to frame out the tabs and then nail down all these menu options. Additional feedback/suggestions is definitely welcome.

@caitbonnar
Copy link

Hi @barbeau, finally got a chance to play around with the APK on a Nexus 7 tablet. It looks great!

I went over it myself with TalkBack and then had a blind user who is familiar with OBA iOS and is fairly tech savvy go over it as well. She worked on StopInfo with me as well. Anyway, here is our feedback re: StopInfo integration & accessibility feedback:

Visual:

  • Could you shift the StopInfo button a bit to the right? Screen reader users often move their finger around the screen to locate elements, and it's difficult to select it on its own right now without selecting the stop title. (This is really the only thing related to StopInfo!)

TalkBack/Accessibility feedback:

  • There are a few issues with the drawer in the map view:
    • Tapping on the drawer for the first time starts reading the routes, not the stop name/direction. Stop name should be read first, then the direction, then the routes.
    • Raising/lowering the drawer is confusing. You have to figure out that once it starts reading the routes that you have to double tap to get it to raise/lower, and then there is no indication that it has actually done so. When she was swiping through the elements using TalkBack, it read the elements behind the drawer (the "my location button") and a few stops, so she thought it had lowered when it hadn't, and had difficulty selecting things. Labels/hints on the header would be helpful -- "Drawer raised -- double tap to lower" or something like that.
    • Lastly, this might be our unfamiliarity with Android showing, but the "Bus options" menu was difficult because finding the back button was at the bottom of the screen which took awhile to navigate to if she accidentally opened the options window. Having a tab that allows you to exit the window without going back would be nice.
  • Hovering over/tapping on the OneBusAway name in the upper left should also say something about the current view that they are on -- for example, can set the accessibility label for the main screen to "OneBusAway - Home" (or map, whatever you think is apt to call it). This aids a lot with navigability.
  • From your navigation mockup above, I'm not sure if you were going to put a bookmarks link there as well. Accessing that from anywhere in the app would be great (unless there already is a way, we just didn't find it).
  • The way it reads arrival times in the table is confusing without contextual information (i.e. seeing the column headers). On OneBusAway we changed this to read more logically as, "Route toward Destination. X minute(s) until arrival/departure at Predicted time - Status." (iOS code & phrasing here)
  • Really strange, but TalkBack pronounces OneBusAway as "Oh-nay Buse Away" -- pretty hilarious, but I think it should be fixed if possible. Not sure how you'd go about doing that with TalkBack rather than setting the accessibility label to have spaces in between the word whenever it encounters the string without the spaces.
  • Capitalize directions (i.e. "NE" instead of "Ne"), since it currently sounds like the Knights Who Say Ni! :)

Accessibility enhancements:

  • Allowing to search by address is really useful for blind users, who can't navigate the map. (I've also heard it requested by sighted Android OBA users.) Also, kudos on the integrated search and stop list by route! We need to do that in iOS. :)
  • Showing a list of the stops along with the predicted arrival time for the bus you're currently viewing (i.e. under "Show route information" in "Bus Options") would be really useful accessibility-wise as well (might have brought this up in another thread, I can't remember). For stops that aren't announced over the audio system on the bus, this is helpful for letting the rider know when roughly they should expect to be off the bus. My friend reports using it all the time for that on iOS.
  • One more thing forward to me by a blind Android OBA user is that the saved routes list would delete the bottom-most stop when it got to be pretty full. Because this is the main way that blind users access their stops, it is useful to allow for many entries there. I'm not sure of the exact number he had.

Okay, that seems to be about everything we've found. Not all are needed by release of course, but things to note going forward. I tried to list the issues by priority under each subheading, so you have a sense of what is best to start working on.

Thanks for paying attention to this in the UI re-design -- I know how tough it is to balance so many constraints! I know it looks like a lot of stuff, but overall we thought it was navigable and things weren't too difficult to figure out even given our lack of Android experience.

Let me know if you have any questions or need me to test anything else! (I should have access to the tablet for a couple more days, but can probably ask to use it again if need be.)

@barbeau
Copy link
Member Author

barbeau commented Oct 7, 2014

@caitbonnar Awesome, thanks for the feedback! I'll go through this in detail and may have more questions at that time (but, you already get a 200 point bonus for a relevant reference to Monty Python :)).

barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this pull request Oct 7, 2014
@barbeau
Copy link
Member Author

barbeau commented Oct 7, 2014

@caitbonnar re: shifting the StopInfo button - I just bumped it a bit more to the right, and updated the linked APK above and this PR with the commit. Could you please check it out and let me know if this is enough space? If not, no worries, its easy to increase (or decrease).

Here's a visual reference for the new placement:
stopinfo-newheaderwithspace

@caitbonnar
Copy link

@barbeau Maybe another 5px over to the right, if you can? (See below.) Also, does the placement of the button change with the length of the stop name, or is it static? Thanks a bunch!

infoplacement

barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this pull request Oct 7, 2014
@barbeau
Copy link
Member Author

barbeau commented Oct 7, 2014

No problem - done! Placement will change with length of stop name. It will get pushed to the right until it hits the vertical separator, and at that point the text will be truncated and end with "...". Here's an example of both, with the new padding:

stopinfo-newheaderwithspace2

stopinfo-newheaderwithspace2-truncated

It would be good if you could test with one of the long truncated stop names to ensure there is enough space there as well.

@caitbonnar
Copy link

@barbeau Yes, it is much better, even with the longer stop name. Thanks!

@barbeau
Copy link
Member Author

barbeau commented Oct 9, 2014

As a general FYI for posterity sake - I'm using Android Assett Studio and clip art there to generate new icons.

@barbeau
Copy link
Member Author

barbeau commented Oct 9, 2014

@caitbonnar re: pronunciation of OneBusAway (which I found funny as well - "Its French") - apparently you can't influence the pronunciation of the app name from the developer perspective (see this SO issue, which a Google employee commented on). However, via another contact I was able to get a bug filed internally at Google with the accessibility team to fix the pronunciation of "OneBusAway" in general in the TalkBack TTS engine. So, hopefully we should see that fixed at some point in the future (no ETA known).

@caitbonnar
Copy link

@barbeau All right, good to know! Hopefully they can get it fixed, haha.

@bbodenmiller
Copy link
Contributor

In regards to button location, wouldn't BLV users prefer for the button to be in a fixed location?

@caitbonnar
Copy link

@bbodenmiller Yes, generally. I asked a few people about this after it came out for iPhone.

To them, if it is only shifting by a couple cm, it doesn't make much difference. They also generally tend select the containing element (i.e. the header of the stop details box) and swipe through the elements after that. In that case, it doesn't make a difference on horizontal placement (since there's nothing in between the stop name text and the button) or how much space is in between. But I will make sure.

barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this pull request Nov 12, 2014
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this pull request Nov 12, 2014
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this pull request Nov 14, 2014
barbeau added a commit to CUTR-at-USF/onebusaway-android that referenced this pull request Nov 14, 2014
barbeau and others added 23 commits October 27, 2015 18:23
IMHO this better reflects the real-time nature of the view
…st vehicle location update time

* Add lastLocationUpdateTime to TripStatus objects used to deserialize OBA REST API response
* Add tests for the timestamps and status.getLastKnownLocation()
* Hide the alert icon when in stop edit mode
* Re-initialize visibility when changing stop focus to avoid blinking and temporary view of white icon
* and show the header when showing the MapFragment
…s stop code

* Also includes routes and stop direction
* This could potentially be replaced by the Stop Info page for regions that provide Stop Info, if Stop Info adds the stop code, routes, and direction info.  See OneBusAway#103 (comment).
…ng star for single stop

* Only add exclusion when unstarring if star all stops is in effect
* Also keeps the past behavior of immediately dismissing the popup and allowing the other views to handle touch events
* As suggested in OneBusAway#155 (comment)
Fix OneBusAway#327 successfully star route for all stops after removing star for a single stop
…und to layout-v11 folder"

This reverts commit 99e00d9.
* This includes hiding the ability to sort routes on Gingerbread, so Style B can't be accessed.
* Identified by Lint in Android Studio via "Menu -> Analyze -> Run Inspection by Name -> Unused resources"
* Many drawables are left over from v1.x and holo theme
* Strings are leftover from initial implementations of features that were pulled or re-designed, or left over from v1
@barbeau
Copy link
Member Author

barbeau commented Nov 10, 2015

Alright everyone, we're closing in fast on a v2.0 release with the new UI. So, I'm going to bring this long, winding WIP PR to a close :).

A few things from the original mockup/concept didn't make the v2.0 cut, so I've pulled some of the items out into their own issues for future work/release, including:

Thanks to everyone for their time and feedback!! I really appreciate it, and I think it improved the UI overhaul tremendously. If I missed anything or you have more feedback, please feel free to comment here, on one of the remaining issues, or open a new issue.

All UI redesign work is currently in the develop branch, so I'll be merging this into the master branch in the very near future. There are some conflicts resulting from some intermediate/hotfix releases, so I won't be merging this PR directly via Github. I'll merge manually instead. However, this PR will contain all the commits for the UI redesign, if anyone wants to revisit it at some point.

Closed via work in develop branch, to be merged into master shortly.

@barbeau barbeau closed this Nov 10, 2015
@paulcwatts
Copy link
Member

Congrats! This is a huge leap forward!

@barbeau
Copy link
Member Author

barbeau commented Nov 10, 2015

@paulcwatts Thanks! And thanks to all your work over the years that made this app possible. It was quality work - there are still huge chunks of Paul-code in v2.0 of the app :).

@caitbonnar
Copy link

Wonderful! Congrats and job well done!

On Tuesday, November 10, 2015, Sean Barbeau notifications@github.com
wrote:

@paulcwatts https://github.com/paulcwatts Thanks! And thanks to all
your work over the years that made this app possible. It was quality work -
there are still huge chunks of Paul-code in v2.0 of the app :).


Reply to this email directly or view it on GitHub
#177 (comment)
.

@barbeau barbeau deleted the issue155-UIredesign branch May 2, 2016 16:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants