Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
61f50e3
fix: Add isolated changes that address the Android thread IO issue.
paulhazen Oct 24, 2024
7adc64b
fix: Correct usage of FileSystemUtility in the IOSBuilder.
paulhazen Oct 24, 2024
f30ac52
fix: Correct implementation for Android specifically - there were som…
paulhazen Oct 24, 2024
5742445
fix(log,init) : llc missing fix
arthur740212 Oct 25, 2024
27785d3
fix: Add isolated changes that address the Android thread IO issue.
paulhazen Oct 24, 2024
df1e0ab
fix: Correct usage of FileSystemUtility in the IOSBuilder.
paulhazen Oct 24, 2024
847c4c7
fix: Correct implementation for Android specifically - there were som…
paulhazen Oct 24, 2024
4f9e621
fix(log,init) : llc missing fix
arthur740212 Oct 25, 2024
0d10ab9
Merge pull request #961 from PlayEveryWare/integrate/1.16.4
WispyMouse Oct 17, 2024
49e2488
Merge pull request #973 from PlayEveryWare/integrate/1.16.4-nativecode
WispyMouse Oct 28, 2024
cfe35cf
Merge pull request #999 from PlayEveryWare/teach-eosmanager-grabuserinfo
WispyMouse Nov 7, 2024
f7a3cbc
Merge pull request #1003 from PlayEveryWare/fix/use-func-isntead-of-c…
WispyMouse Nov 12, 2024
c4ecfd0
Package.json Update for 3.3.4 Release / 1.16.4 Integration
WispyMouse Nov 20, 2024
580ed42
Update Package Version in EOSPackageInfo for 3.3.4 Release
WispyMouse Nov 20, 2024
9bb5f85
feat: Authentication Listener knows the difference between a Connect …
WispyMouse Oct 1, 2024
f2f85a1
feat: Rename AuthenticationLevelChangeType to LoginChangeKind
WispyMouse Oct 7, 2024
4b93613
Integration 1.16.4 Initial Changes
WispyMouse Oct 15, 2024
d28db83
Remove Removed File That Was Moved
WispyMouse Oct 15, 2024
0efb666
Renamed Android STDC
WispyMouse Oct 15, 2024
929ccb0
1.16.4 C Integration
WispyMouse Oct 24, 2024
403c21b
MacOS Native Binaries
WispyMouse Oct 25, 2024
b1b483d
Windows Binary Changes
WispyMouse Oct 25, 2024
24372ef
Windows x86 Binaries
WispyMouse Oct 25, 2024
e2c2a89
feat: EOSManager can have UserLoginInfo Provided to it
WispyMouse Nov 7, 2024
d5bb526
Use Func instead of Custom Delegate for GetUserLoginInfo
WispyMouse Nov 11, 2024
e2101e0
feat: Authentication Listener knows the difference between a Connect …
WispyMouse Oct 1, 2024
7525a62
feat: Rename AuthenticationLevelChangeType to LoginChangeKind
WispyMouse Oct 7, 2024
e199bf7
Release Commit Fix: GfxPluginNativeRender-x64.dll
WispyMouse Nov 22, 2024
0fb59b2
Release Commit Fix: Incrementing project version numbers
WispyMouse Nov 22, 2024
f058f21
Updating Git Release SHA To SHA Previous To This Commit
WispyMouse Nov 26, 2024
446c217
chore: Update changelog
WispyMouse Nov 26, 2024
c784612
Merge branch 'stable' of https://github.com/PlayEveryWare/eos_plugin_…
WispyMouse Nov 26, 2024
2a37f24
Merge branch 'release-3.3.4' of https://github.com/PlayEveryWare/eos_…
WispyMouse Nov 26, 2024
f04a627
Release Commit Fix: Undoing Reference to JsonIgnore
WispyMouse Nov 26, 2024
2982172
Release Commit Fix: Updating build SHA
WispyMouse Nov 26, 2024
33dc48f
Release Commit Fix: Updating .json configs
WispyMouse Nov 26, 2024
5e85a6e
Release Commit Fix: Updating Package.json Sha
WispyMouse Nov 26, 2024
e8856b2
Merge pull request #1038 from PlayEveryWare/release-3.3.4
arthur740212 Dec 3, 2024
3e632cf
Merge branch 'stable' into fix/merge-stable-into-development
paulhazen Dec 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 21 additions & 21 deletions Assets/Plugins/Android/Core/AndroidFileIOHelper.cs
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
/*
* Copyright (c) 2024 PlayEveryWare
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
* Copyright (c) 2024 PlayEveryWare
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/

namespace PlayEveryWare.EpicOnlineServices
{
Expand Down Expand Up @@ -92,4 +92,4 @@ private static string ProcessRequest(string filePath, UnityWebRequest request)
return text;
}
}
}
}
1 change: 1 addition & 0 deletions Assets/Plugins/Source/Editor/Platforms/iOS/IOSBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#if !EOS_DISABLE
namespace PlayEveryWare.EpicOnlineServices.Editor.Build
{
using EpicOnlineServices.Utility;
using System.IO;
using UnityEditor;
using UnityEditor.Build.Reporting;
Expand Down
16 changes: 16 additions & 0 deletions com.playeveryware.eos/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,22 @@
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [3.3.4] - 2024-11-26

### Changed

- Update to EOS SDK 1.14.3.

### Added

- feat: EOSManager can have UserLoginInfo Provided to it
- feat: Authentication Listener knows the difference between a Connect and Auth login

### Fixed

- fix: Add isolated changes that address the Android thread IO issue.
- fix: Correct usage of FileSystemUtility in the IOSBuilder.

## [3.3.3] - 2024-09-19

### Added
Expand Down
14 changes: 7 additions & 7 deletions com.playeveryware.eos/Runtime/Core/Config/Config.cs
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ private static bool TryGetFactory<T>(out Func<Config> factory)
// Ensure static constructor of template variable type is called
RuntimeHelpers.RunClassConstructor(typeof(T).TypeHandle);

if(!s_factories.TryGetValue(typeof(T), out factory))
if (!s_factories.TryGetValue(typeof(T), out factory))
{
throw new InvalidOperationException(
$"No factory method has been registered for " +
Expand Down Expand Up @@ -567,7 +567,7 @@ private static bool IsDefault<T>(T configInstance) where T : Config
*/

