diff --git a/AideDeJeu/AideDeJeu.Android/AideDeJeu.Android.csproj b/AideDeJeu/AideDeJeu.Android/AideDeJeu.Android.csproj index b370fa95..de8ef7bd 100644 --- a/AideDeJeu/AideDeJeu.Android/AideDeJeu.Android.csproj +++ b/AideDeJeu/AideDeJeu.Android/AideDeJeu.Android.csproj @@ -426,5 +426,8 @@ + + + \ No newline at end of file diff --git a/AideDeJeu/AideDeJeu.Android/NativeAPI.cs b/AideDeJeu/AideDeJeu.Android/NativeAPI.cs index 7186c5bf..f105b66e 100644 --- a/AideDeJeu/AideDeJeu.Android/NativeAPI.cs +++ b/AideDeJeu/AideDeJeu.Android/NativeAPI.cs @@ -195,5 +195,30 @@ namespace AideDeJeu.Droid // return Task.CompletedTask; //} + public async Task LaunchFileAsync(string title, string message, string filePath) + { + var context = Android.App.Application.Context; + var uri = Android.Support.V4.Content.FileProvider.GetUriForFile(context, context.PackageName + ".fileprovider", new Java.IO.File(filePath)); + //var uri = Android.Net.Uri.Parse("file://" + filePath); + var contentType = "application/pdf"; + var intent = new Intent(Intent.ActionView); + /*intent.PutExtra(Intent.ExtraStream, uri); + intent.PutExtra(Intent.ExtraText, string.Empty); + intent.PutExtra(Intent.ExtraSubject, message ?? string.Empty); + intent.SetType(contentType); + var chooserIntent = Intent.CreateChooser(intent, title ?? string.Empty); + //chooserIntent.SetDataAndType(uri, "application/pdf"); + chooserIntent.SetFlags(ActivityFlags.ClearTop); + chooserIntent.SetFlags(ActivityFlags.NewTask); + chooserIntent.AddFlags(ActivityFlags.GrantReadUriPermission); + chooserIntent.AddFlags(ActivityFlags.GrantWriteUriPermission); + context.StartActivity(chooserIntent); + */ + intent.SetDataAndType(uri, "application/pdf"); + intent.SetFlags(ActivityFlags.NewTask | ActivityFlags.GrantReadUriPermission); + context.StartActivity(intent); + //return Task.FromResult(true); + } + } } diff --git a/AideDeJeu/AideDeJeu.Android/Properties/AndroidManifest.xml b/AideDeJeu/AideDeJeu.Android/Properties/AndroidManifest.xml index 7df1ae61..f4301095 100644 --- a/AideDeJeu/AideDeJeu.Android/Properties/AndroidManifest.xml +++ b/AideDeJeu/AideDeJeu.Android/Properties/AndroidManifest.xml @@ -1,5 +1,12 @@  - + + + + + \ No newline at end of file diff --git a/AideDeJeu/AideDeJeu.Android/Resources/Resource.designer.cs b/AideDeJeu/AideDeJeu.Android/Resources/Resource.designer.cs index c2885c03..64a6225e 100644 --- a/AideDeJeu/AideDeJeu.Android/Resources/Resource.designer.cs +++ b/AideDeJeu/AideDeJeu.Android/Resources/Resource.designer.cs @@ -12163,7 +12163,10 @@ namespace AideDeJeu.Droid { // aapt resource value: 0x7f070000 - public const int xamarin_essentials_fileprovider_file_paths = 2131165184; + public const int file_paths = 2131165184; + + // aapt resource value: 0x7f070001 + public const int xamarin_essentials_fileprovider_file_paths = 2131165185; static Xml() { diff --git a/AideDeJeu/AideDeJeu.Android/Resources/xml/file_paths.xml b/AideDeJeu/AideDeJeu.Android/Resources/xml/file_paths.xml new file mode 100644 index 00000000..dba3cc6d --- /dev/null +++ b/AideDeJeu/AideDeJeu.Android/Resources/xml/file_paths.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/AideDeJeu/AideDeJeu/Tools/NativeAPI.cs b/AideDeJeu/AideDeJeu/Tools/NativeAPI.cs index 76dc64d4..59118736 100644 --- a/AideDeJeu/AideDeJeu/Tools/NativeAPI.cs +++ b/AideDeJeu/AideDeJeu/Tools/NativeAPI.cs @@ -14,5 +14,6 @@ namespace AideDeJeu.Tools Task SaveStreamAsync(string filename, Stream stream); Stream CreateStream(string filename); //void OpenFileByName(string fileName); + Task LaunchFileAsync(string title, string message, string filePath); } } diff --git a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/PlayerCharacterEditorViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/PlayerCharacterEditorViewModel.cs index 14733c98..50e2ca9a 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/PlayerCharacterEditorViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/PlayerCharacterEditorViewModel.cs @@ -1260,6 +1260,8 @@ namespace AideDeJeu.ViewModels.PlayerCharacter //var file = Path.Combine(FileSystem.CacheDirectory, fn); //File.WriteAllText(file, "Hello World"); var testfile = Path.Combine(Xamarin.Essentials.FileSystem.CacheDirectory, "test.pdf"); + await DependencyService.Get().LaunchFileAsync("hophop", "coucou", testfile); + /* var shareFile = new Xamarin.Essentials.ShareFile(testfile); //var truc = Platform.GetShareableFileUri(request.File.FullPath); //await Xamarin.Essentials.Browser.OpenAsync(testfile); @@ -1268,7 +1270,7 @@ namespace AideDeJeu.ViewModels.PlayerCharacter Title = "ou yeah", File = shareFile }); - + */ } private int PickAbility(Random random, ref List mins, ref List maxs, string name)