Esempio n. 1
0
        protected virtual void Login()
        {
            Loading loading           = null;
            IAsyncTask <Account> task = this.viewModel.Login();

            task.OnPreExecute(() => {
                loading = Loading.Show();
                this.loginCommand.Enabled = false;                /*by databinding, auto set button.interactable = false. */
            }).OnPostExecute((account) => {
                if (account != null)
                {
                    /* login success */
                    this.Dismiss();
                    this.RaiseOnLoginFinish(true, account);
                }
                else
                {
                    /* Login failure */
                    var tipContent = this.localization.GetText("login.failure.tip", "Login failure.");
                    Toast.Show(this, tipContent, 2f);
                }
            }).OnError(e => {
                if (log.IsErrorEnabled)
                {
                    log.Error("OnError:" + e.StackTrace);
                }

                var tipContent = this.localization.GetText("login.exception.tip", "Login exception.");
                Toast.Show(this, tipContent, 2f);
            }).OnFinish(() => {
                loading.Dispose();
                this.loginCommand.Enabled = true;                /*by databinding, auto set button.interactable = true. */
            }).Start();
        }