From e5f2b88917dccdfe728a52b69b7f3c8955b4c964 Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Mon, 13 May 2019 23:41:20 +0200 Subject: [PATCH] Copie pdfjs en uwp --- AideDeJeu/AideDeJeu.UWP/AideDeJeu.UWP.csproj | 350 +++++++++---------- AideDeJeu/AideDeJeu.UWP/PdfViewRenderer.cs | 28 +- 2 files changed, 202 insertions(+), 176 deletions(-) diff --git a/AideDeJeu/AideDeJeu.UWP/AideDeJeu.UWP.csproj b/AideDeJeu/AideDeJeu.UWP/AideDeJeu.UWP.csproj index 01b50488..ba5c4547 100644 --- a/AideDeJeu/AideDeJeu.UWP/AideDeJeu.UWP.csproj +++ b/AideDeJeu/AideDeJeu.UWP/AideDeJeu.UWP.csproj @@ -137,178 +137,178 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -335,7 +335,7 @@ - + @@ -347,7 +347,7 @@ - + @@ -433,7 +433,7 @@ - + diff --git a/AideDeJeu/AideDeJeu.UWP/PdfViewRenderer.cs b/AideDeJeu/AideDeJeu.UWP/PdfViewRenderer.cs index df06ae20..eca5e0c0 100644 --- a/AideDeJeu/AideDeJeu.UWP/PdfViewRenderer.cs +++ b/AideDeJeu/AideDeJeu.UWP/PdfViewRenderer.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Net; +using System.Reflection; using System.Text; using System.Threading.Tasks; using Windows.Storage; @@ -16,7 +17,7 @@ namespace AideDeJeu.UWP { public class PdfViewRenderer : WebViewRenderer { - protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) + protected override async void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) { base.OnElementPropertyChanged(sender, e); if (e.PropertyName == "Uri") @@ -25,6 +26,7 @@ namespace AideDeJeu.UWP if (pdfView?.Uri != null) { // TODO : copier le dossier assets/pdfjs dans localcache/pdf/pdfjs + await CopyPdfJSAsync(); Control.Source = new Uri( //string.Format("ms-appx-web:///Assets/pdfjs/web/viewer.html?file={0}", string.Format("ms-appdata:///localcache/pdf/pdfjs/web/viewer.html?file=../../{0}", @@ -53,5 +55,29 @@ namespace AideDeJeu.UWP } } } + + private async Task CopyPdfJSAsync() + { + var temporaryFolder = ApplicationData.Current.LocalCacheFolder; + if ((await temporaryFolder.TryGetItemAsync("pdf\\pdfjs")) == null) + { + var pdfjsDestinationFolder = await temporaryFolder.CreateFolderAsync("pdf\\pdfjs"); + var installationFolder = Windows.ApplicationModel.Package.Current.InstalledLocation; + var pdfjsSourceFolder = await installationFolder.GetFolderAsync("Assets\\pdfjs"); + await CopyFolderAsync(pdfjsSourceFolder, pdfjsDestinationFolder); + } + } + + private async Task CopyFolderAsync(StorageFolder sourceFolder, StorageFolder destinationFolder) + { + foreach(var folder in await sourceFolder.GetFoldersAsync()) + { + await CopyFolderAsync(folder, await destinationFolder.CreateFolderAsync(folder.Name)); + } + foreach(var file in await sourceFolder.GetFilesAsync()) + { + await file.CopyAsync(destinationFolder); + } + } } }