Skip to content
This repository was archived by the owner on Nov 16, 2023. It is now read-only.

Commit ffa2d3d

Browse files
authored
Fixing Canceled Sign In Bug (#249)
1 parent 01b69e1 commit ffa2d3d

File tree

3 files changed

+38
-17
lines changed

3 files changed

+38
-17
lines changed

Assets/Xbox Live/Scripts/PlayerAuthentication.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -280,13 +280,15 @@ private void OnPlayerSignIn(XboxLiveUser xboxLiveUser, XboxLiveAuthStatus authSt
280280
}
281281
else
282282
{
283-
ExceptionManager.Instance.ThrowException(
284-
ExceptionSource.PlayerAuthentication,
285-
ExceptionType.SignInFailed,
286-
new Exception(errorMessage));
287-
this.signInPanel.GetComponentInChildren<Button>().interactable = true;
288-
this.AllowSignInAttempt = true;
283+
if (authStatus != XboxLiveAuthStatus.Canceled)
284+
{
285+
ExceptionManager.Instance.ThrowException(
286+
ExceptionSource.PlayerAuthentication,
287+
ExceptionType.SignInFailed,
288+
new Exception(errorMessage));
289+
}
289290
}
291+
this.ExecuteOnMainThread.Enqueue(Refresh);
290292
}
291293

292294
private void Refresh()

Assets/Xbox Live/Scripts/SignInManager.cs

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -83,20 +83,38 @@ public IEnumerator SignInPlayer(int playerNumber)
8383
{
8484
if (task.Status == TaskStatus.RanToCompletion)
8585
{
86-
playerInfo.WindowsUser = task.Result;
87-
playerInfo.XboxLiveUser = new XboxLiveUser(playerInfo.WindowsUser);
88-
XboxLiveUser.SignOutCompleted += XboxLiveUserSignOutCompleted;
89-
this.PlayersPendingSignIn.Add(playerNumber);
90-
userPicked = true;
86+
if (task.Result != null)
87+
{
88+
playerInfo.WindowsUser = task.Result;
89+
playerInfo.XboxLiveUser = new XboxLiveUser(playerInfo.WindowsUser);
90+
XboxLiveUser.SignOutCompleted += XboxLiveUserSignOutCompleted;
91+
this.PlayersPendingSignIn.Add(playerNumber);
92+
userPicked = true;
93+
}
94+
else {
95+
userPicked = false;
96+
NotifyAllCallbacks(playerNumber, null, XboxLiveAuthStatus.Canceled, "Sign In Failed: Player " + playerNumber + " failed. Status: Canceled by the User.");
97+
}
9198
}
9299
else
93100
{
94-
ExceptionManager.Instance.ThrowException(
95-
ExceptionSource.SignInManager,
96-
ExceptionType.SignInFailed,
97-
task.Exception);
98-
userPicked = false;
99-
101+
if (task.Status == TaskStatus.Canceled)
102+
{
103+
userPicked = false;
104+
NotifyAllCallbacks(playerNumber, null, XboxLiveAuthStatus.Canceled, "Sign In Failed: Player " + playerNumber + " failed. Status: Canceled by the User.");
105+
}
106+
else
107+
{
108+
if (task.Status == TaskStatus.Faulted)
109+
{
110+
ExceptionManager.Instance.ThrowException(
111+
ExceptionSource.SignInManager,
112+
ExceptionType.SignInFailed,
113+
task.Exception);
114+
userPicked = false;
115+
NotifyAllCallbacks(playerNumber, null, XboxLiveAuthStatus.Failed, "Sign In Failed: Player " + playerNumber + " failed.");
116+
}
117+
}
100118
}
101119
});
102120
if (userPicked) {

Assets/Xbox Live/Scripts/XboxLiveAuthStatus.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ public enum XboxLiveAuthStatus
77
{
88
Unknown,
99
Succeeded,
10+
Canceled,
1011
Unsupported,
1112
Invalid,
1213
Failed

0 commit comments

Comments
 (0)