Closed remulasce closed 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
If there end up being 0 arrivals (which NexTrip is fine with telling you), you change it to 'no predicted arrivals to
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.
@nighelles should comment, as this would involve changes to java_core, and also require a new display type on iOS.
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.
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.
It's done and shipped.
1 day + 1 night dev time, 1 day qa. It actually went extremely closely to plan.
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: