private void InitializeUI()
        {
            if (menuComponent == null)
            {
                menuComponent = SpawnUI <Menus.ManageAccountGUI>(StringConstants.PrefabsManageAccountMenu);
            }
            ShowUI();
            bool isAnon = auth.CurrentUser == null || auth.CurrentUser.IsAnonymous;

            menuComponent.SignedIntoEmailText.gameObject.SetActive(!isAnon);
            menuComponent.EmailText.gameObject.SetActive(!isAnon);
            menuComponent.SignedIntoAnonText.gameObject.SetActive(isAnon);
            menuComponent.AddEmailButton.gameObject.SetActive(isAnon);
            menuComponent.AddGooglePlayButton.gameObject.SetActive(SignInState.GetState() != SignInState.State.GooglePlayServices);
            menuComponent.SignOutButton.gameObject.SetActive(!isAnon);

            if (!isAnon)
            {
                string text;
                if (!string.IsNullOrEmpty(auth.CurrentUser.DisplayName))
                {
                    text = auth.CurrentUser.DisplayName + '\n';
                }
                else
                {
                    text = StringConstants.UploadScoreDefaultName + '\n';
                }
                text += auth.CurrentUser.Email;
                menuComponent.EmailText.text = text;
            }
        }
示例#2
0
 private void OnFinishSignInClicked(object o, EventArgs args)
 {
     last_sign_in_error = source.Account.FetchSessionKey();
     Hyena.Log.InformationFormat("Last.fm authorization result = {0}", last_sign_in_error);
     if (last_sign_in_error == StationError.TokenNotAuthorized)
     {
         need_authorization_checked = true;
         GetSignInState();
     }
     else if (last_sign_in_error == StationError.None)
     {
         LastfmSource.LastSessionKeySchema.Set(source.Account.SessionKey);
         source.Account.UserName = LastfmSource.LastUserSchema.Get();
         source.Account.Save();
         var streaming_addin = AddinManager.Registry.GetAddins()
                               .Single(a => a.LocalId.Equals("Banshee.LastfmStreaming"));
         if (source.Account.Subscriber &&
             streaming_addin != null &&
             !streaming_addin.Enabled)
         {
             streaming_addin.Enabled = true;
         }
         GetSignInState();
     }
     else
     {
         SignOut();
         sign_in_state = SignInState.Failed;
     }
     BuildSignIn();
 }
 public override void HandleUIEvent(GameObject source, object eventData)
 {
     if (source == dialogComponent.CreateAccountButton.gameObject)
     {
         manager.PushState(new CreateAccount());
     }
     else if (source == dialogComponent.SignInButton.gameObject)
     {
         manager.PushState(new SignInWithEmail());
     }
     else if (source == dialogComponent.AnonymousSignIn.gameObject)
     {
         manager.PushState(
             new WaitForTask(auth.SignInAnonymouslyAsync().ContinueWith(t => {
             SignInState.SetState(SignInState.State.Anonymous);
         }),
                             StringConstants.LabelSigningIn, true));
     }
     else if (source == dialogComponent.DontSignIn.gameObject)
     {
         CommonData.isNotSignedIn = true;
         manager.PopState();
     }
     else if (source == dialogComponent.GooglePlaySignIn.gameObject)
     {
         manager.PushState(
             new WaitForTask(GooglePlayServicesSignIn.SignIn(),
                             StringConstants.LabelSigningIn, true));
     }
 }
 public override void HandleUIEvent(GameObject source, object eventData)
 {
     if (source == menuComponent.AddEmailButton.gameObject)
     {
         manager.PushState(new AddEmail());
     }
     else if (source == menuComponent.SignOutButton.gameObject)
     {
         auth.SignOut();
         GooglePlayServicesSignIn.SignOut();
         SignInState.SetState(SignInState.State.SignedOut);
         manager.ClearStack(new Startup());
     }
     else if (source == menuComponent.DeleteAccountButton.gameObject)
     {
         manager.SwapState(new ConfirmationDialog(StringConstants.DeleteAccountDialogTitle,
                                                  StringConstants.DeleteAccountDialogMessage, new DeleteAccount(), null));
     }
     else if (source == menuComponent.AddGooglePlayButton.gameObject)
     {
         manager.PushState(
             new WaitForTask(GooglePlayServicesSignIn.LinkAccount(),
                             StringConstants.LabelSigningIn, true));
     }
     else if (source == menuComponent.MainButton.gameObject)
     {
         manager.PopState();
     }
 }
 private void ChangeState(SignInState state)
 {
     State = state;
     if (StateChanged != null)
     {
         StateChanged(this, new EventArgs());
     }
 }
示例#6
0
        static private void ClientSignInNotifyCBMethod(int _state, StringBuilder _reason)
        {
            SignInState st = (SignInState)_state;

            if (GetUCStateChanged != null)
            {
                GetUCStateChanged(st, _reason);
            }
        }
示例#7
0
        private void OnSignInClicked(object o, EventArgs args)
        {
            if (sign_in_state != SignInState.NeedAuthorization)
            {
                sign_in_state = SignInState.NeedAuthorization;
            }

            need_authorization_checked = !need_authorization_checked;
            BuildSignIn();

            source.Account.SessionKey = null;
            source.Account.RequestAuthorization();
        }
