package nz.co.android.cowseye.service;
import java.io.IOException;
import java.util.List;
import nz.co.android.cowseye.activity.RecordLocationActivity;
import android.location.Address;
import android.location.Geocoder;
import android.os.AsyncTask;
import android.util.Log;
public class GeoCodeCoordinatesService extends AsyncTask<Void, Void, Address> {
private RecordLocationActivity locationActivity;
private Geocoder geocoder;
private String address;
public GeoCodeCoordinatesService(RecordLocationActivity locationActivity, Geocoder geocoder, String address){
this.locationActivity = locationActivity;
this.geocoder = geocoder;
this.address = address;
}
protected Address doInBackground(Void... Void) {
try{
List<Address> addresses = geocoder.getFromLocationName(address,1);
if (addresses == null) {
Log.e(toString(), "No lat,long found from addr :"+address);
return null;
}
Address location = addresses.get(0);
location.getLatitude();
location.getLongitude();
return location;
} catch (IOException e) {
Log.e(toString(), "Geocoding error: "+e);
}
return null;
}
/** Does not do anything as nothing needs to be done upon ending*/
protected void onPostExecute(Address location) {
if(location==null)
locationActivity.errorGeoCodeAddress();
// else
// locationActivity.buildLocationDataIntent(locationActivity.RESULT_OK);//, location);
}
}