public void OnClick(View view) { if (view.Id == DemoButton.Id) { ServerName.Text = Constants.Localhost; Username.Text = "admin1"; Password.Text = "123"; RememberMe.Checked = false; } else { var data = new object[] { null, null, ServerName.Text }; AuthorizationManager.SetAuthorization(data); } LoginModel.ServerName = ServerName.Text; LoginModel.Username = Username.Text; LoginModel.Password = Password.Text; LoginModel.RememberMe = RememberMe.Checked; var token = CancelAndSetTokenForView(view); SetEnabled(false); var animationFadeOut = AnimationUtils.LoadAnimation(Context, Android.Resource.Animation.FadeOut); animationFadeOut.Duration = 500; var animationFadeIn = AnimationUtils.LoadAnimation(Context, Android.Resource.Animation.FadeIn); animationFadeIn.Duration = 500; animationFadeIn.SetAnimationListener(new VisibilityAnimationListener(LoginProgressBar, ViewStates.Visible)); animationFadeOut.SetAnimationListener(new VisibilityAnimationListener(LoginLayout, ViewStates.Invisible)); LoginLayout.StartAnimation(animationFadeOut); LoginProgressBar.StartAnimation(animationFadeIn); OnServerProvidedListener.OnServerProvided(LoginModel.ServerName); Task.Run(async() => { HttpResult <string> result = null; try { result = await AuthService.Login(LoginModel, token); } catch (System.Exception ex) { RunOnUiThread(() => { ShowToastMessage(ex.Message, ToastLength.Long); }); return; } if (result.Error.Any()) { var errorMessage = result.Error.Select(kv => kv.Value.FirstOrDefault()).FirstOrDefault() ?? "An error occurred"; RunOnUiThread(() => { ShowToastMessage(errorMessage); animationFadeOut.Cancel(); animationFadeIn.Cancel(); animationFadeIn.SetAnimationListener(new VisibilityAnimationListener(LoginLayout, ViewStates.Visible)); animationFadeOut.SetAnimationListener(new VisibilityAnimationListener(LoginProgressBar, ViewStates.Invisible)); LoginProgressBar.StartAnimation(animationFadeOut); LoginLayout.StartAnimation(animationFadeIn); SetEnabled(true); }); return; } RunOnUiThread(() => { animationFadeOut.Cancel(); animationFadeIn.Cancel(); animationFadeIn.SetAnimationListener(new VisibilityAnimationListener(LoginLayout, ViewStates.Visible)); animationFadeOut.SetAnimationListener(new VisibilityAnimationListener(LoginProgressBar, ViewStates.Invisible)); LoginProgressBar.StartAnimation(animationFadeOut); LoginLayout.StartAnimation(animationFadeIn); SetEnabled(true); if (LoginModel.RememberMe) { PersistenceProvider.SetCredentials(LoginModel); } else { PersistenceProvider.ClearCredentials(); } OnLoginListener.OnLogin(LoginModel, result.Data); }); }, token); }