package com.emel.alert;
import java.io.IOException;
import java.util.List;
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.emel.alert.services.EmelService;
import com.emel.exceptions.EmelException;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;
import android.app.Activity;
import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Looper;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class NotifyUserActivity extends MapActivity {
private MapView mMapView;
private List<Overlay> mMapOverlays;
private LocationOverlay mLocationOverlay;
private NotificationManager mNotificationManager;
private long idAlert;
private Button mConfirmAlertButton;
private Button mRefuseAlertButton;
public void sendVotes(boolean vote) {
String requestName = vote ? "/confirm" : "/refuse";
String serverIP = "62.28.240.126:8080/backend";
String getURL = serverIP + requestName + "?id=" + idAlert;
Log.v("Test",getURL);
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(NotifyUserActivity.this, "Vote Submitted", Toast.LENGTH_LONG).show();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.notify);
String loc = getIntent().getStringExtra("location");
mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
//cancel the notification
mNotificationManager.cancel(0);
String longitude = loc.split(";")[0];
String latitude = loc.split(";")[1];
idAlert = Long.parseLong(loc.split(";")[2]);
//start google maps with location passed
mMapView = (MapView) findViewById(R.id.mapview);
mMapView.setBuiltInZoomControls(true);
mMapView.getController().setCenter(new GeoPoint((int)(Double.parseDouble(latitude) * 1E6), (int)(Double.parseDouble(longitude) * 1E6)));
mMapView.getController().setZoom(19);
mMapView.setSatellite(true);
mMapOverlays = mMapView.getOverlays();
showEmelLocationAlert(latitude, longitude);
mConfirmAlertButton = (Button)findViewById(R.id.mapVoteYesButton);
mRefuseAlertButton = (Button)findViewById(R.id.mapVoteNoButton);
mConfirmAlertButton.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
sendVotes(true);
}
});
mRefuseAlertButton.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
sendVotes(false);
}
});
}
private void showEmelLocationAlert(String latitude, String longitude) {
mLocationOverlay = new LocationOverlay(this.getResources().getDrawable(R.drawable.marker_red), this);
GeoPoint spottingPoint = new GeoPoint((int) (Double.parseDouble(latitude) * 1E6) , (int) (Double.parseDouble(longitude) * 1E6));
OverlayItem spottingItem = new OverlayItem(spottingPoint, getString(R.string.emel_spotted), "");
mLocationOverlay.addOverlay(spottingItem);
mMapOverlays.add(mLocationOverlay);
mMapView.getController().setCenter(spottingPoint);
//mMapView.getController().zoomToSpan();
mMapView.invalidate();
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}