예제 #1
0
        public void SignOutRequest(Action <bool, AN_CommonStatusCodes> resultCallback = null, bool revokeAccess = false)
        {
            if (!IsGoogleApiAvailable)
            {
                return;
            }

            var gso    = new AN_GoogleSignInOptions.Builder(AN_GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN).Build();
            var client = AN_GoogleSignIn.GetClient(gso);

            //sign out
            client.SignOut(() =>
            {
                GoogleSignedInAccount = null;
                _currentPlayerData    = null;
                resultCallback.SafeInvoke(false, AN_CommonStatusCodes.SUCCESS);

                _isSigninIgnored = true;
                PlayerPrefs.SetInt("IsSigninIgnored", 1);

                OnGPlayAuth.SafeInvoke(false);
            });

            //revoke access
            if (revokeAccess)
            {
                client.RevokeAccess(() =>
                {
                    GoogleSignedInAccount = null;
                    _currentPlayerData    = null;
                });
            }
        }
예제 #2
0
 private void PrintInfo(AN_GoogleSignInAccount account)
 {
     AN_Logger.Log("account.GetDisplayName: " + account.GetId());
     AN_Logger.Log("account.GetDisplayName: " + account.GetDisplayName());
     AN_Logger.Log("account.GetGivenName: " + account.GetGivenName());
     AN_Logger.Log("account.GetEmail: " + account.GetEmail());
     AN_Logger.Log("account.GetServerAuthCode: " + account.GetServerAuthCode());
     SetResult(SA_TestResult.OK);
 }
예제 #3
0
    private void UpdateUIWithAccount(AN_GoogleSignInAccount account)
    {
        AN_Logger.Log("account.HashCode:" + account.HashCode);
        AN_Logger.Log(account);
        AN_Logger.Log("SignIn IsSucceeded. user: " + account.GetDisplayName());

        //Display User info


        PrintSignedPlayerInfo();
    }
