handleCategorySelected method

Future<void> handleCategorySelected(
  1. List<AbstractReport> reportList,
  2. ReportType reportType,
  3. int? categoryIndex
)

Implementation

Future<void> handleCategorySelected(
    List<AbstractReport> reportList, ReportType reportType, int? categoryIndex) async {
  if (categoryIndex != null) {
    var categoryUid = config.getCategories().keys.elementAt(categoryIndex);
    log.i('Category selected was $categoryUid');

    // now call all the report plugins
    var pack = ReportPack();

    var packName = await pack.createReportZip(config.storage, clientUid, reportType, categoryUid, reportList);

    if (!pack.isAbandoned(reportList)) {
      finishReport(packName);
    }
    else {
      log.i('Cancelling trigger because user abandoned one of the reports');
      cleanReports();
    }
  }
  else {
    log.i('Cancelling trigger because categoryIndex was null');
    cleanReports();
  }
  AbstractReport.isTriggered = false;
}