If you think the Android project Go2-Rennes listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
/*******************************************************************************
* Copyright (c) 2011 Michel DAVID mimah35-at-gmail.com
* /*fromwww.java2s.com*/
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
******************************************************************************/package fr.gotorennes.remote;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.json.JSONException;
import org.json.JSONObject;
import android.content.Context;
import android.util.Log;
import fr.gotorennes.domain.NextMetroDeparture;
publicclass NextMetroDepartureService extends RemoteService<NextMetroDeparture> {
publicstaticfinal String COMMAND = "getmetronextdepartures";
publicstaticfinal String NODE = "station";
privatestatic DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssz");
privatestatic NextMetroDepartureService instance;
private NextMetroDepartureService(Context context) {
super();
}
protected String getVersion() {
return"2.2";
}
publicstaticsynchronized NextMetroDepartureService getInstance(Context context) {
if (instance == null) {
instance = new NextMetroDepartureService(context);
}
return instance;
}
public NextMetroDeparture getNextDeparture(String stationId) {
Map<String, String> parameters = new HashMap<String, String>();
parameters.put("mode", "station");
parameters.put("station", stationId);
return loadObject(COMMAND, NODE, parameters);
}
@Override
protected NextMetroDeparture populate(JSONObject jsonObject) throws JSONException {
Log.d("GoToRennes", jsonObject.toString());
NextMetroDeparture nextDeparture = new NextMetroDeparture();
nextDeparture.nextForwardDeparture = getNextDate(jsonObject, 1);
nextDeparture.nextBackwardDeparture = getNextDate(jsonObject, 2);
nextDeparture.remoteDate = new Date();
return nextDeparture;
}
protected Date getNextDate(JSONObject station, int platform) {
String departure1 = station.optString("nextTrain1Platform" + platform);
String departure2 = station.optString("nextTrain2Platform" + platform);
if (departure1 != null && !departure1.equals("")) {
try {
Date departureDate = dateFormat.parse(departure1);
if (departureDate.before(new Date()) && departure2 != null && !departure2.equals("")) {
departureDate = dateFormat.parse(departure2);
if (departureDate.before(new Date())) {
departureDate = null;
}
}
return departureDate;
}
catch (Exception ex) {
Log.e("GoToRennes", "Invalid date format : " + departure1 + " or " + departure2);
}
}
return null;
}
}