From 6205f77b0d00b6bd1b1b5a3423e28c5c8a80797d Mon Sep 17 00:00:00 2001 From: eco9898 Date: Sat, 9 Oct 2021 13:40:04 +1000 Subject: [PATCH] Addresses issue #33 and adds new auto load feature (#34) * Update to android 11 using All Files Access permission * Removed special/forbidden chars from date * Auto loads past game saves * Fixed string name being printed instead of contents * Fixed initial crash * Update AndroidManifest.xml * Fixed initial crash part 2 * Moved prompt for all files access * Changed date format for better sorting in directories * Added icon --- PKHeX.Android/PKHeX.Android.csproj | 2 +- PKHeX.Android/Properties/AndroidManifest.xml | 5 ++- PKHeX.Android/Properties/AssemblyInfo.cs | 2 + PKHeX.Mobile/Logic/FileUtil.cs | 42 +++++++++++++++++-- PKHeX.Mobile/PKHeX.Mobile.csproj | 1 + PKHeX.Mobile/Views/Loader.xaml.cs | 32 ++++++++++++++ PKHeX.Mobile/icon.ico | Bin 0 -> 124613 bytes 7 files changed, 78 insertions(+), 6 deletions(-) create mode 100644 PKHeX.Mobile/icon.ico diff --git a/PKHeX.Android/PKHeX.Android.csproj b/PKHeX.Android/PKHeX.Android.csproj index 4a9be874..10b5e6f8 100644 --- a/PKHeX.Android/PKHeX.Android.csproj +++ b/PKHeX.Android/PKHeX.Android.csproj @@ -16,7 +16,7 @@ Resources Assets false - v10.0 + v11.0 true Xamarin.Android.Net.AndroidClientHandler diff --git a/PKHeX.Android/Properties/AndroidManifest.xml b/PKHeX.Android/Properties/AndroidManifest.xml index 8ccbe3c0..6e19d071 100644 --- a/PKHeX.Android/Properties/AndroidManifest.xml +++ b/PKHeX.Android/Properties/AndroidManifest.xml @@ -1,8 +1,9 @@  - - + + + \ No newline at end of file diff --git a/PKHeX.Android/Properties/AssemblyInfo.cs b/PKHeX.Android/Properties/AssemblyInfo.cs index 9c12db36..ab9c3f5a 100644 --- a/PKHeX.Android/Properties/AssemblyInfo.cs +++ b/PKHeX.Android/Properties/AssemblyInfo.cs @@ -30,4 +30,6 @@ // Add some common permissions, these can be removed if not needed [assembly: UsesPermission(Android.Manifest.Permission.Internet)] +[assembly: UsesPermission(Android.Manifest.Permission.ReadExternalStorage)] [assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)] +[assembly: UsesPermission(Android.Manifest.Permission.ManageExternalStorage)] diff --git a/PKHeX.Mobile/Logic/FileUtil.cs b/PKHeX.Mobile/Logic/FileUtil.cs index 8faa7cb1..31f17b11 100644 --- a/PKHeX.Mobile/Logic/FileUtil.cs +++ b/PKHeX.Mobile/Logic/FileUtil.cs @@ -12,12 +12,14 @@ namespace PKHeX.Mobile.Logic // todo: rename this class to not clash with PKHeX.Core public static class FileUtil { + private static string outputFolder = "/storage/emulated/0/PkHex/"; public static async Task PickFile() { var fileData = await FilePicker.PickAsync(PickOptions.Default).ConfigureAwait(false); if (fileData == null) return null; // user canceled file picking Debug.WriteLine($"File name chosen: {fileData.FileName}"); + Debug.WriteLine($"File path chosen: {fileData.FullPath}"); return fileData; } @@ -55,6 +57,26 @@ public static async Task TryGetSaveFile() } } + public static SaveFile TryGetSaveFile(string filePath) + { + try + { + var data = File.ReadAllBytes(filePath); + var len = data.Length; + bool isPossibleSAV = SaveUtil.IsSizeValid(len); + if (!isPossibleSAV) + return null; + var sav = SaveUtil.GetVariantSAV(data); + sav?.Metadata.SetExtraInfo(filePath); + return sav; + } + catch + { + //Ignore errors as this is meant to be a background scanning function + return null; + } + } + public static async Task ExportSAV(SaveFile sav) { if (!sav.State.Exportable) @@ -63,13 +85,26 @@ public static async Task ExportSAV(SaveFile sav) return false; } + //Create directory structure + if (!Directory.Exists(outputFolder)) + { + Directory.CreateDirectory(outputFolder); + } + String myDate = DateTime.Now.ToString("yyyy-MM-dd HH.mm.ss"); + if (!Directory.Exists(outputFolder + myDate + "/")) + { + Directory.CreateDirectory(outputFolder + myDate + "/"); + } + var data = sav.Write(); - var path = sav.Metadata.FilePath; + var path = outputFolder + myDate + "/" + Path.GetFileName(sav.Metadata.FilePath); + sav?.Metadata.SetExtraInfo(path); + Debug.WriteLine($"File path moved: {sav.Metadata.FilePath}"); try { if (sav.State.Exportable) await SaveBackup(sav).ConfigureAwait(false); - + File.Create(path).Close(); await File.WriteAllBytesAsync(path, data).ConfigureAwait(false); await UserDialogs.Instance.AlertAsync($"Exported save file to: {path}").ConfigureAwait(false); return true; @@ -78,7 +113,8 @@ public static async Task ExportSAV(SaveFile sav) catch (Exception ex) #pragma warning restore CA1031 // Do not catch general exception types { - await UserDialogs.Instance.AlertAsync($"Failed: {ex}").ConfigureAwait(false); + await UserDialogs.Instance.AlertAsync($"Failed to access \"" + outputFolder + "\" please grant All File Access Special Permision").ConfigureAwait(false); + //await UserDialogs.Instance.AlertAsync($"Failed: {ex}").ConfigureAwait(false); return false; } } diff --git a/PKHeX.Mobile/PKHeX.Mobile.csproj b/PKHeX.Mobile/PKHeX.Mobile.csproj index 908e2e23..2c2ff60c 100644 --- a/PKHeX.Mobile/PKHeX.Mobile.csproj +++ b/PKHeX.Mobile/PKHeX.Mobile.csproj @@ -4,6 +4,7 @@ netstandard2.1 true latest + icon.ico diff --git a/PKHeX.Mobile/Views/Loader.xaml.cs b/PKHeX.Mobile/Views/Loader.xaml.cs index d60a663d..e04ff170 100644 --- a/PKHeX.Mobile/Views/Loader.xaml.cs +++ b/PKHeX.Mobile/Views/Loader.xaml.cs @@ -8,15 +8,47 @@ using PKHeX.ViewModels; using Xamarin.Forms; using Xamarin.Forms.Xaml; +using System.IO; namespace PKHeX.Mobile.Views { [XamlCompilation(XamlCompilationOptions.Compile)] public partial class Loader : ContentPage { + private static string outputFolder = "/storage/emulated/0/PkHex/"; public Loader() { InitializeComponent(); + initialLoad(); + } + + private async void initialLoad() + { + try + { + if (CV_Saves.SelectedItem == null) + { + if (Directory.Exists(outputFolder)) + { + foreach (string filePath in Directory.EnumerateFiles(outputFolder, "*", SearchOption.AllDirectories)) + { + var sav = Logic.FileUtil.TryGetSaveFile(filePath); + if (sav != null) + { + var match = VM.Saves.FirstOrDefault(z => z.LocatedAt(sav.Metadata.FilePath)); + if (match != null) + CV_Saves.SelectedItem = match; + else + await LoadNewSaveFile(sav).ConfigureAwait(false); + } + } + } + } + } catch + { + //first time load, ignore error + return; + } } private async void TgrOpenTapped(object sender, EventArgs e) diff --git a/PKHeX.Mobile/icon.ico b/PKHeX.Mobile/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..f20c6c0630b7c6086dd9bd7ef5a12ceba1713c2f GIT binary patch literal 124613 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

wNGw=)3wKrX2MSUav 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