setupActivePack method Null safety

Future<void> setupActivePack(
  1. SpeechPackage pack
)

Setup active conditions

Implementation

Future<void> setupActivePack(SpeechPackage pack) async {
  final conditions = await _fileCtrl.loadConditions(pack);
  final conditionsByType =
      groupBy(conditions, (SpeechCondition condition) => condition.type);
  activeConditions = {};
  for (final conditionType in conditionsByType.entries) {
    final conditionsByMode = groupBy(
        conditionType.value, (SpeechCondition condition) => condition.mode);
    activeConditions[conditionType.key] = conditionsByMode;
  }
  pack = packages.replaceFirstWhere(
    (ele) => ele.id == pack.id,
    value: pack.copyWith(conditions: conditions),
  )!;
  await _syncModelController.upsert(pack);

  // Activate pack
  activePackageStatus = activePackageStatus.copyWith(isActivated: true);
  activePackage(pack);
}