Esempio n. 1
0
        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;
                            }
                        }
                    });
                }
            });
        }
Esempio n. 2
0
        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;
                            }
                        }
                    });
                }
            });
        }
Esempio n. 3
0
 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);
     });
 }