コード例 #1
0
 public override void Resume(StateExitValue results)
 {
     ShowUI();
     if (results != null)
     {
         if (results.sourceState == typeof(WaitForTask))
         {
             WaitForTask.Results taskResults = results.data as WaitForTask.Results;
             if (taskResults.task.IsFaulted)
             {
                 manager.PushState(new BasicDialog("Could not create account."));
             }
             else
             {
                 if (!string.IsNullOrEmpty(dialogComponent.DisplayName.text))
                 {
                     Firebase.Auth.UserProfile profile =
                         new Firebase.Auth.UserProfile();
                     profile.DisplayName = dialogComponent.DisplayName.text;
                     // We are fine with this happening in the background,
                     // so just return to the previous state after triggering the update.
                     auth.CurrentUser.UpdateUserProfileAsync(profile);
                 }
                 manager.PopState();
             }
         }
     }
 }
コード例 #2
0
        public override void Resume(StateExitValue results)
        {
            ShowUI();

            // SignInResult is used with a email/password, while WaitForTask.Results
            // is used when signing in with an anonymous account.
            SignInResult result = results.data as SignInResult;

            WaitForTask.Results taskResult = results.data as WaitForTask.Results;

            if ((result != null && !result.Canceled) ||
                (taskResult != null && !taskResult.task.IsCanceled))
            {
                if (auth.CurrentUser != null)
                {
                    CommonData.isNotSignedIn = false;
                    manager.PopState();
                }
                else
                {
                    manager.PushState(new BasicDialog(
                                          Utilities.StringHelper.SigninInFailureString(taskResult.task)));
                }
            }
        }
コード例 #3
0
        public override void Resume(StateExitValue results)
        {
            ShowUI();
            if (results != null)
            {
                if (results.sourceState == typeof(WaitForTask))
                {
                    WaitForTask.Results taskResults = results.data as WaitForTask.Results;
                    if (taskResults.task.IsFaulted)
                    {
                        manager.SwapState(new ManageAccount());
                        manager.PushState(new BasicDialog(StringConstants.DeleteAccountFail +
                                                          taskResults.task.Exception.ToString()));
                    }
                    else
                    {
                        // Delete the user's profile data:
                        string           path     = CommonData.DBUserTablePath + userId;
                        FirebaseDatabase database = FirebaseDatabase.GetInstance(CommonData.app);

                        // Delete all maps associated with this user:
                        database.GetReference(path).SetValueAsync(null);
                        foreach (MapListEntry map in CommonData.currentUser.data.maps)
                        {
                            path = CommonData.DBMapTablePath + map.mapId;
                            database.GetReference(path).SetValueAsync(null);
                        }
                        manager.SwapState(new ChooseSignInMenu());
                        manager.PushState(new BasicDialog(StringConstants.DeleteAccountSuccess));
                    }
                }
            }
        }
コード例 #4
0
        public override void Resume(StateExitValue results)
        {
            InitializeUI();

            if (results != null)
            {
                if (results.sourceState == typeof(WaitForTask))
                {
                    WaitForTask.Results taskResults = results.data as WaitForTask.Results;
                    if (taskResults.task.IsFaulted)
                    {
                        manager.PushState(new BasicDialog(
                                              Utilities.StringHelper.SigninInFailureString(taskResults.task)));
                    }
                }
            }
        }
コード例 #5
0
 public override void Resume(StateExitValue results)
 {
     ShowUI();
     if (results != null)
     {
         WaitForTask.Results taskResults = results.data as WaitForTask.Results;
         if (taskResults != null && taskResults.task.IsFaulted)
         {
             manager.PushState(new BasicDialog(
                                   Utilities.StringHelper.SigninInFailureString(taskResults.task)));
         }
         else
         {
             manager.PopState();
         }
     }
 }
コード例 #6
0
        public override void Resume(StateExitValue results)
        {
            CommonData.mainCamera.mode = CameraController.CameraMode.Gameplay;
            if (results != null)
            {
                if (results.sourceState == typeof(WaitForTask))
                {
                    WaitForTask.Results resultData = results.data as WaitForTask.Results;

                    var task =
                        resultData.task as System.Threading.Tasks.Task <List <TimeData> >;
                    if (task != null)
                    {
                        DisplayTimes = task.Result;
                    }
                }
            }
            InitializeUI();
        }
コード例 #7
0
 public override void Resume(StateExitValue results)
 {
     ShowUI();
     if (results != null)
     {
         if (results.sourceState == typeof(WaitForTask))
         {
             WaitForTask.Results taskResults = results.data as WaitForTask.Results;
             if (taskResults.task.IsFaulted)
             {
                 manager.SwapState(new BasicDialog(StringConstants.SignInPasswordResetError));
             }
             else
             {
                 manager.SwapState(new BasicDialog(string.Format(
                                                       StringConstants.SignInPasswordReset, dialogComponent.Email.text)));
             }
         }
     }
 }
コード例 #8
0
        public override void Resume(StateExitValue results)
        {
            CommonData.mainCamera.mode = CameraController.CameraMode.Gameplay;
            if (results != null)
            {
                if (results.sourceState == typeof(WaitForTask))
                {
                    WaitForTask.Results resultData = results.data as WaitForTask.Results;

                    if (resultData.task.IsFaulted)
                    {
                        Debug.LogException(resultData.task.Exception);
                        manager.SwapState(new BasicDialog(StringConstants.UploadError));
                        return;
                    }

                    TimeUploaded = true;
                    Firebase.Analytics.FirebaseAnalytics.LogEvent(
                        StringConstants.AnalyticsEventTimeUploadFinished,
                        StringConstants.AnalyticsParamMapId, CommonData.gameWorld.worldMap.mapId);

                    // Show the top times for the level, highlighting which one was just uploaded.
                    var task =
                        resultData.task as System.Threading.Tasks.Task <List <UserScore> >;
                    List <UserScore> times = null;
                    if (task != null)
                    {
                        times = task.Result;
                    }
                    manager.SwapState(new TopTimes(times));
                    return;
                }
            }
            // This is a passthrough state, so if we are still the top, pop ourselves.
            if (manager.CurrentState() == this)
            {
                manager.PopState();
            }
        }