public void setLocation(Location location) {
    if (projectSite == null) return;
    this.location = location;
    txtLat.setText("" + location.getLatitude());
    txtLng.setText("" + location.getLongitude());
    txtAccuracy.setText("" + location.getAccuracy());

    if (location.getAccuracy() == seekBar.getProgress()
        || location.getAccuracy() < seekBar.getProgress()) {
      listener.onEndScanRequested();
      isScanning = false;
      stopRotatingLogo();
      chronometer.stop();
      resetLogo();
      btnScan.setText(ctx.getString(R.string.start_scan));
      btnSave.setVisibility(View.VISIBLE);
      projectSite.setLatitude(location.getLatitude());
      projectSite.setLongitude(location.getLongitude());
      projectSite.setAccuracy(location.getAccuracy());
      Util.expand(btnSave, 200, null);
      Log.d(LOG, "----------- onEndScanRequested - stopped scanning");
    }
    Util.flashSeveralTimes(hero, 300, 1, null);
  }