示例#8
0
 private void GetSignInState()
 {
     if (Authorized)
     {
         sign_in_state = SignInState.SignedIn;
     }
     else if (NeedAuthorization)
     {
         sign_in_state = SignInState.NeedAuthorization;
     }
     else
     {
         sign_in_state = SignInState.SignedOut;
     }
 }
        public LastFmScrobblingService(IPlaybackService playbackService)
        {
            this.playbackService = playbackService;

            this.playbackService.PlaybackSuccess         += PlaybackService_PlaybackSuccess;
            this.playbackService.PlaybackProgressChanged += PlaybackService_PlaybackProgressChanged;

            this.username   = SettingsClient.Get <string>("Lastfm", "Username");
            this.password   = SettingsClient.Get <string>("Lastfm", "Password");
            this.sessionKey = SettingsClient.Get <string>("Lastfm", "Key");

            if (!string.IsNullOrEmpty(this.username) && !string.IsNullOrEmpty(this.password) && !string.IsNullOrEmpty(this.sessionKey))
            {
                this.signInState = SignInState.SignedIn;
            }
            else
            {
                this.signInState = SignInState.SignedOut;
            }
        }
示例#10
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);
                        }
                        GooglePlayServicesSignIn.SignOut();
                        SignInState.SetState(SignInState.State.SignedOut);

                        manager.SwapState(new ChooseSignInMenu());
                        manager.PushState(new BasicDialog(StringConstants.DeleteAccountSuccess));
                    }
                }
            }
        }
示例#11
0
 public override void HandleUIEvent(GameObject source, object eventData)
 {
     if (source == dialogComponent.CancelButton.gameObject)
     {
         canceled = true;
         manager.PopState();
     }
     else if (source == dialogComponent.ContinueButton.gameObject)
     {
         manager.PushState(new WaitForTask(auth.SignInWithEmailAndPasswordAsync(
                                               dialogComponent.Email.text, dialogComponent.Password.text).ContinueWith(t => { SignInState.SetState(SignInState.State.Email); })));
     }
     else if (source == dialogComponent.ForgotPasswordButton.gameObject)
     {
         manager.PushState(new PasswordReset());
     }
 }
        /// <summary>
        /// UC状态改变回调函数
        /// </summary>
        /// <param name="st"></param>
        private void UCContactStateChanged(SignInState st, StringBuilder reason)
        {
            UCStatePara ucStatePara = new UCStatePara();
            ucStatePara.reason = reason;
            ucStatePara.signInState = st;

            threadUCContactStateChanged = new Thread(new ParameterizedThreadStart(UCContactStateChangedMothod));
            threadUCContactStateChanged.Priority = ThreadPriority.AboveNormal;
            threadUCContactStateChanged.Start(ucStatePara);
        }
示例#13
0
 private void GetSignInState ()
 {
     if (Authorized) {
         sign_in_state = SignInState.SignedIn;
     } else if (NeedAuthorization) {
         sign_in_state = SignInState.NeedAuthorization;
     } else {
         sign_in_state = SignInState.SignedOut;
     }
 }
示例#14
0
 private void OnFinishSignInClicked (object o, EventArgs args)
 {
     last_sign_in_error = source.Account.FetchSessionKey ();
     Hyena.Log.InformationFormat ("Last.fm authorization result = {0}", last_sign_in_error);
     if (last_sign_in_error == StationError.TokenNotAuthorized) {
         need_authorization_checked = true;
         GetSignInState ();
     } else if (last_sign_in_error == StationError.None) {
         LastfmSource.LastSessionKeySchema.Set (source.Account.SessionKey);
         source.Account.UserName = LastfmSource.LastUserSchema.Get ();
         source.Account.Save ();
         var streaming_addin = AddinManager.Registry.GetAddins ()
             .Single (a => a.LocalId.Equals ("Banshee.LastfmStreaming"));
         if (source.Account.Subscriber &&
             streaming_addin != null &&
             !streaming_addin.Enabled) {
             streaming_addin.Enabled = true;
         }
         GetSignInState ();
     } else {
         SignOut ();
         sign_in_state = SignInState.Failed;
     }
     BuildSignIn ();
 }
示例#15
0
        private void OnSignInClicked (object o, EventArgs args)
        {
            if (sign_in_state != SignInState.NeedAuthorization) {
                sign_in_state = SignInState.NeedAuthorization;
            }

            need_authorization_checked = !need_authorization_checked;
            BuildSignIn ();

            source.Account.SessionKey = null;
            source.Account.RequestAuthorization ();
        }
示例#16
0
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="state">登录状态</param>
 /// <param name="userId">用户标识</param>
 public SignInResult(SignInState state, string userId)
 {
     State  = state;
     UserId = userId;
 }
示例#17
0
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="state">登录状态</param>
 /// <param name="userId">用户标识</param>
 /// <param name="message">消息</param>
 public SignInResult(SignInState state, string userId, string message = null)
 {
     State   = state;
     UserId  = userId;
     Message = message;
 }