private LocationRequest getLocationRequest() {
   LocationRequest lr =
       LocationRequest.create()
           .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
           .setInterval(LOCATION_UPDATE_INTERVAL);
   if (!mConstantReporting) {
     lr.setNumUpdates(MAX_LOCATION_UPDATES);
   }
   return lr;
 }
  public LocationRequest createLocationRequest() {
    LocationRequest locationRequest = LocationRequest.create();
    locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
    locationRequest.setInterval(UPDATE_INTERVAL);
    locationRequest.setFastestInterval(FASTEST_INTERVAL);
    locationRequest.setExpirationDuration(ACCEPTED_LOCATION_AGE_MILLIS);
    locationRequest.setNumUpdates(5);

    return locationRequest;
  }
  /** @brief This function starts the GPS */
  private void startLocation(boolean quick) {
    // Check if we need to set up Google API
    if (!sGPSIsOn) {
      Log.e(TAG, "starting location?");
      if (sGoogleApi == null) {
        // Build API
        sGoogleApi =
            new GoogleApiClient.Builder(this)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .addApi(LocationServices.API)
                .build();

        // Thank the 6 God for blockingConnect
        ConnectionResult what = sGoogleApi.blockingConnect();
      }

      if (sLocationIntent == null) {
        Intent intent = new Intent(this, InnerLocationService.class);
        sLocationIntent =
            PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
      }

      if (quick) {
        sQuickGPSIsOn = true;
      }

      long interval = quick ? 0 : 20000;
      LocationRequest locRequest = new LocationRequest();
      if (quick) {
        sQuickGPSIsOn = true;
        locRequest.setNumUpdates(2);
      }

      locRequest.setInterval(interval);
      locRequest.setFastestInterval(interval);
      locRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
      LocationServices.FusedLocationApi.requestLocationUpdates(
          sGoogleApi, locRequest, sLocationIntent);
      sGPSIsOn = true;
    }
  }