private void stopSnapping() {
    Log.d(LOG_TAG, "stopSnapping");

    isSnapping = false;
    mFlightDuraChrono.stop();
    mDurationOfFlight = SystemClock.elapsedRealtime() - mFlightDuraChrono.getBase();
    if (mCamera != null) {
      mCamera.release();
      mCamera = null;
    }
    mSnapDisbatcher.stopDisbatching();
    mDirectionListener.stopListening();
    Intent resultIntent = new Intent();
    resultIntent.putExtra(mRes.getString(R.string.intent_extra_flight_duration), mDurationOfFlight);
    resultIntent.putExtra(mRes.getString(R.string.intent_extra_snap_count), mNumberOfSnapsTaken);

    setResult(RESULT_OK, resultIntent);
    finish();
  }