void ReleaseDesignerOutlets() { if (ActivityIndicator != null) { ActivityIndicator.Dispose(); ActivityIndicator = null; } if (DoneCard != null) { DoneCard.Dispose(); DoneCard = null; } if (EmailTextField != null) { EmailTextField.Dispose(); EmailTextField = null; } if (ErrorLabel != null) { ErrorLabel.Dispose(); ErrorLabel = null; } if (ResetPasswordButton != null) { ResetPasswordButton.Dispose(); ResetPasswordButton = null; } if (ResetPasswordButtonBottomConstraint != null) { ResetPasswordButtonBottomConstraint.Dispose(); ResetPasswordButtonBottomConstraint = null; } if (TopConstraint != null) { TopConstraint.Dispose(); TopConstraint = null; } if (SuccessMessageLabel != null) { SuccessMessageLabel.Dispose(); SuccessMessageLabel = null; } }
public override void ViewDidLoad() { base.ViewDidLoad(); Title = Resources.LoginForgotPassword; ResetPasswordButton.SetTitle(Resources.GetPasswordResetLink, UIControlState.Normal); EmailTextField.Placeholder = Resources.EmailAddress; SuccessMessageLabel.Text = Resources.PasswordResetSuccess; prepareViews(); //Text ViewModel.ErrorMessage .Subscribe(errorMessage => { ErrorLabel.Text = errorMessage; ErrorLabel.Hidden = string.IsNullOrEmpty(errorMessage); }) .DisposedBy(DisposeBag); EmailTextField.Rx().Text() .Select(Email.From) .Subscribe(ViewModel.Email.OnNext) .DisposedBy(DisposeBag); ViewModel.Reset.Executing .Subscribe(loading => { UIView.Transition( ResetPasswordButton, Animation.Timings.EnterTiming, UIViewAnimationOptions.TransitionCrossDissolve, () => ResetPasswordButton.SetTitle(loading ? "" : Resources.GetPasswordResetLink, UIControlState.Normal), null ); }) .DisposedBy(DisposeBag); //Visibility ViewModel.PasswordResetSuccessful .Subscribe(DoneCard.Rx().IsVisibleWithFade()) .DisposedBy(DisposeBag); ViewModel.PasswordResetSuccessful .Invert() .Subscribe(ResetPasswordButton.Rx().IsVisibleWithFade()) .DisposedBy(DisposeBag); ViewModel.PasswordResetSuccessful .Where(s => s == false) .Subscribe(_ => EmailTextField.BecomeFirstResponder()) .DisposedBy(DisposeBag); ViewModel.Reset.Executing .Subscribe(ActivityIndicator.Rx().IsVisibleWithFade()) .DisposedBy(DisposeBag); //Commands ResetPasswordButton.Rx() .BindAction(ViewModel.Reset) .DisposedBy(DisposeBag); }