Ejemplo n.º 1
0
 private async void Initialize()
 {
     downloadProgress     = 0;
     downloadButtonAction = DownloadButtonAction.START_DOWNLOAD;
     downloadId           = null;
     downloadedFilePath   = null;
     InitializeLibgenObject();
     UpdateDownloadStatus(MainModel.Downloader.GetDownloadItemByDownloadPageUrl(downloadUrl));
     MainModel.Downloader.DownloaderEvent += DownloaderEvent;
     await InitializeCoverAsync();
 }
Ejemplo n.º 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;
                    }
                });
            }
        }