package com.ushahidi.android.app.checkin;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.location.LocationProvider;
import android.os.Bundle;
import com.ushahidi.android.app.util.Util;
/**
* Created by IntelliJ IDEA. User: Ahmed Date: 2/10/11 Time: 4:17 PM To change
* this template use File | Settings | File Templates.
*/
public class LocationServices {
public static boolean locationSet = false;
public static Location location;
public static CheckinActivity checkin_activity;
public static void dismissActionDialog() {
checkin_activity.dismissCheckinProgressDialog();
}
public static void getLocation(CheckinActivity activity) {
checkin_activity = activity;
LocationServices.locationSet = false;
final LocationManager locationManager = (LocationManager)activity
.getSystemService(Context.LOCATION_SERVICE);
LocationProvider low = locationManager.getProvider(locationManager.getBestProvider(
Util.createCoarseCriteria(), true));
// get high accuracy provider
LocationProvider high = locationManager.getProvider(locationManager.getBestProvider(
Util.createFineCriteria(), true));
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
LocationServices.location = location;
if (LocationServices.location != null) {
LocationServices.locationSet = true;
}
((LocationManager)checkin_activity.getSystemService(Context.LOCATION_SERVICE))
.removeUpdates(this);
dismissActionDialog();
}
public void onProviderDisabled(String provider) {
LocationServices.location = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (LocationServices.location != null) {
LocationServices.locationSet = true;
}
((LocationManager)checkin_activity.getSystemService(Context.LOCATION_SERVICE))
.removeUpdates(this);
dismissActionDialog();
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
};
locationManager.requestLocationUpdates(low.getName(), 1000L, 500.0f, locationListener);
locationManager.requestLocationUpdates(high.getName(), 1000L, 500.0f, locationListener);
}
}