handleTypeSelected method
void
handleTypeSelected(
- BuildContext context,
- List<
AbstractReport> reportList, - ReportType reportType
Implementation
void handleTypeSelected(BuildContext context, List<AbstractReport> reportList, ReportType reportType) async {
log.d('handleTypeSelected report ${reportType.name}');
try {
// Process non-screen reports AFTER user prompt for report Type
var pack = ReportPack();
var nonScreenReports = reportList.where((r) => r is! ScreenReport).toList();
var categoryIndex = await TypeDialog(theme).chooseCategory(context, config, reportType);
if (categoryIndex != null) {
// Only trigger reports AFTER category selection
await pack.createReport(config.storage, nonScreenReports);
await handleCategorySelected(reportList, reportType, categoryIndex);
} else {
log.i('Cancelling trigger because categoryIndex was null');
cleanReports();
AbstractReport.isTriggered = false;
}
} catch (err) {
log.e('Error in handleTypeSelected: $err');
AbstractReport.isTriggered = false;
cleanReports();
}
}