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.Prayer_Post, container, false); view.SetOnTouchListener( this ); view.SetBackgroundColor( Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.BackgroundColor ) ); ResultView = new UIResultView( view, new System.Drawing.RectangleF( 0, 0, NavbarFragment.GetCurrentContainerDisplayWidth( ), this.Resources.DisplayMetrics.HeightPixels ), delegate { if( Success == true ) { // leave ParentTask.OnClick( this, 0 ); } else { // retry SubmitPrayerRequest( ); } } ); BlockerView = new UIBlockerView( view, new System.Drawing.RectangleF( 0, 0, NavbarFragment.GetCurrentContainerDisplayWidth( ), this.Resources.DisplayMetrics.HeightPixels ) ); return view; }
public override void ViewDidLoad() { base.ViewDidLoad(); ResultView = new UIResultView( View, View.Frame.ToRectF( ), delegate { if( Success == true ) { NavigationController.PopToRootViewController( true ); } else { Task.NavToolbar.Reveal( false ); SubmitPrayerRequest( ); } } ); BlockerView = new UIBlockerView( View, View.Frame.ToRectF( ) ); //setup our appearance View.BackgroundColor = Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.BackgroundColor ); }
public override void ViewDidLoad() { base.ViewDidLoad(); BlockerView = new UIBlockerView( View, View.Frame.ToRectF( ) ); View.BackgroundColor = Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.BackgroundColor ); float viewRealHeight = (float)( View.Bounds.Height - Task.NavToolbar.Frame.Height); float cardSizePerc = .83f; float cardWidth = (float)(View.Bounds.Width * cardSizePerc); float cardHeight = (float) (viewRealHeight * cardSizePerc); // setup the card positions to be to the offscreen to the left, centered on screen, and offscreen to the right float cardYOffset = ( viewRealHeight * .03f ); Carousel = PlatformCardCarousel.Create( View, cardWidth, cardHeight, new System.Drawing.RectangleF( 0, cardYOffset, (float)View.Bounds.Width, viewRealHeight ), PrivatePrayerConfig.Card_AnimationDuration ); CardSize = new CGRect( 0, 0, cardWidth, cardHeight ); // Setup the request prayers layer //setup our appearance RetrievingPrayersView.BackgroundColor = Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.BackgroundColor ); StatusLabel.Text = PrayerStrings.ViewPrayer_StatusText_Retrieving; ControlStyling.StyleUILabel( StatusLabel, ControlStylingConfig.Font_Regular, ControlStylingConfig.Small_FontSize ); ControlStyling.StyleBGLayer( StatusBackground ); ControlStyling.StyleUILabel( ResultLabel, ControlStylingConfig.Font_Regular, ControlStylingConfig.Small_FontSize ); ControlStyling.StyleBGLayer( ResultBackground ); ControlStyling.StyleButton( RetryButton, GeneralStrings.Retry, ControlStylingConfig.Font_Regular, ControlStylingConfig.Small_FontSize ); RetryButton.TouchUpInside += (object sender, EventArgs e ) => { if( RequestingPrayers == false ) { RetrievePrayerRequests( ); } }; LastDownload = DateTime.MinValue; }
public override void ViewDidLoad() { base.ViewDidLoad(); // setup the fake header HeaderView = new UIView( ); View.AddSubview( HeaderView ); HeaderView.BackgroundColor = Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.BackgroundColor ); string imagePath = NSBundle.MainBundle.BundlePath + "/" + PrivatePrimaryNavBarConfig.LogoFile_iOS; LogoView = new UIImageView( new UIImage( imagePath ) ); LogoView.Layer.AnchorPoint = CGPoint.Empty; LogoView.SizeToFit( ); HeaderView.AddSubview( LogoView ); ScrollView = new UIScrollViewWrapper(); ScrollView.Frame = new CGRect( View.Frame.Left, HeaderView.Frame.Bottom, View.Frame.Width, View.Frame.Height - HeaderView.Frame.Height ); View.AddSubview( ScrollView ); ScrollView.Parent = this; // logged in sanity check. //if( RockMobileUser.Instance.LoggedIn == true ) throw new Exception("A user cannot be logged in when registering. How did you do this?" ); BlockerView = new UIBlockerView( View, View.Frame.ToRectF( ) ); //setup styles View.BackgroundColor = Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.BackgroundColor ); UserNameText = new StyledTextField(); ScrollView.AddSubview( UserNameText.Background ); UserNameText.Field.AutocapitalizationType = UITextAutocapitalizationType.None; UserNameText.Field.AutocorrectionType = UITextAutocorrectionType.No; ControlStyling.StyleTextField( UserNameText.Field, RegisterStrings.UsernamePlaceholder, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); ControlStyling.StyleBGLayer( UserNameText.Background ); PasswordText = new StyledTextField(); ScrollView.AddSubview( PasswordText.Background ); PasswordText.Field.AutocapitalizationType = UITextAutocapitalizationType.None; PasswordText.Field.AutocorrectionType = UITextAutocorrectionType.No; PasswordText.Field.SecureTextEntry = true; ControlStyling.StyleTextField( PasswordText.Field, RegisterStrings.PasswordPlaceholder, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); ControlStyling.StyleBGLayer( PasswordText.Background ); ConfirmPasswordText = new StyledTextField(); ScrollView.AddSubview( ConfirmPasswordText.Background ); ConfirmPasswordText.Field.SecureTextEntry = true; ControlStyling.StyleTextField( ConfirmPasswordText.Field, RegisterStrings.ConfirmPasswordPlaceholder, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); ControlStyling.StyleBGLayer( ConfirmPasswordText.Background ); NickNameText = new StyledTextField(); ScrollView.AddSubview( NickNameText.Background ); NickNameText.Field.AutocapitalizationType = UITextAutocapitalizationType.Words; NickNameText.Field.AutocorrectionType = UITextAutocorrectionType.No; ControlStyling.StyleTextField( NickNameText.Field, RegisterStrings.NickNamePlaceholder, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); ControlStyling.StyleBGLayer( NickNameText.Background ); LastNameText = new StyledTextField(); ScrollView.AddSubview( LastNameText.Background ); LastNameText.Field.AutocapitalizationType = UITextAutocapitalizationType.Words; LastNameText.Field.AutocorrectionType = UITextAutocorrectionType.No; ControlStyling.StyleTextField( LastNameText.Field, RegisterStrings.LastNamePlaceholder, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); ControlStyling.StyleBGLayer( LastNameText.Background ); EmailText = new StyledTextField(); ScrollView.AddSubview( EmailText.Background ); EmailText.Field.AutocapitalizationType = UITextAutocapitalizationType.None; EmailText.Field.AutocorrectionType = UITextAutocorrectionType.No; ControlStyling.StyleTextField( EmailText.Field, RegisterStrings.EmailPlaceholder, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); ControlStyling.StyleBGLayer( EmailText.Background ); CellPhoneText = new StyledTextField(); ScrollView.AddSubview( CellPhoneText.Background ); CellPhoneText.Field.AutocapitalizationType = UITextAutocapitalizationType.None; CellPhoneText.Field.AutocorrectionType = UITextAutocorrectionType.No; ControlStyling.StyleTextField( CellPhoneText.Field, RegisterStrings.CellPhonePlaceholder, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); ControlStyling.StyleBGLayer( CellPhoneText.Background ); DoneButton = UIButton.FromType( UIButtonType.System ); ScrollView.AddSubview( DoneButton ); ControlStyling.StyleButton( DoneButton, RegisterStrings.RegisterButton, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); DoneButton.SizeToFit( ); CancelButton = UIButton.FromType( UIButtonType.System ); ScrollView.AddSubview( CancelButton ); CancelButton.SetTitleColor( Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.TextField_PlaceholderTextColor ), UIControlState.Normal ); CancelButton.SetTitle( GeneralStrings.Cancel, UIControlState.Normal ); CancelButton.SizeToFit( ); // Allow the return on username and password to start // the login process NickNameText.Field.ShouldReturn += TextFieldShouldReturn; LastNameText.Field.ShouldReturn += TextFieldShouldReturn; EmailText.Field.ShouldReturn += TextFieldShouldReturn; // If submit is pressed with dirty changes, prompt the user to save them. DoneButton.TouchUpInside += (object sender, EventArgs e) => { RegisterUser( ); HideKeyboard( ); }; // On logout, make sure the user really wants to log out. CancelButton.TouchUpInside += (object sender, EventArgs e) => { // if there were changes, create an action sheet for them to confirm. UIAlertController actionSheet = UIAlertController.Create( RegisterStrings.ConfirmCancelReg, null, UIAlertControllerStyle.ActionSheet ); if( UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad ) { actionSheet.PopoverPresentationController.SourceView = CancelButton; actionSheet.PopoverPresentationController.SourceRect = CancelButton.Bounds; } UIAlertAction yesAction = UIAlertAction.Create( GeneralStrings.Yes, UIAlertActionStyle.Destructive, delegate { Springboard.ResignModelViewController( this, null ); }); actionSheet.AddAction( yesAction ); // let them cancel, too UIAlertAction cancelAction = UIAlertAction.Create( GeneralStrings.Cancel, UIAlertActionStyle.Cancel, delegate { }); actionSheet.AddAction( cancelAction ); PresentViewController( actionSheet, true, null ); }; ResultView = new UIResultView( ScrollView, View.Frame.ToRectF( ), OnResultViewDone ); }
public override void ViewDidLoad() { base.ViewDidLoad(); View.BackgroundColor = Rock.Mobile.UI.Util.GetUIColor( App.Shared.Config.ControlStylingConfig.BackgroundColor ); ScrollView = new UIScrollViewWrapper(); ScrollView.Layer.AnchorPoint = CGPoint.Empty; ScrollView.Parent = this; ScrollView.Bounds = View.Bounds; View.AddSubview( ScrollView ); ScrollView.ScrollEnabled = false; // setup everything except positioning, which will happen in LayoutChanged() SourceLocation = null; GroupEntries = new List<GroupFinder.GroupEntry>(); SearchAddressButton = UIButton.FromType( UIButtonType.System ); ScrollView.AddSubview( SearchAddressButton ); SearchAddressButton.Layer.AnchorPoint = CGPoint.Empty; ControlStyling.StyleButton( SearchAddressButton, ConnectStrings.GroupFinder_SearchButtonLabel, ControlStylingConfig.Font_Regular, ControlStylingConfig.Small_FontSize ); SearchAddressButton.TouchUpInside += (object sender, EventArgs e ) => { SearchPage.Show( ); Task.NavToolbar.Reveal( false ); }; MapView = new MKMapView( ); ScrollView.AddSubview( MapView ); // set the default position for the map to whatever specified area. MKCoordinateRegion region = MKCoordinateRegion.FromDistance( new CLLocationCoordinate2D( ConnectConfig.GroupFinder_DefaultLatitude, ConnectConfig.GroupFinder_DefaultLongitude ), ConnectConfig.GroupFinder_DefaultScale_iOS, ConnectConfig.GroupFinder_DefaultScale_iOS ); MapView.SetRegion( region, true ); MapView.Layer.AnchorPoint = new CGPoint( 0, 0 ); MapView.Delegate = new MapViewDelegate() { Parent = this }; SearchResultsBGLayer = new UIView(); ScrollView.AddSubview( SearchResultsBGLayer ); SearchResultsBGLayer.Layer.AnchorPoint = new CGPoint( 0, 0 ); SearchResultsBGLayer.BackgroundColor = Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.BG_Layer_Color ); SearchResultsPrefix = new UILabel( ); ScrollView.AddSubview( SearchResultsPrefix ); SearchResultsPrefix.Layer.AnchorPoint = new CGPoint( 0, 0 ); SearchResultsPrefix.Font = Rock.Mobile.PlatformSpecific.iOS.Graphics.FontManager.GetFont( ControlStylingConfig.Font_Regular, ControlStylingConfig.Small_FontSize ); SearchResultsPrefix.Text = ConnectStrings.GroupFinder_NoGroupsFound; SearchResultsPrefix.SizeToFit( ); SearchResultsPrefix.TextColor = Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.TextField_PlaceholderTextColor ); SearchResultsPrefix.BackgroundColor = Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.BG_Layer_Color ); SearchResultsPrefix.TextAlignment = UITextAlignment.Center; SearchResultsNeighborhood = new UILabel( ); ScrollView.AddSubview( SearchResultsNeighborhood ); SearchResultsNeighborhood.Layer.AnchorPoint = new CGPoint( 0, 0 ); SearchResultsNeighborhood.Font = Rock.Mobile.PlatformSpecific.iOS.Graphics.FontManager.GetFont( ControlStylingConfig.Font_Regular, ControlStylingConfig.Small_FontSize ); SearchResultsNeighborhood.TextColor = Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.TextField_ActiveTextColor ); SearchResultsNeighborhood.BackgroundColor = Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.BG_Layer_Color ); SearchResultsNeighborhood.TextAlignment = UITextAlignment.Center; Seperator = new UIView( ); ScrollView.AddSubview( Seperator ); Seperator.Layer.BorderWidth = 1; Seperator.Layer.BorderColor = Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.TextField_PlaceholderTextColor ).CGColor; GroupFinderTableView = new UITableView(); ScrollView.AddSubview( GroupFinderTableView ); GroupTableSource = new GroupFinderViewController.TableSource( this ); // add the table view and source GroupFinderTableView.BackgroundColor = UIColor.Clear;//Rock.Mobile.UI.Util.GetUIColor( App.Shared.Config.ControlStylingConfig.Table_Footer_Color ); //GroupFinderTableView.BackgroundColor = Rock.Mobile.UI.Util.GetUIColor( App.Shared.Config.ControlStylingConfig.BG_Layer_Color ); GroupFinderTableView.Source = GroupTableSource; GroupFinderTableView.SeparatorStyle = UITableViewCellSeparatorStyle.None; BlockerView = new UIBlockerView( ScrollView, ScrollView.Frame.ToRectF( ) ); SearchPage = new UIGroupFinderSearch(); SearchPage.Create( ScrollView, ScrollView.Frame.ToRectF( ), delegate { SearchPage.Hide( true ); GetGroups( SearchPage.Street.Text, SearchPage.City.Text, SearchPage.State.Text, SearchPage.ZipCode.Text ); Task.NavToolbar.Reveal( true ); } ); SearchPage.SetTitle( ConnectStrings.GroupFinder_SearchPageHeader, ConnectStrings.GroupFinder_SearchPageDetails ); SearchPage.Hide( false ); KeyboardAdjustManager = new KeyboardAdjustManager( View ); // don't allow them to tap the address button until we reveal the search page. SearchAddressButton.Enabled = false; // wait a couple seconds before revealing the search page. System.Timers.Timer timer = new System.Timers.Timer(); timer.AutoReset = false; timer.Interval = 1000; timer.Elapsed += (object sender, System.Timers.ElapsedEventArgs e ) => { Rock.Mobile.Threading.Util.PerformOnUIThread( delegate { SearchAddressButton.Enabled = true; SearchPage.Show( ); } ); }; timer.Start( ); // hook in delegates so we can handle return ((UITextField)SearchPage.Street.PlatformNativeObject).Delegate = new AddressDelegate( ) { Parent = this }; ((UITextField)SearchPage.City.PlatformNativeObject).Delegate = new AddressDelegate( ) { Parent = this }; ((UITextField)SearchPage.State.PlatformNativeObject).Delegate = new AddressDelegate( ) { Parent = this }; ((UITextField)SearchPage.ZipCode.PlatformNativeObject).Delegate = new AddressDelegate( ) { Parent = this }; }
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; } GroupEntries = new List<GroupFinder.GroupEntry>(); MarkerList = new List<Android.Gms.Maps.Model.Marker>(); SourceLocation = new GroupFinder.GroupEntry(); // limit the address to 90% of the screen so it doesn't conflict with the progress bar. Point displaySize = new Point( ); Activity.WindowManager.DefaultDisplay.GetSize( displaySize ); //float fixedWidth = displaySize.X / 4.0f; // catch any exceptions thrown, as they'll be related to no map API key try { MapView = new Android.Gms.Maps.MapView( Rock.Mobile.PlatformSpecific.Android.Core.Context ); MapView.LayoutParameters = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent ); MapView.LayoutParameters.Height = (int) (displaySize.Y * .50f); MapView.GetMapAsync( this ); MapView.SetBackgroundColor( Color.Black ); MapView.OnCreate( savedInstanceState ); } catch { MapView = null; Rock.Mobile.Util.Debug.WriteLine( "GOOGLE MAPS: Unable to create. Verify you have a valid API KEY." ); } SearchAddressButton = new Button( Rock.Mobile.PlatformSpecific.Android.Core.Context ); SearchAddressButton.LayoutParameters = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent ); ControlStyling.StyleButton( SearchAddressButton, ConnectStrings.GroupFinder_SearchButtonLabel, ControlStylingConfig.Font_Regular, ControlStylingConfig.Small_FontSize ); SearchAddressButton.Click += (object sender, EventArgs e ) => { SearchPage.Show( ); }; // setup the linear layout containing the "Your Neighborhood is: Horizon" text SearchLayout = new LinearLayout( Rock.Mobile.PlatformSpecific.Android.Core.Context ); SearchLayout.LayoutParameters = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent ); SearchLayout.SetBackgroundColor( Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.BG_Layer_Color ) ); SearchLayout.SetGravity( GravityFlags.Center ); SearchResultPrefix = new TextView( Rock.Mobile.PlatformSpecific.Android.Core.Context ); SearchResultPrefix.LayoutParameters = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent ); SearchResultPrefix.SetTypeface( Rock.Mobile.PlatformSpecific.Android.Graphics.FontManager.Instance.GetFont( ControlStylingConfig.Font_Regular ), TypefaceStyle.Normal ); SearchResultPrefix.SetTextSize( Android.Util.ComplexUnitType.Dip, ControlStylingConfig.Small_FontSize ); SearchResultPrefix.SetTextColor( Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.TextField_PlaceholderTextColor ) ); SearchResultPrefix.Text = ConnectStrings.GroupFinder_NoGroupsFound; SearchResultNeighborhood = new TextView( Rock.Mobile.PlatformSpecific.Android.Core.Context ); SearchResultNeighborhood.LayoutParameters = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent ); SearchResultNeighborhood.SetTypeface( Rock.Mobile.PlatformSpecific.Android.Graphics.FontManager.Instance.GetFont( ControlStylingConfig.Font_Regular ), TypefaceStyle.Normal ); SearchResultNeighborhood.SetTextSize( Android.Util.ComplexUnitType.Dip, ControlStylingConfig.Small_FontSize ); SearchResultNeighborhood.SetTextColor( Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.TextField_ActiveTextColor ) ); SearchResultNeighborhood.Text = ""; Seperator = new View( Rock.Mobile.PlatformSpecific.Android.Core.Context ); Seperator.LayoutParameters = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MatchParent, 0 ); Seperator.LayoutParameters.Height = 2; Seperator.SetBackgroundColor( Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.BG_Layer_BorderColor ) ); ListView = new ListView( Rock.Mobile.PlatformSpecific.Android.Core.Context ); ListView.LayoutParameters = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent ); ListView.ItemClick += (object sender, AdapterView.ItemClickEventArgs e ) => { OnClick( e.Position, 0 ); }; ListView.SetOnTouchListener( this ); ListView.Adapter = new GroupArrayAdapter( this ); View view = inflater.Inflate(Resource.Layout.Connect_GroupFinder, container, false); view.SetOnTouchListener( this ); view.SetBackgroundColor( Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.BG_Layer_Color ) ); LinearLayout groupLayout = view.FindViewById<LinearLayout>( Resource.Id.groupFrame ) as LinearLayout; // setup the address layout, which has the address text, padding, and finally the progress bar. if ( MapView != null ) { ( (LinearLayout)groupLayout ).AddView( MapView ); } ((LinearLayout)groupLayout).AddView( SearchAddressButton ); ((LinearLayout)groupLayout).AddView( SearchLayout ); ((LinearLayout)SearchLayout).AddView( SearchResultPrefix ); ((LinearLayout)SearchLayout).AddView( SearchResultNeighborhood ); ((LinearLayout)groupLayout).AddView( Seperator ); ((LinearLayout)groupLayout).AddView( ListView ); BlockerView = new UIBlockerView( view, new System.Drawing.RectangleF( 0, 0, NavbarFragment.GetCurrentContainerDisplayWidth( ), this.Resources.DisplayMetrics.HeightPixels ) ); SearchPage = new UIGroupFinderSearch(); SearchPage.Create( view, new System.Drawing.RectangleF( 0, 0, NavbarFragment.GetCurrentContainerDisplayWidth( ), this.Resources.DisplayMetrics.HeightPixels ), delegate { SearchPage.Hide( true ); GetGroups( SearchPage.Street.Text, SearchPage.City.Text, SearchPage.State.Text, SearchPage.ZipCode.Text ); } ); SearchPage.SetTitle( ConnectStrings.GroupFinder_SearchPageHeader, ConnectStrings.GroupFinder_SearchPageDetails ); SearchPage.LayoutChanged( new System.Drawing.RectangleF( 0, 0, NavbarFragment.GetCurrentContainerDisplayWidth( ), this.Resources.DisplayMetrics.HeightPixels ) ); SearchPage.Hide( false ); // if we should automatically show the search page... if ( ShowSearchOnAppear == true ) { // don't allow them to tap the address button until we reveal the search page. SearchAddressButton.Enabled = false; // wait a couple seconds before revealing the search page. System.Timers.Timer timer = new System.Timers.Timer(); timer.AutoReset = false; timer.Interval = 1000; timer.Elapsed += (object sender, System.Timers.ElapsedEventArgs e ) => { Rock.Mobile.Threading.Util.PerformOnUIThread( delegate { SearchAddressButton.Enabled = true; SearchPage.Show( ); } ); }; timer.Start( ); } else { // otherwise, just allow the seach button SearchAddressButton.Enabled = true; } // hook into the search page as its listener ((View)SearchPage.View.PlatformNativeObject).SetOnTouchListener( this ); ((EditText)SearchPage.Street.PlatformNativeObject).SetOnEditorActionListener( this ); ((EditText)SearchPage.City.PlatformNativeObject).SetOnEditorActionListener( this ); ((EditText)SearchPage.State.PlatformNativeObject).SetOnEditorActionListener( this ); ((EditText)SearchPage.ZipCode.PlatformNativeObject).SetOnEditorActionListener( this ); return view; }
public void Create( object masterView, RectangleF frame ) { View = PlatformView.Create( ); View.BackgroundColor = ControlStylingConfig.BackgroundColor; View.AddAsSubview( masterView ); GroupTitle = PlatformLabel.Create( ); GroupTitle.AddAsSubview( masterView ); GroupTitle.SetFont( ControlStylingConfig.Font_Bold, ControlStylingConfig.Large_FontSize ); GroupTitle.TextColor = ControlStylingConfig.TextField_ActiveTextColor; GroupTitle.TextAlignment = TextAlignment.Center; /*GroupDetailsLayer = PlatformView.Create( ); GroupDetailsLayer.AddAsSubview( masterView ); GroupDetailsLayer.BackgroundColor = ControlStylingConfig.BG_Layer_Color; GroupDetailsLayer.BorderColor = ControlStylingConfig.BG_Layer_BorderColor; GroupDetailsLayer.BorderWidth = ControlStylingConfig.BG_Layer_BorderWidth;*/ GroupDetails = PlatformLabel.Create( ); GroupDetails.AddAsSubview( masterView ); GroupDetails.SetFont( ControlStylingConfig.Font_Light, ControlStylingConfig.Medium_FontSize ); GroupDetails.TextColor = ControlStylingConfig.TextField_ActiveTextColor; // Name Info FirstNameLayer = PlatformView.Create( ); FirstNameLayer.AddAsSubview( masterView ); FirstNameLayer.BackgroundColor = ControlStylingConfig.BG_Layer_Color; FirstNameLayer.BorderColor = ControlStylingConfig.BG_Layer_BorderColor; FirstNameLayer.BorderWidth = ControlStylingConfig.BG_Layer_BorderWidth; FirstName = PlatformTextField.Create( ); FirstName.AddAsSubview( masterView ); FirstName.SetFont( ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); FirstName.PlaceholderTextColor = ControlStylingConfig.TextField_PlaceholderTextColor; FirstName.Placeholder = ConnectStrings.JoinGroup_FirstNamePlaceholder; FirstName.TextColor = ControlStylingConfig.TextField_ActiveTextColor; FirstName.KeyboardAppearance = KeyboardAppearanceStyle.Dark; FirstName.AutoCapitalizationType = AutoCapitalizationType.Words; FirstName.AutoCorrectionType = AutoCorrectionType.No; LastNameLayer = PlatformView.Create( ); LastNameLayer.AddAsSubview( masterView ); LastNameLayer.BackgroundColor = ControlStylingConfig.BG_Layer_Color; LastNameLayer.BorderColor = ControlStylingConfig.BG_Layer_BorderColor; LastNameLayer.BorderWidth = ControlStylingConfig.BG_Layer_BorderWidth; LastName = PlatformTextField.Create( ); LastName.AddAsSubview( masterView ); LastName.SetFont( ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); LastName.PlaceholderTextColor = ControlStylingConfig.TextField_PlaceholderTextColor; LastName.Placeholder = ConnectStrings.JoinGroup_LastNamePlaceholder; LastName.TextColor = ControlStylingConfig.TextField_ActiveTextColor; LastName.KeyboardAppearance = KeyboardAppearanceStyle.Dark; LastName.AutoCapitalizationType = AutoCapitalizationType.Words; LastName.AutoCorrectionType = AutoCorrectionType.No; SpouseNameLayer = PlatformView.Create( ); SpouseNameLayer.AddAsSubview( masterView ); SpouseNameLayer.BackgroundColor = ControlStylingConfig.BG_Layer_Color; SpouseNameLayer.BorderColor = ControlStylingConfig.BG_Layer_BorderColor; SpouseNameLayer.BorderWidth = ControlStylingConfig.BG_Layer_BorderWidth; SpouseName = PlatformTextField.Create( ); SpouseName.AddAsSubview( masterView ); SpouseName.SetFont( ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); SpouseName.PlaceholderTextColor = ControlStylingConfig.TextField_PlaceholderTextColor; SpouseName.Placeholder = ConnectStrings.JoinGroup_SpouseNamePlaceholder; SpouseName.TextColor = ControlStylingConfig.TextField_ActiveTextColor; SpouseName.KeyboardAppearance = KeyboardAppearanceStyle.Dark; SpouseName.AutoCapitalizationType = AutoCapitalizationType.Words; SpouseName.AutoCorrectionType = AutoCorrectionType.No; // Contact Info EmailLayer = PlatformView.Create( ); EmailLayer.AddAsSubview( masterView ); EmailLayer.BackgroundColor = ControlStylingConfig.BG_Layer_Color; EmailLayer.BorderColor = ControlStylingConfig.BG_Layer_BorderColor; EmailLayer.BorderWidth = ControlStylingConfig.BG_Layer_BorderWidth; Email = PlatformTextField.Create( ); Email.AddAsSubview( masterView ); Email.SetFont( ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); Email.PlaceholderTextColor = ControlStylingConfig.TextField_PlaceholderTextColor; Email.Placeholder = ConnectStrings.JoinGroup_EmailPlaceholder; Email.TextColor = ControlStylingConfig.TextField_ActiveTextColor; Email.KeyboardAppearance = KeyboardAppearanceStyle.Dark; Email.AutoCapitalizationType = AutoCapitalizationType.None; Email.AutoCorrectionType = AutoCorrectionType.No; CellPhoneLayer = PlatformView.Create( ); CellPhoneLayer.AddAsSubview( masterView ); CellPhoneLayer.BackgroundColor = ControlStylingConfig.BG_Layer_Color; CellPhoneLayer.BorderColor = ControlStylingConfig.BG_Layer_BorderColor; CellPhoneLayer.BorderWidth = ControlStylingConfig.BG_Layer_BorderWidth; CellPhone = PlatformTextField.Create( ); CellPhone.AddAsSubview( masterView ); CellPhone.SetFont( ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); CellPhone.PlaceholderTextColor = ControlStylingConfig.TextField_PlaceholderTextColor; CellPhone.Placeholder = ConnectStrings.JoinGroup_CellPhonePlaceholder; CellPhone.TextColor = ControlStylingConfig.TextField_ActiveTextColor; CellPhone.KeyboardAppearance = KeyboardAppearanceStyle.Dark; CellPhone.AutoCapitalizationType = AutoCapitalizationType.None; CellPhone.AutoCorrectionType = AutoCorrectionType.No; // Join Button JoinButton = PlatformButton.Create( ); JoinButton.AddAsSubview( masterView ); JoinButton.ClickEvent = JoinClicked; JoinButton.BackgroundColor = ControlStylingConfig.Button_BGColor; JoinButton.TextColor = ControlStylingConfig.Button_TextColor; JoinButton.CornerRadius = ControlStylingConfig.Button_CornerRadius; JoinButton.Text = ConnectStrings.JoinGroup_JoinButtonLabel; JoinButton.SizeToFit( ); JoinButton.UserInteractionEnabled = true; // Create our results view overlay ResultView = new UIResultView( masterView, View.Frame, OnResultViewDone ); // Create our blocker view BlockerView = new UIBlockerView( masterView, View.Frame ); }
public override void ViewDidLoad() { base.ViewDidLoad(); BlockerView = new UIBlockerView( View, View.Frame.ToRectF( ) ); View.BackgroundColor = Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.BackgroundColor ); ScrollView = new UIScrollViewWrapper(); ScrollView.Parent = this; ScrollView.Layer.AnchorPoint = CGPoint.Empty; ScrollView.Bounds = View.Bounds; View.AddSubview( ScrollView ); UserNameField = new StyledTextField(); ScrollView.AddSubview( UserNameField.Background ); UserNameField.Field.AutocapitalizationType = UITextAutocapitalizationType.None; UserNameField.Field.AutocorrectionType = UITextAutocorrectionType.No; ControlStyling.StyleTextField( UserNameField.Field, LoginStrings.UsernamePlaceholder, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); ControlStyling.StyleBGLayer( UserNameField.Background ); UserNameField.Field.ShouldReturn += (textField) => { textField.ResignFirstResponder(); TryRockBind(); return true; }; PasswordField = new StyledTextField(); ScrollView.AddSubview( PasswordField.Background ); PasswordField.Field.AutocorrectionType = UITextAutocorrectionType.No; PasswordField.Field.SecureTextEntry = true; ControlStyling.StyleTextField( PasswordField.Field, LoginStrings.PasswordPlaceholder, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); ControlStyling.StyleBGLayer( PasswordField.Background ); PasswordField.Field.ShouldReturn += (textField) => { textField.ResignFirstResponder(); TryRockBind(); return true; }; // obviously attempt a login if login is pressed LoginButton = UIButton.FromType( UIButtonType.System ); ScrollView.AddSubview( LoginButton ); ControlStyling.StyleButton( LoginButton, LoginStrings.LoginButton, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); LoginButton.SizeToFit( ); LoginButton.TouchUpInside += (object sender, EventArgs e) => { if( RockMobileUser.Instance.LoggedIn == true ) { RockMobileUser.Instance.LogoutAndUnbind( ); SetUIState( LoginState.Out ); } else { TryRockBind(); } }; AdditionalOptions = new UILabel( ); ScrollView.AddSubview( AdditionalOptions ); ControlStyling.StyleUILabel( AdditionalOptions, ControlStylingConfig.Font_Regular, ControlStylingConfig.Small_FontSize ); AdditionalOptions.Text = LoginStrings.AdditionalOptions; AdditionalOptions.TextColor = Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.TextField_PlaceholderTextColor ); AdditionalOptions.SizeToFit( ); OrSpacerLabel = new UILabel( ); ScrollView.AddSubview( OrSpacerLabel ); ControlStyling.StyleUILabel( OrSpacerLabel, ControlStylingConfig.Font_Regular, ControlStylingConfig.Small_FontSize ); OrSpacerLabel.TextColor = Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.TextField_PlaceholderTextColor ); OrSpacerLabel.Text = LoginStrings.OrString; OrSpacerLabel.SizeToFit( ); RegisterButton = UIButton.FromType( UIButtonType.System ); ScrollView.AddSubview( RegisterButton ); ControlStyling.StyleButton( RegisterButton, LoginStrings.RegisterButton, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); //RegisterButton.BackgroundColor = UIColor.Clear; RegisterButton.SizeToFit( ); RegisterButton.TouchUpInside += (object sender, EventArgs e ) => { Springboard.RegisterNewUser( ); }; // setup the result LoginResult = new StyledTextField( ); ScrollView.AddSubview( LoginResult.Background ); ControlStyling.StyleTextField( LoginResult.Field, "", ControlStylingConfig.Font_Regular, ControlStylingConfig.Small_FontSize ); ControlStyling.StyleBGLayer( LoginResult.Background ); LoginResult.Field.UserInteractionEnabled = false; LoginResult.Field.TextAlignment = UITextAlignment.Center; // setup the facebook button FacebookLogin = new UIButton( ); ScrollView.AddSubview( FacebookLogin ); string imagePath = NSBundle.MainBundle.BundlePath + "/" + "facebook_login.png"; FBImageView = new UIImageView( new UIImage( imagePath ) ); FacebookLogin.SetTitle( "", UIControlState.Normal ); FacebookLogin.AddSubview( FBImageView ); FacebookLogin.Layer.CornerRadius = 4; FBImageView.Layer.CornerRadius = 4; FacebookLogin.TouchUpInside += (object sender, EventArgs e) => { TryFacebookBind(); }; // If cancel is pressed, notify the springboard we're done. CancelButton = UIButton.FromType( UIButtonType.System ); ScrollView.AddSubview( CancelButton ); CancelButton.SetTitleColor( Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.Label_TextColor ), UIControlState.Normal ); CancelButton.SetTitle( GeneralStrings.Cancel, UIControlState.Normal ); CancelButton.SizeToFit( ); CancelButton.TouchUpInside += (object sender, EventArgs e) => { // don't allow canceling while we wait for a web request. if( LoginState.Trying != State ) { Springboard.ResignModelViewController( this, null ); } }; // setup the fake header HeaderView = new UIView( ); View.AddSubview( HeaderView ); HeaderView.BackgroundColor = Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.BackgroundColor ); imagePath = NSBundle.MainBundle.BundlePath + "/" + PrivatePrimaryNavBarConfig.LogoFile_iOS; LogoView = new UIImageView( new UIImage( imagePath ) ); LogoView.SizeToFit( ); LogoView.Layer.AnchorPoint = CGPoint.Empty; HeaderView.AddSubview( LogoView ); }
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.Login, container, false); view.SetBackgroundColor( Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.BackgroundColor ) ); view.SetOnTouchListener( this ); RelativeLayout navBar = view.FindViewById<RelativeLayout>( Resource.Id.navbar_relative_layout ); navBar.SetBackgroundColor( Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.BackgroundColor ) ); RectangleF bounds = new System.Drawing.RectangleF( 0, 0, NavbarFragment.GetFullDisplayWidth( ), this.Resources.DisplayMetrics.HeightPixels ); BlockerView = new UIBlockerView( view, bounds ); LoginResultLayer = view.FindViewById<View>( Resource.Id.result_background ); ControlStyling.StyleBGLayer( LoginResultLayer ); LoginResultLayer.Alpha = 0.0f; LoginButton = view.FindViewById<Button>( Resource.Id.loginButton ); ControlStyling.StyleButton( LoginButton, LoginStrings.LoginButton, ControlStylingConfig.Font_Regular, ControlStylingConfig.Small_FontSize ); LoginButton.Click += (object sender, EventArgs e) => { TryRockBind( ); }; CancelButton = view.FindViewById<Button>( Resource.Id.cancelButton ); ControlStyling.StyleButton( CancelButton, GeneralStrings.Cancel, ControlStylingConfig.Font_Regular, ControlStylingConfig.Small_FontSize ); CancelButton.Background = null; CancelButton.Click += (object sender, EventArgs e) => { SpringboardParent.ModalFragmentDone( null ); }; TextView additionalOptions = view.FindViewById<TextView>( Resource.Id.additionalOptions ); ControlStyling.StyleUILabel( additionalOptions, ControlStylingConfig.Font_Regular, ControlStylingConfig.Small_FontSize ); additionalOptions.Text = LoginStrings.AdditionalOptions; TextView orTextView = view.FindViewById<TextView>( Resource.Id.orTextView ); ControlStyling.StyleUILabel( orTextView, ControlStylingConfig.Font_Regular, ControlStylingConfig.Small_FontSize ); orTextView.Text = LoginStrings.OrString; RegisterButton = view.FindViewById<Button>( Resource.Id.registerButton ); ControlStyling.StyleButton( RegisterButton, LoginStrings.RegisterButton, ControlStylingConfig.Font_Regular, ControlStylingConfig.Small_FontSize ); RegisterButton.Click += (object sender, EventArgs e ) => { SpringboardParent.ModalFragmentDone( null ); SpringboardParent.RegisterNewUser( ); }; // get the username field and background UsernameLayer = view.FindViewById<View>( Resource.Id.login_background ); ControlStyling.StyleBGLayer( UsernameLayer ); UsernameField = view.FindViewById<EditText>( Resource.Id.usernameText ); UserNameBGColor = ControlStylingConfig.BG_Layer_Color; ControlStyling.StyleTextField( UsernameField, LoginStrings.UsernamePlaceholder, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); View borderView = UsernameLayer.FindViewById<View>( Resource.Id.middle_border ); borderView.SetBackgroundColor( Rock.Mobile.UI.Util.GetUIColor( ControlStylingConfig.BG_Layer_BorderColor ) ); // get the password field and background PasswordLayer = view.FindViewById<View>( Resource.Id.password_background ); ControlStyling.StyleBGLayer( PasswordLayer ); PasswordField = view.FindViewById<EditText>( Resource.Id.passwordText ); PasswordBGColor = ControlStylingConfig.BG_Layer_Color; ControlStyling.StyleTextField( PasswordField, LoginStrings.PasswordPlaceholder, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); LoginResultLabel = view.FindViewById<TextView>( Resource.Id.loginResult ); ControlStyling.StyleUILabel( LoginResultLabel, ControlStylingConfig.Font_Regular, ControlStylingConfig.Medium_FontSize ); // Setup the facebook button FacebookButton = view.FindViewById<ImageButton>( Resource.Id.facebookButton ); FacebookButton.Background = null; FacebookButton.Click += (object sender, EventArgs e ) => { TryFacebookBind( ); }; // invoke a webview WebLayout = new WebLayout( Rock.Mobile.PlatformSpecific.Android.Core.Context ); WebLayout.LayoutParameters = new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent ); WebLayout.SetBackgroundColor( Android.Graphics.Color.Black ); return view; }