public override void ViewDidLoad() { base.ViewDidLoad(); Title = "Login"; Logo.Image = Images.Misc.GitHubLogo; if (Username != null) { User.Text = Username; } User.ShouldReturn = delegate { Password.BecomeFirstResponder(); return(true); }; Password.ShouldReturn = delegate { Password.ResignFirstResponder(); //Run this in another thread ThreadPool.QueueUserWorkItem(delegate { BeginLogin(); }); return(true); }; }
public override void ViewDidLoad() { base.ViewDidLoad(); ViewModel.WhenAnyValue(x => x.Username).Subscribe(x => User.Text = x); ViewModel.WhenAnyValue(x => x.Password).Subscribe(x => Password.Text = x); ViewModel.WhenAnyValue(x => x.Domain).Subscribe(x => Domain.Text = x); User.EditingChanged += (sender, args) => ViewModel.Username = User.Text; Password.EditingChanged += (sender, args) => ViewModel.Password = Password.Text; Domain.EditingChanged += (sender, args) => ViewModel.Domain = Domain.Text; LoginButton.TouchUpInside += (sender, args) => ViewModel.LoginCommand.Execute(null); ViewModel.LoginCommand.IsExecuting.Subscribe(x => { if (x) { StatusIndicatorService.Show("Logging in..."); } else { StatusIndicatorService.Hide(); } }); View.BackgroundColor = UIColor.FromRGB(239, 239, 244); Logo.Image = Images.StashLogo; LoginButton.SetTitleColor(UIColor.Black, UIControlState.Normal); LoginButton.SetBackgroundImage(Images.GreyButton.CreateResizableImage(new UIEdgeInsets(18, 18, 18, 18)), UIControlState.Normal); //Set some generic shadowing LoginButton.Layer.ShadowColor = UIColor.Black.CGColor; LoginButton.Layer.ShadowOffset = new SizeF(0, 1); LoginButton.Layer.ShadowOpacity = 0.3f; Domain.ShouldReturn = delegate { User.BecomeFirstResponder(); return(true); }; User.ShouldReturn = delegate { Password.BecomeFirstResponder(); return(true); }; Password.ShouldReturn = delegate { Password.ResignFirstResponder(); LoginButton.SendActionForControlEvents(UIControlEvent.TouchUpInside); return(true); }; ScrollView.ContentSize = new SizeF(View.Frame.Width, LoginButton.Frame.Bottom + 10f); }
public override void ViewDidLoad() { base.ViewDidLoad(); Logo.Image = Images.Logos.GitHub; if (_enterprise) { LoginButton.SetTitleColor(UIColor.White, UIControlState.Normal); LoginButton.SetBackgroundImage(Images.Buttons.BlackButton.CreateResizableImage(new UIEdgeInsets(18, 18, 18, 18)), UIControlState.Normal); } else { LoginButton.SetBackgroundImage(Images.Buttons.GreyButton.CreateResizableImage(new UIEdgeInsets(18, 18, 18, 18)), UIControlState.Normal); //Hide the domain, slide everything up Domain.Hidden = true; var f = User.Frame; f.Y -= 39; User.Frame = f; var p = Password.Frame; p.Y -= 39; Password.Frame = p; var l = LoginButton.Frame; l.Y -= 39; LoginButton.Frame = l; } //Set some generic shadowing LoginButton.Layer.ShadowColor = UIColor.Black.CGColor; LoginButton.Layer.ShadowOffset = new SizeF(0, 1); LoginButton.Layer.ShadowOpacity = 0.3f; if (_attemptedAccount != null) { Domain.Text = _attemptedAccount.Domain; User.Text = _attemptedAccount.Username; } Domain.ShouldReturn = delegate { User.BecomeFirstResponder(); return(true); }; User.ShouldReturn = delegate { Password.BecomeFirstResponder(); return(true); }; Password.ShouldReturn = delegate { Password.ResignFirstResponder(); InvokeOnMainThread(() => DoLogin()); return(true); }; LoginButton.TouchUpInside += (object sender, EventArgs e) => DoLogin(); ScrollView.ContentSize = new SizeF(View.Frame.Width, LoginButton.Frame.Bottom + 10f); }
public override void ViewDidLoad() { base.ViewDidLoad(); Title = "Login"; View.BackgroundColor = EnterpriseBackgroundColor; Logo.Image = Images.Logos.EnterpriseMascot; LoginButton.SetBackgroundImage(Images.Buttons.BlackButton.CreateResizableImage(new UIEdgeInsets(18, 18, 18, 18)), UIControlState.Normal); LoginButton.Enabled = true; //Set some generic shadowing LoginButton.Layer.ShadowColor = UIColor.Black.CGColor; LoginButton.Layer.ShadowOffset = new CGSize(0, 1); LoginButton.Layer.ShadowOpacity = 0.3f; var attributes = new UIStringAttributes { ForegroundColor = UIColor.LightGray, }; Domain.AttributedPlaceholder = new NSAttributedString("Domain", attributes); User.AttributedPlaceholder = new NSAttributedString("Username", attributes); Password.AttributedPlaceholder = new NSAttributedString("Password", attributes); foreach (var i in new [] { Domain, User, Password }) { i.Layer.BorderColor = UIColor.Black.CGColor; i.Layer.BorderWidth = 1; i.Layer.CornerRadius = 4; } Domain.ShouldReturn = delegate { User.BecomeFirstResponder(); return(true); }; User.ShouldReturn = delegate { Password.BecomeFirstResponder(); return(true); }; Password.ShouldReturn = delegate { Password.ResignFirstResponder(); LoginButton.SendActionForControlEvents(UIControlEvent.TouchUpInside); return(true); }; OnActivation(d => { d(User.GetChangedObservable().Subscribe(x => ViewModel.Username = x)); d(Password.GetChangedObservable().Subscribe(x => ViewModel.Password = x)); d(Domain.GetChangedObservable().Subscribe(x => ViewModel.Domain = x)); d(LoginButton.GetClickedObservable().BindCommand(ViewModel.LoginCommand)); d(ViewModel.Bind(x => x.IsLoggingIn).SubscribeStatus("Logging in...")); d(ViewModel.LoginCommand.ThrownExceptions.Subscribe(HandleLoginException)); }); }
public override void ViewDidLoad() { base.ViewDidLoad(); Username.BackgroundColor = ComponentBackgroundColor; Username.AttributedPlaceholder = new Foundation.NSAttributedString("Username", foregroundColor: ComponentPlaceholderColor); Username.TextColor = ComponentTextColor; Username.EditingChanged += (sender, args) => ViewModel.Username = Username.Text; ViewModel.WhenAnyValue(x => x.Username).Subscribe(x => Username.Text = x); Password.BackgroundColor = ComponentBackgroundColor; Password.AttributedPlaceholder = new Foundation.NSAttributedString("Password", foregroundColor: ComponentPlaceholderColor); Password.TextColor = ComponentTextColor; Password.EditingChanged += (sender, args) => ViewModel.Password = Password.Text; ViewModel.WhenAnyValue(x => x.Password).Subscribe(x => Password.Text = x); Domain.BackgroundColor = ComponentBackgroundColor; Domain.AttributedPlaceholder = new Foundation.NSAttributedString("Domain", foregroundColor: ComponentPlaceholderColor); Domain.TextColor = ComponentTextColor; Domain.EditingChanged += (sender, args) => ViewModel.Domain = Domain.Text; ViewModel.WhenAnyValue(x => x.Domain).Subscribe(x => Domain.Text = x); LoginButton.TouchUpInside += (sender, args) => ViewModel.LoginCommand.ExecuteIfCan(); ViewModel.LoginCommand.CanExecuteObservable.Subscribe(x => LoginButton.Enabled = x); View.BackgroundColor = BackgroundColor; LogoImageView.Image = Images.Logos.Enterprise; LoginButton.SetTitleColor(ComponentTextColor, UIControlState.Normal); LoginButton.SetBackgroundImage(Images.Buttons.BlackButton.CreateResizableImage(new UIEdgeInsets(18, 18, 18, 18)), UIControlState.Normal); //Set some generic shadowing LoginButton.Layer.ShadowColor = UIColor.Black.CGColor; LoginButton.Layer.ShadowOffset = new CGSize(0, 1); LoginButton.Layer.ShadowOpacity = 0.2f; Domain.ShouldReturn = delegate { Username.BecomeFirstResponder(); return(true); }; Username.ShouldReturn = delegate { Password.BecomeFirstResponder(); return(true); }; Password.ShouldReturn = delegate { Password.ResignFirstResponder(); LoginButton.SendActionForControlEvents(UIControlEvent.TouchUpInside); return(true); }; this.ViewportObservable().Subscribe(x => ScrollView.Frame = x); ImageHeight.Constant = UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad ? 192 : 86; }
public override void ViewDidLoad() { var set = this.CreateBindingSet <AddAccountView, AddAccountViewModel>(); set.Bind(User).To(x => x.Username); set.Bind(Password).To(x => x.Password); set.Bind(Domain).To(x => x.Domain); set.Bind(LoginButton).To(x => x.LoginCommand); set.Apply(); base.ViewDidLoad(); ViewModel.Bind(x => x.IsLoggingIn, x => { if (x) { _hud.Show("Logging in..."); } else { _hud.Hide(); } }); View.BackgroundColor = UIColor.FromRGB(239, 239, 244); Logo.Image = Images.Logos.GitHub; if (ViewModel.IsEnterprise) { LoginButton.SetTitleColor(UIColor.White, UIControlState.Normal); LoginButton.SetBackgroundImage(Images.Buttons.BlackButton.CreateResizableImage(new UIEdgeInsets(18, 18, 18, 18)), UIControlState.Normal); } else { LoginButton.SetBackgroundImage(Images.Buttons.GreyButton.CreateResizableImage(new UIEdgeInsets(18, 18, 18, 18)), UIControlState.Normal); //Hide the domain, slide everything up Domain.Hidden = true; var f = User.Frame; f.Y -= 39; User.Frame = f; var p = Password.Frame; p.Y -= 39; Password.Frame = p; var l = LoginButton.Frame; l.Y -= 39; LoginButton.Frame = l; } //Set some generic shadowing LoginButton.Layer.ShadowColor = UIColor.Black.CGColor; LoginButton.Layer.ShadowOffset = new SizeF(0, 1); LoginButton.Layer.ShadowOpacity = 0.3f; Domain.ShouldReturn = delegate { User.BecomeFirstResponder(); return(true); }; User.ShouldReturn = delegate { Password.BecomeFirstResponder(); return(true); }; Password.ShouldReturn = delegate { Password.ResignFirstResponder(); LoginButton.SendActionForControlEvents(UIControlEvent.TouchUpInside); return(true); }; ScrollView.ContentSize = new SizeF(View.Frame.Width, LoginButton.Frame.Bottom + 10f); }
public override void ViewDidLoad() { Title = "Login"; NavigationItem.LeftBarButtonItem = new UIBarButtonItem(Images.BackButton, UIBarButtonItemStyle.Plain, (s, e) => ViewModel.DismissCommand.ExecuteIfCan()); base.ViewDidLoad(); ViewModel.LoginCommand.IsExecuting.Skip(1).Subscribe(x => { if (x) { _statusIndicatorService.Show("Logging in..."); } else { _statusIndicatorService.Hide(); } }); ViewModel.LoginCommand.ThrownExceptions.Subscribe(x => { if (x is LoginService.TwoFactorRequiredException) { _alertDialogService.PromptTextBox("Two Factor Authentication", "This account requires a two factor authentication code", string.Empty, "Ok") .ContinueWith(t => { ViewModel.TwoFactor = t.Result; ViewModel.LoginCommand.ExecuteIfCan(); }, TaskContinuationOptions.OnlyOnRanToCompletion); } }); User.ValueChanged += (sender, args) => ViewModel.Username = User.Text; ViewModel.WhenAnyValue(x => x.Username).Subscribe(x => User.Text = x); Password.ValueChanged += (sender, args) => ViewModel.Password = Password.Text; ViewModel.WhenAnyValue(x => x.Password).Subscribe(x => Password.Text = x); Domain.ValueChanged += (sender, args) => ViewModel.Domain = Domain.Text; ViewModel.WhenAnyValue(x => x.Domain).Subscribe(x => Domain.Text = x); LoginButton.TouchUpInside += (sender, args) => ViewModel.LoginCommand.ExecuteIfCan(); View.BackgroundColor = UIColor.FromRGB(239, 239, 244); Logo.Image = Images.Logos.GitHub; if (ViewModel.IsEnterprise) { LoginButton.SetTitleColor(UIColor.White, UIControlState.Normal); LoginButton.SetBackgroundImage(Images.Buttons.BlackButton.CreateResizableImage(new UIEdgeInsets(18, 18, 18, 18)), UIControlState.Normal); } else { LoginButton.SetBackgroundImage(Images.Buttons.GreyButton.CreateResizableImage(new UIEdgeInsets(18, 18, 18, 18)), UIControlState.Normal); //Hide the domain, slide everything up Domain.Hidden = true; var f = User.Frame; f.Y -= 39; User.Frame = f; var p = Password.Frame; p.Y -= 39; Password.Frame = p; var l = LoginButton.Frame; l.Y -= 39; LoginButton.Frame = l; } //Set some generic shadowing LoginButton.Layer.ShadowColor = UIColor.Black.CGColor; LoginButton.Layer.ShadowOffset = new SizeF(0, 1); LoginButton.Layer.ShadowOpacity = 0.3f; Domain.ShouldReturn = delegate { User.BecomeFirstResponder(); return(true); }; User.ShouldReturn = delegate { Password.BecomeFirstResponder(); return(true); }; Password.ShouldReturn = delegate { Password.ResignFirstResponder(); LoginButton.SendActionForControlEvents(UIControlEvent.TouchUpInside); return(true); }; ScrollView.ContentSize = new SizeF(View.Frame.Width, LoginButton.Frame.Bottom + 10f); }
private bool CheckFields() //need to resize window on keyboard appereance, otherwise Snackbar will be covered { if (Sex.SelectedRowInComponent(0) == 0) { checkFormMessage = LangEnglish.SexEmpty; Sex.BecomeFirstResponder(); return(false); } if (Email.Text.Trim() == "") { checkFormMessage = LangEnglish.EmailEmpty; Email.BecomeFirstResponder(); return(false); } int lastDotPos = Email.Text.LastIndexOf("."); if (lastDotPos < Email.Text.Length - 5) { checkFormMessage = LangEnglish.EmailWrong; Email.BecomeFirstResponder(); return(false); } //If the extension is long, the regex will freeze the app. Regex regex = new Regex(Constants.EmailFormat); if (!regex.IsMatch(Email.Text)) { checkFormMessage = LangEnglish.EmailWrong; Email.BecomeFirstResponder(); return(false); } if (Password.Text.Trim().Length < 6) { checkFormMessage = LangEnglish.PasswordShort; Password.BecomeFirstResponder(); return(false); } if (Password.Text.Trim() != ConfirmPassword.Text.Trim()) { checkFormMessage = LangEnglish.ConfirmPasswordNoMatch; ConfirmPassword.BecomeFirstResponder(); return(false); } if (Username.Text.Trim() == "") { checkFormMessage = LangEnglish.UsernameEmpty; Username.BecomeFirstResponder(); return(false); } if (Username.Text.Trim().Substring(Username.Text.Trim().Length - 1) == "\\") { checkFormMessage = LangEnglish.UsernameBackslash; return(false); } if (Name.Text.Trim() == "") { checkFormMessage = LangEnglish.NameEmpty; Name.BecomeFirstResponder(); return(false); } if (Name.Text.Trim().Substring(Name.Text.Trim().Length - 1) == "\\") { checkFormMessage = LangEnglish.NameBackslash; return(false); } if (rc.uploadedImages.Count == 0) { checkFormMessage = LangEnglish.ImagesEmpty; Images.BecomeFirstResponder(); return(false); } if (DescriptionText.Text.Trim() == "") { checkFormMessage = LangEnglish.DescriptionEmpty; DescriptionText.BecomeFirstResponder(); return(false); } if (DescriptionText.Text.Substring(DescriptionText.Text.Length - 1) == "\\") { checkFormMessage = LangEnglish.DescriptionBackslash; return(false); } return(true); }
public override void ViewDidLoad() { base.ViewDidLoad(); Username.BackgroundColor = ComponentBackgroundColor; Username.AttributedPlaceholder = new Foundation.NSAttributedString("Username", foregroundColor: ComponentPlaceholderColor); Username.TextColor = ComponentTextColor; Password.BackgroundColor = ComponentBackgroundColor; Password.AttributedPlaceholder = new Foundation.NSAttributedString("Password", foregroundColor: ComponentPlaceholderColor); Password.TextColor = ComponentTextColor; Domain.BackgroundColor = ComponentBackgroundColor; Domain.AttributedPlaceholder = new Foundation.NSAttributedString("Domain", foregroundColor: ComponentPlaceholderColor); Domain.TextColor = ComponentTextColor; View.BackgroundColor = BackgroundColor; LogoImageView.Image = Images.Logos.Enterprise; LoginButton.SetTitleColor(ComponentTextColor, UIControlState.Normal); LoginButton.SetBackgroundImage(Images.Buttons.BlackButton.CreateResizableImage(new UIEdgeInsets(18, 18, 18, 18)), UIControlState.Normal); //Set some generic shadowing LoginButton.Layer.ShadowColor = UIColor.Black.CGColor; LoginButton.Layer.ShadowOffset = new CGSize(0, 1); LoginButton.Layer.ShadowOpacity = 0.2f; this.ViewportObservable().Subscribe(x => ScrollView.Frame = x); ImageHeight.Constant = UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad ? 192 : 86; OnActivation(d => { d(Username.GetChangedObservable().Subscribe(x => ViewModel.Username = x)); d(this.WhenAnyValue(x => x.ViewModel.Username).Subscribe(x => Username.Text = x)); d(Password.GetChangedObservable().Subscribe(x => ViewModel.Password = x)); d(this.WhenAnyValue(x => x.ViewModel.Password).Subscribe(x => Password.Text = x)); d(Domain.GetChangedObservable().Subscribe(x => ViewModel.Domain = x)); d(this.WhenAnyValue(x => x.ViewModel.Domain).Subscribe(x => Domain.Text = x)); d(LoginButton.GetClickedObservable().InvokeCommand(ViewModel.LoginCommand)); d(ViewModel.LoginCommand.CanExecuteObservable.Subscribe(x => LoginButton.Enabled = x)); d(this.WhenAnyValue(x => x.ViewModel.ShowLoginOptionsCommand) .ToBarButtonItem(UIBarButtonSystemItem.Action, x => NavigationItem.RightBarButtonItem = x)); Domain.ShouldReturn = delegate { Username.BecomeFirstResponder(); return(true); }; Username.ShouldReturn = delegate { Password.BecomeFirstResponder(); return(true); }; Password.ShouldReturn = delegate { Password.ResignFirstResponder(); LoginButton.SendActionForControlEvents(UIControlEvent.TouchUpInside); return(true); }; d(Disposable.Create(() => { Domain.ShouldReturn = null; Username.ShouldReturn = null; Password.ShouldReturn = null; })); }); }
public override void ViewDidLoad() { base.ViewDidLoad(); var scopes = string.Join(", ", OctokitClientFactory.Scopes); DescriptionLabel.Text = string.Format("The provided Personal Access Token must allow access to the following scopes: {0}", scopes); DescriptionLabel.TextColor = ComponentTextColor; AuthenticationSelector.TintColor = ComponentTextColor.ColorWithAlpha(0.9f); View.BackgroundColor = EnterpriseBackgroundColor; Logo.Image = Images.Logos.EnterpriseMascot; LoginButton.SetBackgroundImage(Images.Buttons.BlackButton.CreateResizableImage(new UIEdgeInsets(18, 18, 18, 18)), UIControlState.Normal); LoginButton.Enabled = true; //Set some generic shadowing LoginButton.Layer.ShadowColor = UIColor.Black.CGColor; LoginButton.Layer.ShadowOffset = new CGSize(0, 1); LoginButton.Layer.ShadowOpacity = 0.2f; var attributes = new UIStringAttributes { ForegroundColor = UIColor.LightGray, }; Domain.AttributedPlaceholder = new NSAttributedString("Domain", attributes); User.AttributedPlaceholder = new NSAttributedString("Username", attributes); Password.AttributedPlaceholder = new NSAttributedString("Password", attributes); TokenTextField.AttributedPlaceholder = new NSAttributedString("Token", attributes); foreach (var i in new [] { Domain, User, Password, TokenTextField }) { i.Layer.BorderColor = UIColor.Black.CGColor; i.Layer.BorderWidth = 1; i.Layer.CornerRadius = 4; } SelectAuthenticationScheme(0); Domain.ShouldReturn = delegate { User.BecomeFirstResponder(); return(true); }; User.ShouldReturn = delegate { Password.BecomeFirstResponder(); return(true); }; Password.ShouldReturn = delegate { Password.ResignFirstResponder(); LoginButton.SendActionForControlEvents(UIControlEvent.TouchUpInside); return(true); }; OnActivation(d => { d(User.GetChangedObservable() .Subscribe(x => ViewModel.Username = x)); d(Password.GetChangedObservable() .Subscribe(x => ViewModel.Password = x)); d(Domain.GetChangedObservable() .Subscribe(x => ViewModel.Domain = x)); d(TokenTextField.GetChangedObservable() .Subscribe(x => ViewModel.Token = x)); d(LoginButton.GetClickedObservable() .InvokeReactiveCommand(ViewModel.LoginCommand)); d(AuthenticationSelector.GetChangedObservable() .Do(x => ViewModel.TokenAuthentication = x == 1) .Subscribe(SelectAuthenticationScheme)); d(this.WhenAnyObservable(x => x.ViewModel.LoginCommand.CanExecute) .Subscribe(x => LoginButton.Enabled = x)); d(this.WhenAnyValue(x => x.ViewModel.TokenAuthentication) .Subscribe(x => AuthenticationSelector.SelectedSegment = x ? 1 : 0)); }); }
public override void ViewDidLoad() { base.ViewDidLoad(); Title = "Login"; View.BackgroundColor = EnterpriseBackgroundColor; Logo.Image = Images.StashLogo.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate); Logo.TintColor = UIColor.FromRGB(239, 239, 244); LoginButton.BackgroundColor = UIColor.FromRGB(0x10, 0x40, 0x71); LoginButton.Enabled = true; LoginButton.Layer.BorderColor = UIColor.Black.CGColor; LoginButton.Layer.BorderWidth = 1; LoginButton.Layer.CornerRadius = 4; var attributes = new UIStringAttributes { ForegroundColor = UIColor.LightGray }; Domain.AttributedPlaceholder = new NSAttributedString("Domain", attributes); User.AttributedPlaceholder = new NSAttributedString("Username", attributes); Password.AttributedPlaceholder = new NSAttributedString("Password", attributes); foreach (var i in new[] { Domain, User, Password }) { i.BackgroundColor = UIColor.FromRGB(0x10, 0x40, 0x71); i.Layer.BorderColor = UIColor.Black.CGColor; i.Layer.BorderWidth = 1; i.Layer.CornerRadius = 4; } Domain.ShouldReturn = delegate { User.BecomeFirstResponder(); return(true); }; User.ShouldReturn = delegate { Password.BecomeFirstResponder(); return(true); }; Password.ShouldReturn = delegate { Password.ResignFirstResponder(); LoginButton.SendActionForControlEvents(UIControlEvent.TouchUpInside); return(true); }; OnActivation(d => { User.GetChangedObservable().Subscribe(x => ViewModel.Username = x).AddTo(d); Password.GetChangedObservable().Subscribe(x => ViewModel.Password = x).AddTo(d); Domain.GetChangedObservable().Subscribe(x => ViewModel.Domain = x).AddTo(d); LoginButton.GetClickedObservable().BindCommand(ViewModel.LoginCommand).AddTo(d); ViewModel.WhenAnyValue(x => x.IsLoggingIn).SubscribeStatus("Logging in...").AddTo(d); ViewModel.LoginCommand.ThrownExceptions.Subscribe(HandleLoginException).AddTo(d); }); }