public override void ViewDidLayoutSubviews() { base.ViewDidLayoutSubviews(); HeaderView.Frame = new CGRect(View.Frame.Left, View.Frame.Top, View.Frame.Width, StyledTextField.StyledFieldHeight); ScrollView.Frame = new CGRect(View.Frame.Left, HeaderView.Frame.Bottom, View.Frame.Width, View.Frame.Height - HeaderView.Frame.Height); UserNameText.SetFrame(new CGRect(-10, View.Frame.Height * .05f, View.Frame.Width + 20, StyledTextField.StyledFieldHeight)); PasswordText.SetFrame(new CGRect(-10, UserNameText.Background.Frame.Bottom, View.Frame.Width + 20, StyledTextField.StyledFieldHeight)); ConfirmPasswordText.SetFrame(new CGRect(-10, PasswordText.Background.Frame.Bottom, View.Frame.Width + 20, StyledTextField.StyledFieldHeight)); NickNameText.SetFrame(new CGRect(-10, ConfirmPasswordText.Background.Frame.Bottom + 40, View.Frame.Width + 20, StyledTextField.StyledFieldHeight)); LastNameText.SetFrame(new CGRect(-10, NickNameText.Background.Frame.Bottom, View.Frame.Width + 20, StyledTextField.StyledFieldHeight)); EmailText.SetFrame(new CGRect(-10, LastNameText.Background.Frame.Bottom + 40, View.Frame.Width + 20, StyledTextField.StyledFieldHeight)); CellPhoneText.SetFrame(new CGRect(-10, EmailText.Background.Frame.Bottom, View.Frame.Width + 20, StyledTextField.StyledFieldHeight)); DoneButton.Frame = new CGRect(View.Frame.Left + 10, CellPhoneText.Background.Frame.Bottom + 20, View.Bounds.Width - 20, ControlStyling.ButtonHeight); CancelButton.Frame = new CGRect((View.Frame.Width - ControlStyling.ButtonWidth) / 2, DoneButton.Frame.Bottom + 20, ControlStyling.ButtonWidth, ControlStyling.ButtonHeight); // for the scroll size, if the content is larger than the screen, we'll take the bottom // of the content plus some padding. Otherwise, we'll just use the window height plus a tiny bit so there's // a subtle scroll effect nfloat controlBottom = CancelButton.Frame.Bottom + (View.Bounds.Height * .25f); ScrollView.ContentSize = new CGSize(0, (nfloat)Math.Max(controlBottom, View.Bounds.Height * 1.05f)); // setup the header shadow UIBezierPath shadowPath = UIBezierPath.FromRect(HeaderView.Bounds); HeaderView.Layer.MasksToBounds = false; HeaderView.Layer.ShadowColor = UIColor.Black.CGColor; HeaderView.Layer.ShadowOffset = new CGSize(0.0f, .0f); HeaderView.Layer.ShadowOpacity = .23f; HeaderView.Layer.ShadowPath = shadowPath.CGPath; if (LogoView != null) { LogoView.Layer.Position = new CoreGraphics.CGPoint((HeaderView.Bounds.Width - LogoView.Bounds.Width) / 2, 0); } ResultView.SetBounds(View.Frame.ToRectF( )); BlockerView.SetBounds(View.Frame.ToRectF( )); }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (container == null) { // Currently in a layout without a container, so no reason to create our view. return(null); } View view = inflater.Inflate(Resource.Layout.Register, container, false); view.SetBackgroundColor(Rock.Mobile.UI.Util.GetUIColor(ControlStylingConfig.BackgroundColor)); view.SetOnTouchListener(this); ScrollView = view.FindViewById <ScrollView>(Resource.Id.scroll_background); RelativeLayout layoutView = view.FindViewById <RelativeLayout>(Resource.Id.scroll_linear_background); ProgressBarBlocker = view.FindViewById <RelativeLayout>(Resource.Id.progressBarBlocker); ProgressBarBlocker.Visibility = ViewStates.Gone; ProgressBarBlocker.LayoutParameters = new RelativeLayout.LayoutParams(0, 0); ProgressBarBlocker.LayoutParameters.Width = NavbarFragment.GetFullDisplayWidth( ); ProgressBarBlocker.LayoutParameters.Height = this.Resources.DisplayMetrics.HeightPixels; ResultView = new UIResultView(layoutView, new System.Drawing.RectangleF(0, 0, NavbarFragment.GetFullDisplayWidth( ), this.Resources.DisplayMetrics.HeightPixels), OnResultViewDone); RelativeLayout navBar = view.FindViewById <RelativeLayout>(Resource.Id.navbar_relative_layout); navBar.SetBackgroundColor(Rock.Mobile.UI.Util.GetUIColor(ControlStylingConfig.BackgroundColor)); // setup the username UserNameLayer = view.FindViewById <RelativeLayout>(Resource.Id.username_background); ControlStyling.StyleBGLayer(UserNameLayer); UserNameText = UserNameLayer.FindViewById <EditText>(Resource.Id.userNameText); ControlStyling.StyleTextField(UserNameText, RegisterStrings.UsernamePlaceholder, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize); UserNameBGColor = ControlStylingConfig.BG_Layer_Color; UserNameText.InputType |= InputTypes.TextFlagCapWords; View borderView = UserNameLayer.FindViewById <View>(Resource.Id.username_border); borderView.SetBackgroundColor(Rock.Mobile.UI.Util.GetUIColor(ControlStylingConfig.BG_Layer_BorderColor)); // password PasswordLayer = view.FindViewById <RelativeLayout>(Resource.Id.password_background); ControlStyling.StyleBGLayer(PasswordLayer); PasswordText = PasswordLayer.FindViewById <EditText>(Resource.Id.passwordText); PasswordText.InputType |= InputTypes.TextVariationPassword; ControlStyling.StyleTextField(PasswordText, RegisterStrings.PasswordPlaceholder, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize); PasswordBGColor = ControlStylingConfig.BG_Layer_Color; borderView = PasswordLayer.FindViewById <View>(Resource.Id.password_border); borderView.SetBackgroundColor(Rock.Mobile.UI.Util.GetUIColor(ControlStylingConfig.BG_Layer_BorderColor)); ConfirmPasswordLayer = view.FindViewById <RelativeLayout>(Resource.Id.confirmPassword_background); ControlStyling.StyleBGLayer(ConfirmPasswordLayer); ConfirmPasswordText = ConfirmPasswordLayer.FindViewById <EditText>(Resource.Id.confirmPasswordText); ConfirmPasswordText.InputType |= InputTypes.TextVariationPassword; ControlStyling.StyleTextField(ConfirmPasswordText, RegisterStrings.ConfirmPasswordPlaceholder, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize); ConfirmPasswordBGColor = ControlStylingConfig.BG_Layer_Color; // setup the name section NickNameLayer = view.FindViewById <RelativeLayout>(Resource.Id.firstname_background); ControlStyling.StyleBGLayer(NickNameLayer); NickNameText = NickNameLayer.FindViewById <EditText>(Resource.Id.nickNameText); ControlStyling.StyleTextField(NickNameText, RegisterStrings.NickNamePlaceholder, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize); NickNameBGColor = ControlStylingConfig.BG_Layer_Color; NickNameText.InputType |= InputTypes.TextFlagCapWords; borderView = NickNameLayer.FindViewById <View>(Resource.Id.middle_border); borderView.SetBackgroundColor(Rock.Mobile.UI.Util.GetUIColor(ControlStylingConfig.BG_Layer_BorderColor)); LastNameLayer = view.FindViewById <RelativeLayout>(Resource.Id.lastname_background); ControlStyling.StyleBGLayer(LastNameLayer); LastNameText = LastNameLayer.FindViewById <EditText>(Resource.Id.lastNameText); ControlStyling.StyleTextField(LastNameText, RegisterStrings.LastNamePlaceholder, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize); LastNameBGColor = ControlStylingConfig.BG_Layer_Color; LastNameText.InputType |= InputTypes.TextFlagCapWords; // setup the cell phone section CellPhoneLayer = view.FindViewById <RelativeLayout>(Resource.Id.cellphone_background); ControlStyling.StyleBGLayer(CellPhoneLayer); CellPhoneText = CellPhoneLayer.FindViewById <EditText>(Resource.Id.cellPhoneText); ControlStyling.StyleTextField(CellPhoneText, RegisterStrings.CellPhonePlaceholder, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize); CellPhoneText.AddTextChangedListener(new PhoneNumberFormattingTextWatcher()); // email layer EmailLayer = view.FindViewById <RelativeLayout>(Resource.Id.email_background); ControlStyling.StyleBGLayer(EmailLayer); borderView = EmailLayer.FindViewById <View>(Resource.Id.middle_border); borderView.SetBackgroundColor(Rock.Mobile.UI.Util.GetUIColor(ControlStylingConfig.BG_Layer_BorderColor)); EmailText = EmailLayer.FindViewById <EditText>(Resource.Id.emailAddressText); ControlStyling.StyleTextField(EmailText, RegisterStrings.EmailPlaceholder, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize); EmailBGColor = ControlStylingConfig.BG_Layer_Color; // Register button RegisterButton = view.FindViewById <Button>(Resource.Id.registerButton); ControlStyling.StyleButton(RegisterButton, RegisterStrings.RegisterButton, ControlStylingConfig.Font_Regular, ControlStylingConfig.Small_FontSize); CancelButton = view.FindViewById <Button>(Resource.Id.cancelButton); ControlStyling.StyleButton(CancelButton, GeneralStrings.Cancel, ControlStylingConfig.Font_Regular, ControlStylingConfig.Small_FontSize); CancelButton.Background = null; RegisterButton.Click += (object sender, EventArgs e) => { RegisterUser( ); }; CancelButton.Click += (object sender, EventArgs e) => { // Since they made changes, confirm they want to save them. AlertDialog.Builder builder = new AlertDialog.Builder(Activity); builder.SetTitle(RegisterStrings.ConfirmCancelReg); Java.Lang.ICharSequence [] strings = new Java.Lang.ICharSequence[] { new Java.Lang.String(GeneralStrings.Yes), new Java.Lang.String(GeneralStrings.No) }; builder.SetItems(strings, delegate(object s, DialogClickEventArgs clickArgs) { Rock.Mobile.Threading.Util.PerformOnUIThread(delegate { switch (clickArgs.Which) { case 0: SpringboardParent.ModalFragmentDone(null); break; case 1: break; } }); }); builder.Show( ); }; return(view); }