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 ChamberFirestore().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.neomFrequency!.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.neomFrequency!.frequency.ceilToDouble().toString()} Hz";
        chamberPreset.imgUrl = AppProperties.getAppLogoUrl();
        chamberPreset.ownerId = profile?.id ?? '';
        chamberPreset.neomFrequency!.description = frequencyDescription.value;
        if(await ChamberFirestore().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 Chamber");
        } else {
          AppConfig.logger.d("Preset not added to Neom Chamber");
        }
      } catch (e) {
        AppConfig.logger.e(e.toString());
        AppUtilities.showSnackBar(
            title: AppTranslationConstants.generator.tr,
            message: 'Algo salió mal agregando tu preset a tu cámara Neom.'
        );
      }

      AppUtilities.showSnackBar(
          title: AppTranslationConstants.generator.tr,
          message: 'El preajuste para la frecuencia de "${chamberPreset.neomFrequency!.frequency.ceilToDouble().toString()}"'
              ' Hz fue agregado a la Cámara Neom: ${chamber.value.name}.'
      );
    }
  }

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

  update([]);
}