package com.mendhak.gpslogger.loggers;
import org.json.JSONException;
import org.json.JSONObject;
import android.location.Location;
import android.util.Log;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;
public class ServerLogger implements ILogger {
private final String url = "http://sw4.us/ufc/";
private String id;
private final String TAG = "ServerLogger";
public ServerLogger(String id) {
this.id = id;
}
public void write(Location loc) throws Exception {
// TODO Auto-generated method stub
String preparedUrl = prepareURL(this.id, loc.getLatitude(), loc.getLongitude());
AsyncHttpClient httpClient = new AsyncHttpClient();
RequestParams p = new RequestParams();
p.put("q", "1");
p.put("id", id);
p.put("lat", Double.toString(loc.getLatitude()) );
p.put("long", Double.toString(loc.getLongitude()) );
try{
Log.d(TAG,"Logging to "+url+p.toString());
httpClient.get(url,p,new AsyncHttpResponseHandler() {
@Override
public void onSuccess(String response) {
try {
JSONObject resp = new JSONObject(response);
int code = resp.getJSONObject("meta").getInt("code");
if(code==200){
Log.d(TAG,"Sucess logging to "+url +" "+code);
}
else{
Log.d(TAG,"Failure logging to "+url +" "+code);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
Log.d(TAG,"Error parsing JSON: "+url);
}
}
@Override
public void onFailure(Throwable e, String response) {
Log.d(TAG,"Failure logging to "+url +" "+response);
}
});
}
catch(Exception e){
Log.e(TAG, "Could not log to "+preparedUrl,e);
}
}
public void annotate(String description, Location loc) throws Exception {
// TODO Auto-generated method stub
}
public void annotate(String name, String description, Location loc)
throws Exception {
// TODO Auto-generated method stub
}
public String getName() {
// TODO Auto-generated method stub
return "Server";
}
private String prepareURL(String id, double lat, double lon) {
return url + "q=1&" + "id=" + id + "&lat=" + lat + "&long=" + lon;
}
}