private void InitializeLibgenObject() { downloadButtonCaptionOption = DownloadButtonCaptionOption.DOWNLOAD; if (downloadMirrorName == null) { downloadActionTextOption = DownloadActionTextOption.DOWNLOAD; IsDownloadButtonEnabled = false; downloadButtonTooltipOption = DownloadButtonTooltipOption.NO_DOWNLOAD_MIRROR; downloadUrl = null; } else { downloadActionTextOption = DownloadActionTextOption.DOWNLOAD_FROM_MIRROR; if (IsInOfflineMode) { IsDownloadButtonEnabled = false; downloadButtonTooltipOption = DownloadButtonTooltipOption.OFFLINE_MODE_IS_ON; downloadUrl = null; } else { IsDownloadButtonEnabled = true; downloadButtonTooltipOption = DownloadButtonTooltipOption.NO_TOOLTIP; downloadUrl = GenerateDownloadUrl(MainModel.Mirrors[downloadMirrorName]); } } UpdateDownloadButtonCaption(); UpdateDownloadButtonTooltip(); }
private void UpdateDownloadStatus(DownloadItem downloadItem) { if (downloadItem != null && downloadItem.DownloadPageUrl == downloadUrl) { ExecuteInUiThread(() => { switch (downloadItem.Status) { case DownloadItemStatus.QUEUED: downloadButtonCaptionOption = DownloadButtonCaptionOption.QUEUED; break; case DownloadItemStatus.DOWNLOADING: case DownloadItemStatus.RETRY_DELAY: downloadButtonCaptionOption = DownloadButtonCaptionOption.DOWNLOADING; break; case DownloadItemStatus.STOPPED: downloadButtonCaptionOption = DownloadButtonCaptionOption.STOPPED; break; case DownloadItemStatus.ERROR: downloadButtonCaptionOption = DownloadButtonCaptionOption.ERROR; break; case DownloadItemStatus.COMPLETED: downloadButtonCaptionOption = DownloadButtonCaptionOption.OPEN; break; case DownloadItemStatus.REMOVED: downloadButtonCaptionOption = DownloadButtonCaptionOption.DOWNLOAD; break; } UpdateDownloadButtonCaption(); switch (downloadItem.Status) { case DownloadItemStatus.QUEUED: case DownloadItemStatus.DOWNLOADING: case DownloadItemStatus.RETRY_DELAY: case DownloadItemStatus.STOPPED: case DownloadItemStatus.ERROR: downloadId = downloadItem.Id; downloadButtonAction = DownloadButtonAction.SELECT_DOWNLOAD; break; case DownloadItemStatus.COMPLETED: downloadedFilePath = Path.Combine(downloadItem.DownloadDirectory, downloadItem.FileName); downloadButtonAction = DownloadButtonAction.OPEN_FILE; break; case DownloadItemStatus.REMOVED: downloadId = null; downloadedFilePath = null; downloadButtonAction = DownloadButtonAction.START_DOWNLOAD; break; } if (downloadItem.Status != DownloadItemStatus.REMOVED && downloadItem.DownloadedFileSize.HasValue && downloadItem.TotalFileSize.HasValue && downloadItem.DownloadedFileSize.Value < downloadItem.TotalFileSize.Value) { DownloadProgress = (double)downloadItem.DownloadedFileSize.Value * 100 / downloadItem.TotalFileSize.Value; } else { DownloadProgress = 0; } }); } }