예제 #4
0
    private void UpdateUIWithAccount(AN_GoogleSignInAccount account)
    {
        AN_Logger.Log("account.HashCode:" + account.HashCode);
        AN_Logger.Log(account);
        AN_Logger.Log("SignIn IsSucceeded. user: "******"Disconnect";

        PrintSignedPlayerInfo();
    }
예제 #5
0
 public string GoogleSignInAccount_GetIdToken(AN_GoogleSignInAccount account)
 {
     return(AN_Java.Bridge.CallStatic <string>(AN_GoogleSignInAccount, "GetIdToken", account.HashCode));
 }
예제 #6
0
 public string GoogleSignInAccount_GetServerAuthCode(AN_GoogleSignInAccount account)
 {
     return(AN_Java.Bridge.CallStatic <string>(AN_GoogleSignInAccount, "GetServerAuthCode", account.HashCode));
 }
예제 #7
0
 public string GoogleSignInAccount_GetDisplayName(AN_GoogleSignInAccount account)
 {
     return(AN_Java.Bridge.CallStatic <string>(AN_GoogleSignInAccount, "GetDisplayName", account.HashCode));
 }
 public string GoogleSignInAccount_GetIdToken(AN_GoogleSignInAccount account)
 {
     return("Id Token Editor");
 }
 public string GoogleSignInAccount_GetServerAuthCode(AN_GoogleSignInAccount account)
 {
     return("Account Server Auth Code Editor");
 }
 public string GoogleSignInAccount_GetPhotoUrl(AN_GoogleSignInAccount account)
 {
     return(string.Empty);
 }
 public string GoogleSignInAccount_GetGivenName(AN_GoogleSignInAccount account)
 {
     return("Account Given Name Editor");
 }
 public string GoogleSignInAccount_GetEmail(AN_GoogleSignInAccount account)
 {
     return("Account Email Editor");
 }
 public string GoogleSignInAccount_GetDisplayName(AN_GoogleSignInAccount account)
 {
     return("Account Display Name Editor");
 }
        //--------------------------------------
        // AN_GoogleSignInAccount
        //--------------------------------------



        public string GoogleSignInAccount_GetId(AN_GoogleSignInAccount account)
        {
            return("editor_id");
        }
예제 #15
0
        public void SignInRequest(Action <bool, AN_CommonStatusCodes> resultCallback = null, bool ignorePrefs = false)
        {
            if (!IsGoogleApiAvailable)
            {
                return;
            }

            Debug.Log("Signing request...");

            if (IsSignedIn()) //if already signed in
            {
                resultCallback.SafeInvoke(true, AN_CommonStatusCodes.SUCCESS);
                GetSignedInPlayerData();
                ActivateGPlayPopup();

                _isSigninIgnored = false;
                PlayerPrefs.SetInt("IsSigninIgnored", 0);
                OnGPlayAuth.SafeInvoke(true);

                return;
            }

            if (!ignorePrefs)
            {
                if (_isSigninIgnored)
                {
                    resultCallback.SafeInvoke(false, AN_CommonStatusCodes.CANCELED);
                    Debug.Log("Signin Ignored!");
                    return;
                }
            }

            AN_GoogleSignInOptions.Builder builder =
                new AN_GoogleSignInOptions.Builder(AN_GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN);
            builder.RequestId();
            builder.RequestEmail();
            builder.RequestProfile();
            //builder.RequestScope(AN_Drive.SCOPE_APPFOLDER);

            var gso    = builder.Build();
            var client = AN_GoogleSignIn.GetClient(gso);

            var authStatus = AN_CommonStatusCodes.SIGN_IN_REQUIRED;

            //silent sign in
            client.SilentSignIn(signInResult =>
            {
                Debug.Log("Sign In StatusCode [silent]: " + signInResult.StatusCode);
                authStatus = signInResult.StatusCode;

                if (signInResult.IsSucceeded)
                {
                    Debug.Log("SignIn Succeeded [silent]");
                    GoogleSignedInAccount = signInResult.Account;
                    resultCallback.SafeInvoke(true, authStatus);
                    ActivateGPlayPopup();

                    //finally when signin is success, cache the player data for first time
                    if (authStatus == AN_CommonStatusCodes.SUCCESS)
                    {
                        GetSignedInPlayerData();

                        _isSigninIgnored = false;
                        PlayerPrefs.SetInt("IsSigninIgnored", 0);

                        OnGPlayAuth.SafeInvoke(true);
                    }
                }
                else
                {
                    GoogleSignedInAccount = null;
                    Debug.Log("Silent SignIn failed [silent] : " + signInResult.Error.FullMessage);

                    //interactive sign in
                    if (authStatus == AN_CommonStatusCodes.SIGN_IN_REQUIRED)
                    {
                        client.SignIn(interactiveSignInResult =>
                        {
                            authStatus = interactiveSignInResult.StatusCode;
                            Debug.Log("Sign In StatusCode [interactive]: " + interactiveSignInResult.StatusCode);

                            if (interactiveSignInResult.IsSucceeded)
                            {
                                Debug.Log("SignIn Succeeded [interactive]");
                                GoogleSignedInAccount = interactiveSignInResult.Account;
                                resultCallback.SafeInvoke(true, authStatus);
                                ActivateGPlayPopup();

                                //finally when signin is success, cache the player data for first time
                                if (authStatus == AN_CommonStatusCodes.SUCCESS)
                                {
                                    GetSignedInPlayerData();

                                    _isSigninIgnored = false;
                                    PlayerPrefs.SetInt("IsSigninIgnored", 0);

                                    OnGPlayAuth.SafeInvoke(true);
                                }
                            }
                            else
                            {
                                resultCallback.SafeInvoke(false, authStatus);
                                Debug.Log("SignIn failed [interactive]: " + interactiveSignInResult.Error.FullMessage);

                                if (authStatus == AN_CommonStatusCodes.CANCELED || authStatus == AN_CommonStatusCodes.ERROR)
                                {
                                    _isSigninIgnored = true;
                                    PlayerPrefs.SetInt("IsSigninIgnored", 1);
                                }
                            }
                        });
                    }
                }
            });

            //finally when signin is success, cache the player data for first time
            if (authStatus == AN_CommonStatusCodes.SUCCESS)
            {
                GetSignedInPlayerData();
                ActivateGPlayPopup();

                _isSigninIgnored = false;
                PlayerPrefs.SetInt("IsSigninIgnored", 0);

                OnGPlayAuth.SafeInvoke(true);
            }
        }