private void SetDownloadSource(ITLTransferable transferable, TLDocument document, int fileSize, int phase) { if (phase >= Phase && document != null) { //Phase = phase; var fileName = document.GetFileName(); if (File.Exists(FileUtils.GetTempFileName(fileName))) { } else { Execute.BeginOnThreadPool(async() => { var result = await _downloadFileManager.DownloadFileAsync(fileName, document.DCId, document.ToInputFileLocation(), fileSize, transferable?.Download()); if (result != null && Phase <= phase) { //Phase = phase; } }); } } }
private void SetAnimatedSource(ITLTransferable transferable, TLDocument document, int fileSize, int phase) { if (phase >= Phase && document != null) { //Phase = phase; var fileName = document.GetFileName(); if (File.Exists(FileUtils.GetTempFileName(fileName))) { //Image.UriSource = FileUtils.GetTempFileUri(fileName); _renderer.SetSource(FileUtils.GetTempFileUri(fileName)); } else { Execute.BeginOnThreadPool(async() => { var result = await _downloadFileManager.DownloadFileAsync(fileName, document.DCId, document.ToInputFileLocation(), fileSize).AsTask(transferable?.Download()); if (result != null && Phase <= phase) { Phase = phase; Execute.BeginOnUIThread(() => { if (transferable != null) { transferable.IsTransferring = false; } //Image.UriSource = FileUtils.GetTempFileUri(fileName); _renderer.SetSource(FileUtils.GetTempFileUri(fileName)); }); } }); } } }
private void SetWebPSource(ITLTransferable transferable, TLDocument document, int fileSize, int phase) { if (phase >= Phase && document != null) { var fileName = document.GetFileName(); if (File.Exists(FileUtils.GetTempFileName(fileName))) { var decoded = WebPImage.Encode(File.ReadAllBytes(FileUtils.GetTempFileName(fileName))); if (decoded != null) { _bitmapImage.SetSource(decoded); } else { _bitmapImage.UriSource = FileUtils.GetTempFileUri(fileName); } } else { Execute.BeginOnThreadPool(async() => { var result = await _downloadFileManager.DownloadFileAsync(fileName, document.DCId, document.ToInputFileLocation(), fileSize, transferable?.Download()); if (result != null && Phase <= phase) { Phase = phase; _bitmapImage.BeginOnUIThread(() => { var decoded = WebPImage.Encode(File.ReadAllBytes(FileUtils.GetTempFileName(fileName))); if (decoded != null) { _bitmapImage.SetSource(decoded); } else { _bitmapImage.UriSource = FileUtils.GetTempFileUri(fileName); } }); } }); } } }