private void StartSingInFlowternal(Action <SA_Result> callback) { AN_Logger.Log("UM_AndroidSignInClient, starting siglent sing-in"); SignInClient.SilentSignIn((silentSignInResult) => { if (silentSignInResult.IsSucceeded) { AN_Logger.Log("UM_AndroidSignInClient, siglent sing-in Succeeded"); RetrivePlayer(callback); } else { AN_Logger.Log("UM_AndroidSignInClient, siglent sing-in Failed"); AN_Logger.Log("UM_AndroidSignInClient, starting interactive sing-in"); SignInClient.SignIn((interactiveSignInResult) => { AN_Logger.Log("UM_AndroidSignInClient, interactive sing-in completed"); if (interactiveSignInResult.IsSucceeded) { AN_Logger.Log("UM_AndroidSignInClient, interactive sing-in succeeded"); RetrivePlayer(callback); } else { AN_Logger.Log("UM_AndroidSignInClient, interactive sing-in failed"); int errorCode = interactiveSignInResult.Error.Code; switch (errorCode) { //Retry may solve the issue case (int)AN_CommonStatusCodes.NETWORK_ERROR: //in some cases it may cause a loop //case (int)AN_CommonStatusCodes.INTERNAL_ERROR: case (int)AN_CommonStatusCodes.FAILED_ACTIVITY_ERROR: //Let's see if we tried to do it before if (m_resolvedErrors.Contains(errorCode)) { AN_Logger.Log("UM_AndroidSignInClient, sending fail result"); callback.Invoke(new SA_Result(interactiveSignInResult.Error)); } else { //Nope, this is new one, let's try to resolve it AN_Logger.Log("Trying to resolved failed sigin-in result with code: " + errorCode); StartSingInFlowternal(callback); } break; default: AN_Logger.Log("UM_AndroidSignInClient, sending fail result"); callback.Invoke(new SA_Result(interactiveSignInResult.Error)); break; } } }); } }); }
private void StartSingInFlowInternal(Action <SA_Result> callback) { AN_Logger.Log("UM_AndroidSignInClient, starting silent sing-in"); SignInClient.SilentSignIn(silentSignInResult => { if (silentSignInResult.IsSucceeded) { AN_Logger.Log("UM_AndroidSignInClient, silent sing-in Succeeded"); RetrievePlayer(callback); } else { AN_Logger.Log("UM_AndroidSignInClient, silent sing-in Failed"); AN_Logger.Log("UM_AndroidSignInClient, starting interactive sing-in"); SignInClient.SignIn(interactiveSignInResult => { AN_Logger.Log("UM_AndroidSignInClient, interactive sing-in completed"); if (interactiveSignInResult.IsSucceeded) { AN_Logger.Log("UM_AndroidSignInClient, interactive sing-in succeeded"); RetrievePlayer(callback); } else { AN_Logger.Log("UM_AndroidSignInClient, interactive sing-in failed"); var errorCode = interactiveSignInResult.Error.Code; switch (errorCode) { //Retry may solve the issue case (int)AN_CommonStatusCodes.NETWORK_ERROR: case (int)AN_GoogleSignInStatusCodes.SIGN_IN_CURRENTLY_IN_PROGRESS: m_ResolvedErrors.Add(errorCode); //Let's see if we tried to do it before if (m_ResolvedErrors.Contains(errorCode)) { AN_Logger.Log("UM_AndroidSignInClient, sending fail result"); callback.Invoke(new SA_Result(interactiveSignInResult.Error)); } else { //Nope, this is new one, let's try to resolve it AN_Logger.Log("Trying to resolved failed sigin-in result with code: " + errorCode); StartSingInFlowInternal(callback); } break; default: AN_Logger.Log("UM_AndroidSignInClient, sending fail result"); callback.Invoke(new SA_Result(interactiveSignInResult.Error)); break; } } }); } }); }
protected void InteractiveSignIn(Action <AN_GoogleSignInResult> result) { AN_Logger.Log("Starting the Interactive Sign in flow"); SignInClient.SignIn((signInResult) => { AN_Logger.Log("Sign In StatusCode: " + signInResult.StatusCode); if (signInResult.IsSucceeded) { PrintInfo(signInResult.Account); } result.Invoke(signInResult); }); }