code: public boolean distribute(@NonNull File reportFile) {
  
          ACRA.log.i(LOG_TAG, "Sending report " + reportFile);
          try {
              final CrashReportPersister persister = new CrashReportPersister();
              final CrashReportData previousCrashReport = persister.load(reportFile);
              sendCrashReport(previousCrashReport);
              IOUtils.deleteFile(reportFile);
              return true;
          } catch (RuntimeException e) {
              ACRA.log.e(LOG_TAG, "Failed to send crash reports for " + reportFile, e);
              IOUtils.deleteFile(reportFile);
          } catch (IOException e) {
              ACRA.log.e(LOG_TAG, "Failed to load crash report for " + reportFile, e);
              IOUtils.deleteFile(reportFile);
          } catch (JSONException e) {
              ACRA.log.e(LOG_TAG, "Failed to load crash report for " + reportFile, e);
              IOUtils.deleteFile(reportFile);
          } catch (ReportSenderException e) {
              ACRA.log.e(LOG_TAG, "Failed to send crash report for " + reportFile, e);
              // An issue occurred while sending this report but we can still try to
              // send other reports. Report sending is limited by ACRAConstants.MAX_SEND_REPORTS
              // so there's not much to fear about overloading a failing server.
          }
          return false;
      }
docs: Send report via all senders.
  
  @param reportFile Report to send.
  @return if distributing was successful