Пример #1
0
 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();
 }
Пример #2
0
        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;
                    }
                });
            }
        }