Example #1
0
 public static AppCenterTask <UserInformation> SignInAsync()
 {
     if (_signInTask != null)
     {
         var localSignInTask = new AppCenterTask <UserInformation>();
         var exception       = new Exception("Sign-in already in progress");
         localSignInTask.SetException(exception);
         return(localSignInTask);
     }
     else
     {
         // Create a local variable to avoid race condition
         var localSignInTask = new AppCenterTask <UserInformation>();
         _signInTask = localSignInTask;
         appcenter_unity_auth_sign_in_with_completion_handler(SignInCompletionHandlerNativeFunc);
         return(localSignInTask);
     }
 }
Example #2
0
 public static void SignInCompletionHandlerNativeFunc(IntPtr userInformationPtr, IntPtr nsErrorPtr)
 {
     if (_signInTask == null)
     {
         return;
     }
     else
     {
         var userInformation = GetUserInformationFromIntPtr(userInformationPtr);
         if (nsErrorPtr == IntPtr.Zero)
         {
             _signInTask.SetResult(userInformation);
         }
         else
         {
             _signInTask.SetException(NSErrorHelper.ToSystemException(nsErrorPtr));
         }
         _signInTask = null;
     }
 }
Example #3
0
        public static AppCenterTask <UserInformation> SignInAsync()
        {
            var future     = _auth.CallStatic <AndroidJavaObject>("signIn");
            var javaTask   = new AppCenterTask <AndroidJavaObject>(future);
            var signInTask = new AppCenterTask <UserInformation>();

            javaTask.ContinueWith(t =>
            {
                var exception = t.Result.Call <AndroidJavaObject>("getException");
                if (exception == null)
                {
                    var userInfo    = t.Result.Call <AndroidJavaObject>("getUserInformation");
                    var accountId   = userInfo.Call <string>("getAccountId");
                    var accessToken = userInfo.Call <string>("getAccessToken");
                    var idToken     = userInfo.Call <string>("getIdToken");
                    signInTask.SetResult(new UserInformation(accountId, accessToken, idToken));
                }
                else
                {
                    signInTask.SetException(ConvertException(exception));
                }
            });
            return(signInTask);
        }