return IteratePropertiesAndFields(configInstance)
.All(mInfo =>
.All(mInfo =>
GetDefaultValue(mInfo.MemberType) == mInfo.MemberValue);
}

Expand Down Expand Up @@ -693,10 +693,10 @@ public bool Equals(MemberInfo a, MemberInfo b)
{
// consider the member values to be equal if one is null and
// the other is empty
return ((a.MemberValue == null &&
((List<string>)b.MemberValue).Count == 0)
return ((a.MemberValue == null &&
((List<string>)b.MemberValue).Count == 0)
||
(((List<string>)a.MemberValue).Count == 0 &&
(((List<string>)a.MemberValue).Count == 0 &&
b.MemberValue == null));
}
else if (a.MemberType == typeof(string))
Expand All @@ -715,7 +715,7 @@ public bool Equals(MemberInfo a, MemberInfo b)
public int GetHashCode(MemberInfo memberInfo)
{
return HashCode.Combine(
memberInfo.MemberType,
memberInfo.MemberType,
memberInfo.MemberValue);
}
}
Expand All @@ -739,7 +739,7 @@ public int GetHashCode(MemberInfo memberInfo)
/// </returns>
private static IEnumerable<MemberInfo> IteratePropertiesAndFields<T>(
T instance,
BindingFlags bindingAttr =
BindingFlags bindingAttr =
BindingFlags.Public | BindingFlags.Instance)
{
// go over the properties
Expand Down
2 changes: 1 addition & 1 deletion com.playeveryware.eos/Runtime/Core/EOSPackageInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public static class EOSPackageInfo
* not involve editing source code files.
*/

public const string Version = "3.3.3";
public const string Version = "3.3.4";

public const string PackageName = "com.playeveryware.eos";
}
Expand Down
64 changes: 45 additions & 19 deletions com.playeveryware.eos/Runtime/Core/Utility/FileSystemUtility.cs
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ public class CopyFileProgressInfo
public static bool TryGetTempDirectory(out string path)
{
path = default;

// Nested local function to reduce repetitive code.
string GenerateTempPath()
{
Expand Down Expand Up @@ -211,7 +211,7 @@ string GenerateTempPath()
/// </param>
/// <returns></returns>
public static IEnumerable<string> GetDirectories(
IEnumerable<string> filepaths,
IEnumerable<string> filepaths,
bool creationOrder = true)
{
// For each filepath, determine the immediate parent directory of
Expand All @@ -223,9 +223,9 @@ public static IEnumerable<string> GetDirectories(

// skip if no parent
if (null == parent) continue;

directoriesToCreate.Add(parent);

}

// Return the list of directories to create in ascending order of
Expand Down Expand Up @@ -262,9 +262,9 @@ public static IEnumerable<string> GetDirectories(
/// <param name="cancellationToken">Cancellation token.</param>
/// <returns>Task</returns>
public static async Task CopyFilesAsync(
IList<CopyFileOperation> operations,
CancellationToken cancellationToken = default,
IProgress<CopyFileProgressInfo> progress = null,
IList<CopyFileOperation> operations,
CancellationToken cancellationToken = default,
IProgress<CopyFileProgressInfo> progress = null,
int updateIntervalMS = DefaultUpdateIntervalMS)
{
IEnumerable<string> directoriesToCreate = GetDirectories(
Expand Down Expand Up @@ -302,9 +302,9 @@ public static async Task CopyFilesAsync(
// Copy the files asynchronously with the provided
// cancellation token, and progress stuff.
await CopyFilesAsyncInternal(
operationsList,
cancellationToken,
progress,
operationsList,
cancellationToken,
progress,
progressInfo);
}
else
Expand All @@ -322,9 +322,9 @@ await CopyFilesAsyncInternal(
/// <param name="progressInfo">Progress information.</param>
/// <returns>Task</returns>
private static async Task CopyFilesAsyncInternal(
IEnumerable<CopyFileOperation> operations,
CancellationToken cancellationToken = default,
IProgress<CopyFileProgressInfo> progress = null,
IEnumerable<CopyFileOperation> operations,
CancellationToken cancellationToken = default,
IProgress<CopyFileProgressInfo> progress = null,
CopyFileProgressInfo progressInfo = default)
{
var tasks = operations.Select(async copyOperation =>
Expand Down Expand Up @@ -361,14 +361,14 @@ private static async Task CopyFilesAsyncInternal(
/// <param name="cancellationToken">Cancellation token.</param>
/// <returns>Task</returns>
private static async Task CopyFileAsync(
CopyFileOperation op,
CopyFileOperation op,
CancellationToken cancellationToken)
{
// Maximum number of times the operation is retried if it fails.
const int maxRetries = 3;

// This is the initial delay before the operation is retried.
const int delayMilliseconds = 200;
const int delayMilliseconds = 200;

for (int attempt = 0; attempt < maxRetries; attempt++)
{
Expand Down Expand Up @@ -401,7 +401,7 @@ await Task.Run(() =>
// exponentially increase the delay to maximize the chance
// it will succeed without waiting too long.
var delay = delayMilliseconds * (int)Math.Pow(2, attempt);

// Construct detailed message regarding the nature of the problem.
StringBuilder sb = new();
sb.AppendLine($"Exception occurred during the following copy operation:");
Expand Down Expand Up @@ -545,6 +545,32 @@ public static string ReadAllText(string path)
#endif

}
#endif

/// <summary>
/// Reads all text from the indicated file.
/// </summary>
/// <param name="path">Filepath to the file to read from.</param>
/// <returns>The contents of the file at the indicated path as a string.</returns>
public static string ReadAllText(string path)
{
#if UNITY_ANDROID && !UNITY_EDITOR
return AndroidFileIOHelper.ReadAllText(path);
#else
try
{
return File.ReadAllText(path);
}
catch (Exception e)
{
Debug.LogException(e);
throw;
}
#endif

}





Expand Down Expand Up @@ -685,7 +711,7 @@ private static void CreateDirectory(DirectoryInfo dInfo)
{
dInfo.Create();
}
catch(Exception ex)
catch (Exception ex)
{
Debug.LogException(ex);
}
Expand Down Expand Up @@ -790,7 +816,7 @@ public static void CleanDirectory(string directoryPath, bool ignoreGit = true)
{
// Skip .git directories
if (ignoreGit && subDir.EndsWith(".git")) { continue; }

// TODO: This is a little bit dangerous as one developer has found out. If the output directory is not
// empty, and contains directories and files unrelated to output, this will (without prompting)
// delete them. So, if you're outputting to, say the "Desktop" directory, it will delete everything
Expand Down Expand Up @@ -846,4 +872,4 @@ public static void OpenDirectory(string path)
}
#endif
}
}
}
5 changes: 5 additions & 0 deletions com.playeveryware.eos/Runtime/Core/Utility/LogLevelUtility.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,11 @@ public static List<LogLevel> LogLevelList
return null;
}

if (logLevelConfig.LogCategoryLevelPairs == null)
{
return null;
}

List<LogLevel> logLevels = new List<LogLevel>();
for (int i = 0; i < LogCategoryStringArray.Length - 1; i++)
{
Expand Down
6 changes: 3 additions & 3 deletions com.playeveryware.eos/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "com.playeveryware.eos",
"version": "3.3.3",
"version": "3.3.4",
"unity": "2021.3",
"unityRelease": "16f1",
"author": {
Expand All @@ -9,7 +9,7 @@
"url": "https://playeveryware.com"
},
"displayName": "Epic Online Services Plugin for Unity",
"description": "Friendly Plugin for Epic Online Services\n Unity 2021.3.16f1\n EOS SDK 1.16.3\n\n Dependencies for Extra Packs:\n P2P Netcode Sample : [com.unity.netcode.gameobjects] \n Performance Stress Test Sample : [com.unity.postprocessing]",
"description": "Friendly Plugin for Epic Online Services\n Unity 2021.3.16f1\n EOS SDK 1.16.4\n\n Dependencies for Extra Packs:\n P2P Netcode Sample : [com.unity.netcode.gameobjects] \n Performance Stress Test Sample : [com.unity.postprocessing]",
"documentationUrl": "https://eospluginforunity.playeveryware.com",
"dependencies": {
"com.unity.nuget.newtonsoft-json": "3.0.2",
Expand All @@ -36,6 +36,6 @@
}
],
"com_playeveryware": {
"git_build_sha": "22197e6d945978307af47c077a388d39f95a23bc"
"git_build_sha": "33dc48ffd9c173dede0297cf6d29ca66048c2ad1"
}
}
Loading