public void makeUseLocation(Location location) { if (location != null) { this.atual = new Coordenada(location.getLatitude(), location.getLongitude()); for (LocationObserver observer : observers) { observer.mudouLocalizacaoPara(atual); } } else { AlertDialog.Builder dialog = new AlertDialog.Builder(context); dialog.setTitle("Ocorreu um erro :("); dialog.setMessage("Infelizmente não foi possível obter sua localização."); dialog.setCancelable(true); dialog.setPositiveButton( "Quero habilitar o GPS", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent gpsIntent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); context.startActivity(gpsIntent); } }); dialog.setNegativeButton( "Agora não", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO ? } }); dialog.show(); } }
public void registerObserver(LocationObserver observer) { if (atual != null) { observer.mudouLocalizacaoPara(atual); } this.observers.add(observer); }