diff --git a/Assets/PlayModeTests/CombinedDataTransformTests.cs b/Assets/PlayModeTests/CombinedDataTransformTests.cs index 17ca7a0..ea498da 100644 --- a/Assets/PlayModeTests/CombinedDataTransformTests.cs +++ b/Assets/PlayModeTests/CombinedDataTransformTests.cs @@ -22,7 +22,7 @@ public class CombinedDataTransformTests [Test] [TestCaseSource(nameof(_dataTransforms))] - public void DataTransform_ApplyReverse(IDataTransform dataTransform) + public void DataTransform_ApplyReverse(IDataTransformAsync dataTransform) { var applied = dataTransform.Apply(TestByteData); var result = dataTransform.Reverse(applied); @@ -34,7 +34,7 @@ public void DataTransform_ApplyReverse(IDataTransform dataTransform) public IEnumerator DataTransform_ApplyReverseAsync() => UniTask.ToCoroutine(async () => { - async UniTask Test(byte[] data, IDataTransform dataTransform) + async UniTask Test(byte[] data, IDataTransformAsync dataTransform) { var applied = await dataTransform.ApplyAsync(data); var result = await dataTransform.ReverseAsync(applied); @@ -44,7 +44,7 @@ async UniTask Test(byte[] data, IDataTransform dataTransform) foreach (var serializationProvider in _dataTransforms .Select(o => (object[]) o) - .Select(objects => (IDataTransform) objects[0])) + .Select(objects => (IDataTransformAsync) objects[0])) { await Test(TestByteData, serializationProvider); } diff --git a/Assets/PlayModeTests/Constants.cs b/Assets/PlayModeTests/Constants.cs index 3c906db..ed1d4fd 100644 --- a/Assets/PlayModeTests/Constants.cs +++ b/Assets/PlayModeTests/Constants.cs @@ -26,14 +26,14 @@ public EncryptionSettings() } public static readonly IEncryptionSettings Es = new EncryptionSettings(); - public static readonly IDataTransform AesDT = new AesEncryptionDataTransform(Es); - public static readonly IDataTransform DeflateDT = new DeflateDataTransform(); - public static readonly IDataTransform GZipDT = new GZipDataTransform(); + public static readonly IDataTransformAsync AesDT = new AesEncryptionDataTransform(Es); + public static readonly IDataTransformAsync DeflateDT = new DeflateDataTransform(); + public static readonly IDataTransformAsync GZipDT = new GZipDataTransform(); - public static readonly ISerializationProvider UnityJsonSP + public static readonly ISerializationProviderAsync UnityJsonSP = new UnityJsonSerializationProvider(); - public static readonly IFileProvider FP = new FileProvider(); + public static readonly IFileProviderAsync FP = new FileProvider(); } public static class Data diff --git a/Assets/PlayModeTests/DataTransformSerializationProviderTests.cs b/Assets/PlayModeTests/DataTransformSerializationProviderTests.cs index b14c03d..482701b 100644 --- a/Assets/PlayModeTests/DataTransformSerializationProviderTests.cs +++ b/Assets/PlayModeTests/DataTransformSerializationProviderTests.cs @@ -30,8 +30,8 @@ public class DataTransformSerializationProviderTests [Test] [TestCaseSource(nameof(_argumentNullExceptionCases))] - public void SerializationProvider_ThrowsArgumentNullException(ISerializationProvider serializationProvider, - IDataTransform dataTransform) + public void SerializationProvider_ThrowsArgumentNullException(ISerializationProviderAsync serializationProvider, + IDataTransformAsync dataTransform) { Assert.Throws(() => { @@ -41,7 +41,7 @@ public void SerializationProvider_ThrowsArgumentNullException(ISerializationProv [Test] [TestCaseSource(nameof(_serializationProviders))] - public void SerializationProvider_SerializeDeserialize(ISerializationProvider serializationProvider) + public void SerializationProvider_SerializeDeserialize(ISerializationProviderAsync serializationProvider) { void Test(T data) { @@ -59,7 +59,7 @@ void Test(T data) public IEnumerator SerializationProvider_SerializeDeserializeAsync() => UniTask.ToCoroutine(async () => { - async UniTask Test(T data, ISerializationProvider serializationProvider) + async UniTask Test(T data, ISerializationProviderAsync serializationProvider) { var serialized =await serializationProvider.SerializeAsync(data); var deserialized = await serializationProvider.DeserializeAsync(serialized); @@ -69,7 +69,7 @@ async UniTask Test(T data, ISerializationProvider serializationProvider) foreach (var serializationProvider in _serializationProviders .Select(o => (object[]) o) - .Select(objects => (ISerializationProvider) objects[0])) + .Select(objects => (ISerializationProviderAsync) objects[0])) { await Test(GenericDataVector, serializationProvider); await Test(GenericDataStruct, serializationProvider); diff --git a/Assets/PlayModeTests/FileStorageTests.cs b/Assets/PlayModeTests/FileStorageTests.cs index 2b92988..2649fbd 100644 --- a/Assets/PlayModeTests/FileStorageTests.cs +++ b/Assets/PlayModeTests/FileStorageTests.cs @@ -31,7 +31,7 @@ public class FileStorageTests [Test] [TestCaseSource(nameof(ArgumentNullExceptionCases))] public void Storage_ThrowsArgumentNullException( - ISerializationProvider serializationProvider, IFileProvider fileProvider) + ISerializationProviderAsync serializationProvider, IFileProviderAsync fileProvider) { Assert.Throws(() => { @@ -41,7 +41,7 @@ public void Storage_ThrowsArgumentNullException( [Test] [TestCaseSource(nameof(StorageInstances))] - public void Storage_SaveLoad(IFileStorage storage) + public void Storage_SaveLoad(IFileStorageAsync storage) { //Can't use [TestCase] or [TestCaseSource] //because of IL2CPP AOT compilation @@ -70,7 +70,7 @@ public IEnumerator Storage_SaveLoadAsync() { //Can't use [TestCase] or [TestCaseSource] //because of IL2CPP AOT compilation - async UniTask Test(T data, IFileStorage storage) + async UniTask Test(T data, IFileStorageAsync storage) { Setup.DeleteFile(FilePath); @@ -89,7 +89,7 @@ async UniTask Test(T data, IFileStorage storage) foreach (var storage in StorageInstances .Select(o => (object[]) o) - .Select(objects => (IFileStorage) objects[0])) + .Select(objects => (IFileStorageAsync) objects[0])) { await Test(GenericDataVector, storage); await Test(GenericDataStruct, storage); diff --git a/Assets/PlayModeTests/PlayerPrefsStorageTests.cs b/Assets/PlayModeTests/PlayerPrefsStorageTests.cs index edcfbf3..f9d47e1 100644 --- a/Assets/PlayModeTests/PlayerPrefsStorageTests.cs +++ b/Assets/PlayModeTests/PlayerPrefsStorageTests.cs @@ -11,7 +11,7 @@ namespace LocalStorage.PlayModeTests [TestFixture] public class PlayerPrefsStorageTests { - private static readonly IPlayerPrefsStorage Storage = + private static readonly IPlayerPrefsStorageAsync Storage = new PlayerPrefsStorage(UnityJsonSP, true); [SetUp] diff --git a/Packages/LocalStorage/Runtime/Compression/DeflateDataTransform.cs b/Packages/LocalStorage/Runtime/Compression/DeflateDataTransform.cs index c252e58..e317980 100644 --- a/Packages/LocalStorage/Runtime/Compression/DeflateDataTransform.cs +++ b/Packages/LocalStorage/Runtime/Compression/DeflateDataTransform.cs @@ -6,7 +6,7 @@ namespace LocalStorage.Compression { - public class DeflateDataTransform : IDataTransform + public class DeflateDataTransform : IDataTransformAsync { public byte[] Apply(byte[] data) { diff --git a/Packages/LocalStorage/Runtime/Compression/GZipDataTransform.cs b/Packages/LocalStorage/Runtime/Compression/GZipDataTransform.cs index c1d0157..a24e2e6 100644 --- a/Packages/LocalStorage/Runtime/Compression/GZipDataTransform.cs +++ b/Packages/LocalStorage/Runtime/Compression/GZipDataTransform.cs @@ -6,7 +6,7 @@ namespace LocalStorage.Compression { - public class GZipDataTransform : IDataTransform + public class GZipDataTransform : IDataTransformAsync { public byte[] Apply(byte[] data) { diff --git a/Packages/LocalStorage/Runtime/Encryption/AesEncryptionDataTransform.cs b/Packages/LocalStorage/Runtime/Encryption/AesEncryptionDataTransform.cs index dbf4208..387b8d7 100644 --- a/Packages/LocalStorage/Runtime/Encryption/AesEncryptionDataTransform.cs +++ b/Packages/LocalStorage/Runtime/Encryption/AesEncryptionDataTransform.cs @@ -8,7 +8,7 @@ namespace LocalStorage.Encryption { - public class AesEncryptionDataTransform : IDataTransform + public class AesEncryptionDataTransform : IDataTransformAsync { private readonly IEncryptionSettings _encryptionSettings; diff --git a/Packages/LocalStorage/Runtime/FileStorage.cs b/Packages/LocalStorage/Runtime/FileStorage.cs index e5c7805..b295d67 100644 --- a/Packages/LocalStorage/Runtime/FileStorage.cs +++ b/Packages/LocalStorage/Runtime/FileStorage.cs @@ -8,14 +8,14 @@ namespace LocalStorage { - public class FileStorage : IFileStorage + public class FileStorage : IFileStorageAsync { - private readonly ISerializationProvider _serializationProvider; - private readonly IFileProvider _fileProvider; + private readonly ISerializationProviderAsync _serializationProvider; + private readonly IFileProviderAsync _fileProvider; [RequiredMember] - public FileStorage(ISerializationProvider serializationProvider, - IFileProvider fileProvider) + public FileStorage(ISerializationProviderAsync serializationProvider, + IFileProviderAsync fileProvider) { _serializationProvider = serializationProvider ?? throw new ArgumentNullException(nameof(serializationProvider)); @@ -66,14 +66,4 @@ public string GetFilePath(string fileName) => public bool FileExists(string fileName) => _fileProvider.FileExists(fileName); } - - public class FileStorage : FileStorage, IFileStorage - where TSerialization : ISerializationProvider - { - [RequiredMember] - public FileStorage(TSerialization serializationProvider, IFileProvider fileProvider) : base( - serializationProvider, fileProvider) - { - } - } } \ No newline at end of file diff --git a/Packages/LocalStorage/Runtime/IDataTransform.cs b/Packages/LocalStorage/Runtime/IDataTransform.cs index 7bc5aa1..63cee85 100644 --- a/Packages/LocalStorage/Runtime/IDataTransform.cs +++ b/Packages/LocalStorage/Runtime/IDataTransform.cs @@ -10,14 +10,17 @@ public interface IDataTransform { byte[] Apply(byte[] data); + byte[] Reverse(byte[] data); + } + + public interface IDataTransformAsync : IDataTransform + { #if !DISABLE_UNITASK_SUPPORT && UNITASK_SUPPORT UniTask ApplyAsync(byte[] data); #else Task ApplyAsync(byte[] data); #endif - byte[] Reverse(byte[] data); - #if !DISABLE_UNITASK_SUPPORT && UNITASK_SUPPORT UniTask ReverseAsync(byte[] data); #else diff --git a/Packages/LocalStorage/Runtime/IFileProvider.cs b/Packages/LocalStorage/Runtime/IFileProvider.cs index 13ae186..58d0427 100644 --- a/Packages/LocalStorage/Runtime/IFileProvider.cs +++ b/Packages/LocalStorage/Runtime/IFileProvider.cs @@ -10,24 +10,27 @@ public interface IFileProvider { void Write(byte[] output, string fileName); + byte[] Read(string fileName); + + bool Delete(string fileName); + + string GetFilePath(string fileName); + + bool FileExists(string fileName); + } + + public interface IFileProviderAsync : IFileProvider + { #if !DISABLE_UNITASK_SUPPORT && UNITASK_SUPPORT UniTask WriteAsync(byte[] output, string fileName); #else Task WriteAsync(byte[] output, string fileName); #endif - byte[] Read(string fileName); - #if !DISABLE_UNITASK_SUPPORT && UNITASK_SUPPORT UniTask ReadAsync(string fileName); #else Task ReadAsync(string fileName); #endif - - bool Delete(string fileName); - - string GetFilePath(string fileName); - - bool FileExists(string fileName); } } \ No newline at end of file diff --git a/Packages/LocalStorage/Runtime/IFileStorage.cs b/Packages/LocalStorage/Runtime/IFileStorage.cs index 237da59..b10932d 100644 --- a/Packages/LocalStorage/Runtime/IFileStorage.cs +++ b/Packages/LocalStorage/Runtime/IFileStorage.cs @@ -10,30 +10,27 @@ public interface IFileStorage { void Save(TData data, string fileName); + TData Load(string fileName); + + bool Delete(string fileName); + + string GetFilePath(string fileName); + + bool FileExists(string fileName); + } + + public interface IFileStorageAsync : IFileStorage + { #if !DISABLE_UNITASK_SUPPORT && UNITASK_SUPPORT UniTask SaveAsync(TData data, string fileName); #else Task SaveAsync(TData data, string fileName); #endif - TData Load(string fileName); - #if !DISABLE_UNITASK_SUPPORT && UNITASK_SUPPORT UniTask LoadAsync(string fileName); #else Task LoadAsync(string fileName); #endif - - bool Delete(string fileName); - - string GetFilePath(string fileName); - - bool FileExists(string fileName); - } - - public interface IFileStorage : IFileStorage - where TSerialization : ISerializationProvider - { - } } \ No newline at end of file diff --git a/Packages/LocalStorage/Runtime/IPlayerPrefsStorage.cs b/Packages/LocalStorage/Runtime/IPlayerPrefsStorage.cs index 2980d2f..8d59a12 100644 --- a/Packages/LocalStorage/Runtime/IPlayerPrefsStorage.cs +++ b/Packages/LocalStorage/Runtime/IPlayerPrefsStorage.cs @@ -9,44 +9,42 @@ namespace LocalStorage public interface IPlayerPrefsStorage { void SetData(string key, T data); - - T GetData(string key); - #if !DISABLE_UNITASK_SUPPORT && UNITASK_SUPPORT - UniTask SetDataAsync(string key, T data); - #else - Task SetDataAsync(string key, T data); - #endif - - #if !DISABLE_UNITASK_SUPPORT && UNITASK_SUPPORT - UniTask GetDataAsync(string key); - #else - Task GetDataAsync(string key); - #endif + T GetData(string key); void SetFloat(string key, float value); - + float GetFloat(string key); - + void SetInt(string key, int value); - + int GetInt(string key); - + void SetString(string key, string value); - + string GetString(string key); - + bool HasKey(string key); - + void Save(); - + void DeleteKey(string key); - + void DeleteAll(); } - public interface IPlayerPrefsStorage : IPlayerPrefsStorage - where TSerialization : ISerializationProvider + public interface IPlayerPrefsStorageAsync : IPlayerPrefsStorage { + #if !DISABLE_UNITASK_SUPPORT && UNITASK_SUPPORT + UniTask SetDataAsync(string key, T data); + #else + Task SetDataAsync(string key, T data); + #endif + + #if !DISABLE_UNITASK_SUPPORT && UNITASK_SUPPORT + UniTask GetDataAsync(string key); + #else + Task GetDataAsync(string key); + #endif } } \ No newline at end of file diff --git a/Packages/LocalStorage/Runtime/ISerializationProvider.cs b/Packages/LocalStorage/Runtime/ISerializationProvider.cs index 860b677..67f16c9 100644 --- a/Packages/LocalStorage/Runtime/ISerializationProvider.cs +++ b/Packages/LocalStorage/Runtime/ISerializationProvider.cs @@ -10,14 +10,17 @@ public interface ISerializationProvider { byte[] Serialize(T data); + T Deserialize(byte[] data); + } + + public interface ISerializationProviderAsync : ISerializationProvider + { #if !DISABLE_UNITASK_SUPPORT && UNITASK_SUPPORT UniTask SerializeAsync(T data); #else Task SerializeAsync(T data); #endif - T Deserialize(byte[] data); - #if !DISABLE_UNITASK_SUPPORT && UNITASK_SUPPORT UniTask DeserializeAsync(byte[] data); #else diff --git a/Packages/LocalStorage/Runtime/PlayerPrefsStorage.cs b/Packages/LocalStorage/Runtime/PlayerPrefsStorage.cs index b0e02da..832be96 100644 --- a/Packages/LocalStorage/Runtime/PlayerPrefsStorage.cs +++ b/Packages/LocalStorage/Runtime/PlayerPrefsStorage.cs @@ -9,18 +9,18 @@ namespace LocalStorage { - public class PlayerPrefsStorage : IPlayerPrefsStorage + public class PlayerPrefsStorage : IPlayerPrefsStorageAsync { - private readonly ISerializationProvider _serializationProvider; + private readonly ISerializationProviderAsync _serializationProvider; private readonly bool _autoSaveEnabled; [RequiredMember] - public PlayerPrefsStorage(ISerializationProvider serializationProvider) + public PlayerPrefsStorage(ISerializationProviderAsync serializationProvider) : this(serializationProvider, false) { } - public PlayerPrefsStorage(ISerializationProvider serializationProvider, bool autoSaveEnabled) + public PlayerPrefsStorage(ISerializationProviderAsync serializationProvider, bool autoSaveEnabled) { _serializationProvider = serializationProvider ?? throw new ArgumentNullException(nameof(serializationProvider)); @@ -110,17 +110,4 @@ private void SetBytes(string key, byte[] data) => private byte[] GetBytes(string key) => Convert.FromBase64String(GetString(key)); } - - public class PlayerPrefsStorage : PlayerPrefsStorage, IPlayerPrefsStorage - where T : ISerializationProvider - { - [RequiredMember] - public PlayerPrefsStorage(ISerializationProvider serializationProvider) : base(serializationProvider) - { - } - - public PlayerPrefsStorage(ISerializationProvider serializationProvider, bool autoSaveEnabled) : base(serializationProvider, autoSaveEnabled) - { - } - } } \ No newline at end of file diff --git a/Packages/LocalStorage/Runtime/Providers/CombinedDataTransform.cs b/Packages/LocalStorage/Runtime/Providers/CombinedDataTransform.cs index a631a4f..f60d9a9 100644 --- a/Packages/LocalStorage/Runtime/Providers/CombinedDataTransform.cs +++ b/Packages/LocalStorage/Runtime/Providers/CombinedDataTransform.cs @@ -8,13 +8,13 @@ namespace LocalStorage.Providers { - public class CombinedDataTransform : IDataTransform + public class CombinedDataTransform : IDataTransformAsync { - private readonly IDataTransform _firstTransform; - private readonly IDataTransform _secondTransform; + private readonly IDataTransformAsync _firstTransform; + private readonly IDataTransformAsync _secondTransform; [RequiredMember] - public CombinedDataTransform(IDataTransform firstTransform, IDataTransform secondTransform) + public CombinedDataTransform(IDataTransformAsync firstTransform, IDataTransformAsync secondTransform) { _firstTransform = firstTransform ?? throw new ArgumentNullException(nameof(firstTransform)); diff --git a/Packages/LocalStorage/Runtime/Providers/DataTransformSerializationProvider.cs b/Packages/LocalStorage/Runtime/Providers/DataTransformSerializationProvider.cs index 635e4a0..6763d6a 100644 --- a/Packages/LocalStorage/Runtime/Providers/DataTransformSerializationProvider.cs +++ b/Packages/LocalStorage/Runtime/Providers/DataTransformSerializationProvider.cs @@ -8,15 +8,15 @@ namespace LocalStorage.Providers { - public class DataTransformSerializationProvider : ISerializationProvider + public class DataTransformSerializationProvider : ISerializationProviderAsync { - private readonly ISerializationProvider _baseProvider; + private readonly ISerializationProviderAsync _baseProvider; - private readonly IDataTransform _dataTransform; + private readonly IDataTransformAsync _dataTransform; [RequiredMember] - public DataTransformSerializationProvider(ISerializationProvider baseProvider, - IDataTransform dataTransform) + public DataTransformSerializationProvider(ISerializationProviderAsync baseProvider, + IDataTransformAsync dataTransform) { _baseProvider = baseProvider ?? throw new ArgumentNullException(nameof(baseProvider)); diff --git a/Packages/LocalStorage/Runtime/Providers/FileProvider.cs b/Packages/LocalStorage/Runtime/Providers/FileProvider.cs index e1ac453..f501331 100644 --- a/Packages/LocalStorage/Runtime/Providers/FileProvider.cs +++ b/Packages/LocalStorage/Runtime/Providers/FileProvider.cs @@ -9,7 +9,7 @@ namespace LocalStorage.Providers { - public class FileProvider : IFileProvider + public class FileProvider : IFileProviderAsync { private readonly string _path; diff --git a/Packages/LocalStorage/Runtime/Providers/UnityJsonSerializationProvider.cs b/Packages/LocalStorage/Runtime/Providers/UnityJsonSerializationProvider.cs index 25d87ec..81c096c 100644 --- a/Packages/LocalStorage/Runtime/Providers/UnityJsonSerializationProvider.cs +++ b/Packages/LocalStorage/Runtime/Providers/UnityJsonSerializationProvider.cs @@ -9,7 +9,7 @@ namespace LocalStorage.Providers { - public class UnityJsonSerializationProvider : ISerializationProvider + public class UnityJsonSerializationProvider : ISerializationProviderAsync { private readonly bool _prettyPrint; diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 4c9189f..89cf8df 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -70,7 +70,7 @@ PlayerSettings: androidBlitType: 0 defaultIsNativeResolution: 1 macRetinaSupport: 1 - runInBackground: 0 + runInBackground: 1 captureSingleScreen: 0 muteOtherAudioSources: 0 Prepare IOS For Recording: 0 @@ -546,6 +546,8 @@ PlayerSettings: switchNetworkInterfaceManagerInitializeEnabled: 1 switchPlayerConnectionEnabled: 1 switchUseNewStyleFilepaths: 0 + switchUseMicroSleepForYield: 1 + switchMicroSleepForYieldTime: 25 ps4NPAgeRating: 12 ps4NPTitleSecret: ps4NPTrophyPackPath: diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 4e87e30..e610e28 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2020.3.8f1 -m_EditorVersionWithRevision: 2020.3.8f1 (507919d4fff5) +m_EditorVersion: 2020.3.11f1 +m_EditorVersionWithRevision: 2020.3.11f1 (99c7afb366b3)