remulasce / metroapp

Realtime arrival notification utility for LA Metro
2 stars 0 forks source link

Show detailed network/trip status per service request. #201

Closed remulasce closed 9 years ago

remulasce commented 9 years ago

Currently the app doesn't give much feedback about what it's doing in the background.

The feedback states are:

That means it's impossible to distinguish between some common app states:

remulasce commented 9 years ago

I'm thinking, instead of the TripPopulator trying to figure out when to raise a spinner, have each ServiceRequest make a Trip that shows its status.

So instead of waiting for the network to return to make its ArrivalTrips, the Request would immediately make a plain-text "Getting Arrivals to " Trip, which it would take down once it got the actual arrivals.

If there end up being 0 arrivals (which NexTrip is fine with telling you), you change it to 'no predicted arrivals to stop'.

This would address the 'update in progress vs 0 arrivals' distinction and also explicitly relay information about new servicerequests.

We technically can display what destinations are available from nextrip data, but I think the presentation of that data would be too challenging to deal with right now.

remulasce commented 9 years ago

@nighelles should comment, as this would involve changes to java_core, and also require a new display type on iOS.

remulasce commented 9 years ago

Planned new states:

I'm thinking make one StatusTrip per ServiceRequest. The StatusTrip has an enum for which of the 3 new states it's in

If real arrivals come in, then the status trip is removed and the real trips are put up Otherwise the platform specific code should be able to change the trip's display between each of the 3 states.

remulasce commented 9 years ago

Progress:

PredictionManager and LaMetroUtil have better defined failure states StopRouteDestinationPrediction know knows whether it's fetching, good, or error occured. I know this because I wrote actual unit tests to make sure.

Started work on StopServiceRequest figuring out what loading/error status trip to show based on its Predictions.

To deal with each Request having multiple Stops/Predictions, decided if any Prediction is fetching, we should show the spinner. Only if all Predictions get an error should we display error.

remulasce commented 9 years ago

It's done and shipped.

1 day + 1 night dev time, 1 day qa. It actually went extremely closely to plan.