/** * @param includeArrivalDepartureInStatusLabel true if the arrival/departure label should be * included in the status label false if it should not */ public ArrivalInfo(ObaArrivalInfo info, long now, boolean includeArrivalDepartureInStatusLabel) { mInfo = info; // First, all times have to have to be converted to 'minutes' final long nowMins = now / ms_in_mins; long scheduled, predicted; // If this is the first stop in the sequence, show the departure time. if (info.getStopSequence() != 0) { scheduled = info.getScheduledArrivalTime(); predicted = info.getPredictedArrivalTime(); mIsArrival = true; } else { // Show departure time scheduled = info.getScheduledDepartureTime(); predicted = info.getPredictedDepartureTime(); mIsArrival = false; } final long scheduledMins = scheduled / ms_in_mins; final long predictedMins = predicted / ms_in_mins; if (predicted != 0) { mPredicted = true; mEta = predictedMins - nowMins; mDisplayTime = predicted; } else { mPredicted = false; mEta = scheduledMins - nowMins; mDisplayTime = scheduled; } mColor = computeColor(scheduledMins, predictedMins); mStatusText = computeStatusLabel( info, now, predicted, scheduledMins, predictedMins, includeArrivalDepartureInStatusLabel); mLongDescription = computeLongDescription(); }