downloadKind method

Future<void> downloadKind(
  1. WordInfoKind kind
)

Implementation

Future<void> downloadKind(WordInfoKind kind) async {
  if (isDownloading.value) return;

  try {
    downloadingKind.value = kind;
    isPreparingDownload.value = true;
    isDownloading.value = true;
    downloadProgress.value = 0.0;
    update(['word_info_download']);

    await _repository.downloadKind(
      kind: kind,
      onProgress: (p) {
        isPreparingDownload.value = false;
        downloadProgress.value = p;
        update(['word_info_download']);
      },
    );

    if (kind == WordInfoKind.recitations) {
      _bumpRecitationsRevision();
    }

    isPreparingDownload.value = false;
    isDownloading.value = false;
    downloadingKind.value = null;
    downloadProgress.value = 100.0;
    update(['word_info_download', 'word_info_data']);
  } catch (e) {
    isPreparingDownload.value = false;
    isDownloading.value = false;
    downloadingKind.value = null;
    downloadProgress.value = 0.0;
    update(['word_info_download']);
    rethrow;
  }
}