Fix API potentially getting stuck in connecting state

This commit is contained in:
Salman Ahmed 2020-12-18 03:06:28 +03:00
parent 9c22753f3f
commit 8a01e567a1
1 changed files with 18 additions and 7 deletions

View File

@ -145,16 +145,14 @@ private void run()
failureCount = 0;
var friendsReq = new GetFriendsRequest();
friendsReq.Success += f =>
fetchFriends(() =>
{
Friends.AddRange(f);
//we're connected!
state.Value = APIState.Online;
};
handleRequest(friendsReq);
}, () =>
{
state.Value = APIState.Failing;
});
};
if (!handleRequest(userReq))
@ -255,6 +253,19 @@ public RegistrationRequest.RegistrationRequestErrors CreateAccount(string email,
return null;
}
private void fetchFriends(Action onSuccess, Action onFail)
{
var friendsReq = new GetFriendsRequest();
friendsReq.Success += res =>
{
Friends.AddRange(res);
onSuccess?.Invoke();
};
if (!handleRequest(friendsReq))
onFail?.Invoke();
}
/// <summary>
/// Handle a single API request.
/// Ensures all exceptions are caught and dealt with correctly.