addPreset method

Future<void> addPreset(
  1. BuildContext context, {
  2. int frequencyPracticeState = 0,
})

Implementation

Future<void> addPreset(BuildContext context, {int frequencyPracticeState = 0}) async {

  if(!isButtonDisabled.value) {
    isButtonDisabled.value = true;
    isLoading.value = true;
    update([AppPageIdConstants.generator]);

    AppConfig.logger.i("ChamberPreset would be added as $frequencyState for Itemlist ${chamber.value.id}");

    if(frequencyPracticeState > 0) frequencyState.value = frequencyPracticeState;

    if(noChambers) {
      chamber.value.name = CommonTranslationConstants.myFavItemlistName.tr;
      chamber.value.description = CommonTranslationConstants.myFavItemlistDesc.tr;
      chamber.value.imgUrl = AppProperties.getAppLogoUrl();
      chamber.value.ownerId = profile?.id ?? '';
      chamber.value.id = await chamberRepository.insert(chamber.value);
    } else {
      if(chamber.value.id.isEmpty) chamber.value.id = chambers.values.first.id;
    }

    if(chamber.value.id.isNotEmpty) {

      try {
        chamberPreset.id = "${chamberPreset.mainFrequency?.frequency.ceilToDouble().toString()}_${chamberPreset.neomParameter!.volume.toString()}"
            "_${chamberPreset.neomParameter!.x.toString()}_${chamberPreset.neomParameter!.y.toString()}_${chamberPreset.neomParameter!.z.toString()}";
        chamberPreset.name = "${AppTranslationConstants.frequency.tr} ${chamberPreset.mainFrequency?.frequency.ceilToDouble().toString()} Hz";
        chamberPreset.imgUrl = AppProperties.getAppLogoUrl();
        chamberPreset.ownerId = profile?.id ?? '';
        chamberPreset.mainFrequency!.description = frequencyDescription.value;
        if(await chamberRepository.addPreset(chamber.value.id, chamberPreset)) {
          await ProfileFirestore().addChamberPreset(profileId: profile?.id ?? '', chamberPresetId: chamberPreset.id);
          await userServiceImpl?.reloadProfileItemlists();
          await userServiceImpl?.loadProfileChambers();
          userServiceImpl?.profile.chamberPresets?.add(chamberPreset.id);
          AppConfig.logger.d("Preset added to Neom NeomChamber");
        } else {
          AppConfig.logger.d("Preset not added to Neom NeomChamber");
        }
      } catch (e, st) {
        NeomErrorLogger.recordError(e, st, module: 'neom_generator', operation: 'addPreset');
        AppUtilities.showSnackBar(
            title: AppTranslationConstants.generator.tr,
            message: GeneratorTranslationConstants.presetAddError.tr,
        );
      }

      AppUtilities.showSnackBar(
          title: AppTranslationConstants.generator.tr,
          message: '${GeneratorTranslationConstants.presetAddedMsg.tr}'
              ' ${chamberPreset.mainFrequency?.frequency.ceilToDouble().toString()}'
              ' Hz - ${chamber.value.name}.',
      );
    }
  }

  existsInChamber.value = true;
  isButtonDisabled.value = false;
  isLoading.value = false;

  update([]);
}