package com.emel.alert; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; 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 android.app.Activity; import android.content.Context; import android.content.Intent; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.telephony.TelephonyManager; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.Toast; import com.emel.alert.services.EmelService; import com.emel.alert.services.EmelWatchService; import com.emel.exceptions.EmelException; public class EmelAlertClientActivity extends Activity { private Button mParkButton; private Button mEmelSpottedButton; private Button mEmelSpotMapButton; private Button mUnparkButton; private Button mStatisticsButton; private Location gps; private LocationManager mManager; private String android_id; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); File dir = getFilesDir(); File file = new File(dir, "myParkedCarFlag"); boolean deleted = file.delete(); final TelephonyManager tm = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPHONY_SERVICE); android_id = "" + android.provider.Settings.Secure.getString(getContentResolver(), android.provider.Settings.Secure.ANDROID_ID); mParkButton = (Button)findViewById(R.id.parkButton); mEmelSpottedButton = (Button)findViewById(R.id.spotButton); mEmelSpotMapButton = (Button) findViewById(R.id.spotMapButton); mUnparkButton = (Button)findViewById(R.id.unparkButton); mStatisticsButton = (Button) findViewById(R.id.statisticsButton); mManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); gps = new Location(LocationManager.GPS_PROVIDER); mParkButton.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { //Toast.makeText(EmelAlertClientActivity.this, "hello", Toast.LENGTH_LONG).show(); ConnectivityManager connectivityManager = (ConnectivityManager) EmelAlertClientActivity.this.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); if(activeNetworkInfo == null){ Toast.makeText(EmelAlertClientActivity.this, "No network connection", Toast.LENGTH_LONG).show(); return; } LocationListener mListener = new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) {} @Override public void onProviderEnabled(String provider) {} @Override public void onProviderDisabled(String provider) {} @Override public void onLocationChanged(Location location) { gps = location; } }; gps.setLatitude(0); gps.setLongitude(0); mManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mListener); //String toSend = gps.getLatitude() + "&" + gps.getLongitude(); Intent intent = new Intent(EmelAlertClientActivity.this, EmelService.class); intent.putExtra("latitude", "38.769078"); //switch to gps.getLongitude intent.putExtra("longitude", "-9.092563"); intent.putExtra("id", android_id); //Toast.makeText(EmelAlertClientActivity.this, "started service", Toast.LENGTH_LONG).show(); startService(intent); } }); mEmelSpottedButton.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { ConnectivityManager connectivityManager = (ConnectivityManager) EmelAlertClientActivity.this.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); if(activeNetworkInfo == null){ Toast.makeText(EmelAlertClientActivity.this, "No network connection", Toast.LENGTH_LONG).show(); return; } LocationListener mListener = new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) {} @Override public void onProviderEnabled(String provider) {} @Override public void onProviderDisabled(String provider) {} @Override public void onLocationChanged(Location location) { gps = location; } }; gps.setLatitude(0); gps.setLongitude(0); mManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mListener); String toSend = "&long=" + -9.092563 + "&lat=" + 38.769078; 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(EmelAlertClientActivity.this, "Thank you for your participation", Toast.LENGTH_LONG).show(); Log.v("Spotting server response: ", response); } }); mUnparkButton.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { String requestName = "/cancel?"; String serverIP = "62.28.240.126:8080/backend"; String getURL = serverIP + requestName + "id="+ android_id; 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(); } EmelWatchService.thread.interrupt(); Toast.makeText(EmelAlertClientActivity.this, "Car unparked", Toast.LENGTH_LONG).show(); File dir = getFilesDir(); File file = new File(dir, "myParkedCarFlag"); file.delete(); Log.v("Unpark server response: ", response); } }); mEmelSpotMapButton.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { gps.setLatitude(0); gps.setLongitude(0); LocationListener mListener = new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) {} @Override public void onProviderEnabled(String provider) {} @Override public void onProviderDisabled(String provider) {} @Override public void onLocationChanged(Location location) { gps = location; } }; mManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mListener); //start mapview activity Intent intent = new Intent(EmelAlertClientActivity.this, SpotMapActivity.class); intent.putExtra("id", android_id); intent.putExtra("latitude", 38.769078);//mudat para gps.getLatitude() intent.putExtra("longitude", -9.092563); startActivity(intent); } }); mStatisticsButton.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { String requestName = "/userRank"; String serverIP = "62.28.240.126:8080/backend"; String getURL = serverIP + requestName; 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(EmelAlertClientActivity.this, "Statistics received", Toast.LENGTH_LONG).show(); //show statistics to user Log.v("Statistics server response: ", response); Intent intent = new Intent(EmelAlertClientActivity.this, StatisticsActivity.class); intent.putExtra("stats", response); startActivity(intent); } }); } }