package com.emel.alert;
import java.io.IOException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.Projection;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Toast;
public class SpotMapActivity extends MapActivity {
private MapView map;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.spotmap);
map = (MapView)findViewById(R.id.mapview);
map.setBuiltInZoomControls(true);
map.getController().setZoom(19);
map.setSatellite(true);
map.getController().setCenter(new GeoPoint((int) (getIntent().getDoubleExtra("latitude",0) * 1E6), (int) (getIntent().getDoubleExtra("longitude",0) * 1E6)));
map.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.v("Test","TOUCHED THE MAP!");
int x = (int)event.getX();
int y = (int)event.getY();
getProj(x,y);
return false;
}
});
}
protected void getProj(int x, int y) {
Projection projection = map.getProjection();
GeoPoint point = projection.fromPixels(x, y);
double latitude = (double)point.getLatitudeE6() / 1E6;
double longitude = (double)point.getLongitudeE6() / 1E6;
String android_id = getIntent().getStringExtra("id");
String toSend = "&long=" + longitude + "&lat=" + latitude;
String requestName = "/report?";
String serverIP = "62.28.240.126:8080/backend";
String getURL = serverIP + requestName + "id="+ android_id + toSend;//URLEncoder.encode(new String(encoded));
HttpGet request = new HttpGet("http://" + getURL);
HttpClient client = new DefaultHttpClient();
ResponseHandler<String> handler = new BasicResponseHandler();
String response = "";
Log.v("Test","Waiting for server answer...");
try {
response = client.execute(request, handler);
} catch (IOException e) {
e.printStackTrace();
}
Toast.makeText(SpotMapActivity.this, "Thank you for your participation", Toast.LENGTH_LONG).show();
Log.v("Spotting server response: ", response);
Intent intent = new Intent(SpotMapActivity.this, EmelAlertClientActivity.class);
startActivity(intent);
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}