예제 #1
0
        private void SetupView()
        {
            if (PhoneModelExtensions.IsIphoneX())
            {
                _buttonHeightConstraint.Constant += UIApplication.SharedApplication.KeyWindow.SafeAreaInsets.Bottom;
            }

            UIButtonExtensions.SetupButtonAppearance(_signUpButton, Colors.MainBlue, 14f, ViewModel.SignUpButton);
            UIButtonExtensions.SetupButtonAppearance(_signInButton, Colors.White, 16f, ViewModel.SignInButton);
            UIButtonExtensions.SetupButtonAppearance(_forgotPassButton, Colors.MainBlue, 12f, ViewModel.ForgotPasswordButton);
            _forgotPassButton.LayoutIfNeeded();

            UIButton keyboardButton = new UIButton();

            UIButtonExtensions.SetupButtonAppearance(keyboardButton, Colors.White, 16f, ViewModel.SignInButton);
            keyboardButton.TouchUpInside -= OnSignInButton_TouchUpInside;
            keyboardButton.TouchUpInside += OnSignInButton_TouchUpInside;

            _emailTextField.KeyboardType = UIKeyboardType.EmailAddress;
            UITextFieldExtensions.SetupField(this.View, 0, ViewModel.EmailLabel, _emailTextField, _emailLineView, _emailHeightConstraint, _emailLabel, UIReturnKeyType.Next, keyboardButton);

            _passwordTextField.SecureTextEntry = true;
            _passwordWithConstraint.Constant   = (ScreenWidth - 80) - (_forgotPassButton.Frame.Width + 7);
            UITextFieldExtensions.SetupField(this.View, 1, ViewModel.PasswordLabel, _passwordTextField, _passwordLineView, _passwordHeightConstraint, _passwordLabel, UIReturnKeyType.Default, keyboardButton);

            _emailTextField.KeyboardType       = UIKeyboardType.EmailAddress;
            _emailTextField.AutocorrectionType = UITextAutocorrectionType.No;

            if (!string.IsNullOrEmpty(ViewModel.UserEmail))
            {
                _emailTextField.Text = ViewModel.UserEmail;
                _emailLabel.Alpha    = 1;
            }
        }
        private void SetupView()
        {
            if (PhoneModelExtensions.IsIphoneX())
            {
                _buttonHeightConstraint.Constant += UIApplication.SharedApplication.KeyWindow.SafeAreaInsets.Bottom;
            }

            _closeButton.SetImage(UIImage.FromBundle("close_white"), UIControlState.Normal);
            _closeButton.TintColor                = Colors.White;
            _backgroundView.BackgroundColor       = Colors.SelectBlue;
            _buttonBackgroundView.BackgroundColor = Colors.White;

            UIButton keyboardButton = new UIButton();

            UIButtonExtensions.SetupButtonAppearance(keyboardButton, Colors.SelectBlue, 16f, ViewModel.AccessButton);
            keyboardButton.TouchUpInside -= OnSignInButton_TouchUpInside;
            keyboardButton.TouchUpInside += OnSignInButton_TouchUpInside;

            UILabelExtensions.SetupLabelAppearance(_label, ViewModel.TitleLabel, Colors.White, 24f, UIFontWeight.Thin);
            UIButtonExtensions.SetupButtonAppearance(_submitButton, Colors.SelectBlue, 16f, ViewModel.AccessButton);
            UITextFieldExtensions.SetupTextFieldAppearance(_textField, Colors.White, 26f, ViewModel.OrganizationHint, Colors.White70, Colors.White, Colors.SelectBlue, UIFontWeight.Medium);
            UITextFieldExtensions.AddViewToKeyboard(_textField, keyboardButton, Colors.White);
            _textField.AutocorrectionType = UITextAutocorrectionType.No;
            _textField.TextContentType    = new NSString("");

            UIButtonExtensions.SetupButtonUnderlineAppearance(_createOrgButton, Colors.White, 15f, ViewModel.CreateOrganization);

            if (!string.IsNullOrEmpty(ViewModel.EmailDomain))
            {
                _textField.Text = ViewModel.EmailDomain.ToUpper();
            }
        }
예제 #3
0
 public void Show()
 {
     this.View.Frame = new CoreGraphics.CGRect(0, PhoneModelExtensions.IsIphoneX() ? LocalConstants.IphoneXNotchHeight : 0, UIScreen.MainScreen.Bounds.Width, 92);
     UIApplication.SharedApplication.KeyWindow.AddSubview(this.View);
     UIView.Animate(0.3f, () => View.Alpha = 1);
     Animations.SlideVerticaly(this.View, true, true, onFinished: () => DismissCountDown());
 }
예제 #4
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            this.View.Alpha             = 0.3f;
            this.View.BackgroundColor   = Colors.Black30;
            _sendButton.BackgroundColor = Colors.MainBlue;

            if (PhoneModelExtensions.IsIphoneX())
            {
                _bottomHeightConstraint.Constant += UIApplication.SharedApplication.KeyWindow.SafeAreaInsets.Bottom;
            }

            ImageService.Instance.LoadFile(_image).Transform(new RoundedTransformation(5f)).Into(_imageView);

            UIButtonExtensions.SetupButtonAppearance(_sendButton, Colors.White, 14f, _sendText);
            UIButtonExtensions.SetupButtonAppearance(_cancelButton, Colors.Black, 14f, _cancelText);

            _sendButton.Layer.CornerRadius   = 2f;
            _cancelButton.Layer.CornerRadius = 2f;

            _sendButton.TouchUpInside -= OnSendButton_TouchUpInside;
            _sendButton.TouchUpInside += OnSendButton_TouchUpInside;

            _cancelButton.TouchUpInside -= OnCancelButton_TouchUpInside;
            _cancelButton.TouchUpInside += OnCancelButton_TouchUpInside;
        }
예제 #5
0
        private void ScrollsToRow(object sender, NSIndexPath index)
        {
            //_tableView.ScrollToRow(NSIndexPath.FromRowSection(index.Row, index.Section), UITableViewScrollPosition.Top, true);
            nfloat animationHeight = 0;

            if (!IsAnimated)
            {
                animationHeight = LocalConstants.RecoverPass_Animation;
            }

            if ((index.Row == 0 && index.Section == 2))
            {
                if (PhoneModelExtensions.IsSmallIphone())
                {
                    animationHeight += LocalConstants.RecoverPass_CodeHeightAnimation;
                    _bigAnimation    = true;
                }

                UIViewAnimationExtensions.AnimateBackgroundView(_backgroundView, animationHeight, true);
                IsAnimated = true;
            }
            else if (_bigAnimation)
            {
                UIViewAnimationExtensions.AnimateBackgroundView(_backgroundView, -LocalConstants.RecoverPass_CodeHeightAnimation, true);
                _bigAnimation = false;
            }
            else
            {
                UIViewAnimationExtensions.AnimateBackgroundView(_backgroundView, animationHeight, true);
                IsAnimated = true;
            }
        }
예제 #6
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            if (string.IsNullOrEmpty(_image))
            {
                Dismiss();
                return;
            }

            this.View.Alpha = 0f;

            if (PhoneModelExtensions.IsIphoneX())
            {
                _buttonHeightConstraint.Constant += UIApplication.SharedApplication.KeyWindow.SafeAreaInsets.Bottom;
            }

            if (Uri.IsWellFormedUriString(_image, UriKind.Absolute))
            {
                ImageService.Instance.LoadUrl(_image).Retry(3, 200).Into(_imageView);
            }
            else
            {
                ImageService.Instance.LoadFile(_image).Retry(3, 200).Into(_imageView);
            }

            UIButtonExtensions.SetupButtonAppearance(_saveButton, Colors.Black, 15f, _saveText);
            _saveButton.Hidden = true;

            _closeButton.TouchUpInside -= OnCloseButton_TouchUpInside;
            _closeButton.TouchUpInside += OnCloseButton_TouchUpInside;

            _saveButton.TouchUpInside -= OnSaveButton_TouchUpInside;
            _saveButton.TouchUpInside += OnSaveButton_TouchUpInside;
        }
예제 #7
0
        private void SetupView()
        {
            if (PhoneModelExtensions.IsIphoneX())
            {
                _buttonHeightConstraint.Constant += UIApplication.SharedApplication.KeyWindow.SafeAreaInsets.Bottom;
            }

            _buttonView.BackgroundColor = Colors.MainBlue;
            UIButtonExtensions.SetupButtonAppearance(_submitButton, Colors.White, 16f, ViewModel.SubmitButton);
        }
예제 #8
0
        private void SetupView()
        {
            if (PhoneModelExtensions.IsIphoneX())
            {
                _buttonHeightConstraint.Constant += UIApplication.SharedApplication.KeyWindow.SafeAreaInsets.Bottom;
            }

            UIButtonExtensions.SetupButtonUnderlineAppearance(_signInButton, Colors.White, 16f, ViewModel.SignIn);
            UIButtonExtensions.SetupButtonAppearance(_signUpButton, Colors.MainBlue, 16f, ViewModel.SignUp);
            _pageParent.BackgroundColor    = Colors.MainBlue;
            _pageContainer.BackgroundColor = Colors.MainBlue;
        }
예제 #9
0
        private void OnSource_ScrollTopEvent(object sender, EventArgs e)
        {
            if (PhoneModelExtensions.IsIphoneX() && _firstTime)
            {
                _firstTime = false;
                return;
            }

            if (ViewModel.FetchOldMessagesCommand.CanExecute())
            {
                ViewModel.FetchOldMessagesCommand.Execute();
            }
        }
        private void SetupView()
        {
            if (PhoneModelExtensions.IsIphoneX())
            {
                _navBarTopConstraint.Constant     = LocalConstants.IphoneXNotchHeight;
                _buttonHeightConstraint.Constant += UIApplication.SharedApplication.KeyWindow.SafeAreaInsets.Bottom;
            }

            UIButtonExtensions.SetupButtonAppearance(_submitButton, Colors.White, 16f, ViewModel.SubmitButton);
            UILabelExtensions.SetupLabelAppearance(_titleLabel, ViewModel.NewPassTitle, Colors.Black, 17f, UIFontWeight.Semibold);
            _closeButton.SetImage(UIImage.FromBundle("close_black"), UIControlState.Normal);
            _closeButton.TintColor      = Colors.Black;
            _buttonView.BackgroundColor = Colors.MainBlue;
        }
예제 #11
0
        private void SetupView()
        {
            if (PhoneModelExtensions.IsIphoneX())
            {
                _buttonHeightConstraint.Constant += UIApplication.SharedApplication.KeyWindow.SafeAreaInsets.Bottom;
            }

            _view1.BackgroundColor = Colors.ProfileGrayWhiter;
            _view2.BackgroundColor = Colors.ProfileGrayWhiter;
            _view3.BackgroundColor = Colors.ProfileGrayWhiter;

            UITextFieldExtensions.SetupTextFieldAppearance(_currentPassword, Colors.Black, 15f, ViewModel.CurrentPass, Colors.GrayIndicator, Colors.MainBlue, Colors.White, returnKeyType: UIReturnKeyType.Next, view: this.View, tag: 0);
            UITextFieldExtensions.SetupTextFieldAppearance(_newPassword, Colors.Black, 15f, ViewModel.NewPassTitle, Colors.GrayIndicator, Colors.MainBlue, Colors.White, returnKeyType: UIReturnKeyType.Next, view: this.View, tag: 1);
            UITextFieldExtensions.SetupTextFieldAppearance(_confirmPassword, Colors.Black, 15f, ViewModel.NewPassAgainTitle, Colors.GrayIndicator, Colors.MainBlue, Colors.White, view: this.View, tag: 2);

            _currentPassword.SecureTextEntry = true;
            _newPassword.SecureTextEntry     = true;
            _confirmPassword.SecureTextEntry = true;

            UIButtonExtensions.SetupButtonAppearance(_submitButton, Colors.White, 14f, ViewModel.ChangePassword);
            _backgroundButton.BackgroundColor = Colors.MainBlue;

            var keyboardButton1 = new UIButton();

            UIButtonExtensions.SetupButtonAppearance(keyboardButton1, Colors.White, 16f, ViewModel.ChangePassword);
            keyboardButton1.TouchUpInside -= OnSubmitButton_TouchUpInside;
            keyboardButton1.TouchUpInside += OnSubmitButton_TouchUpInside;

            var keyboardButton2 = new UIButton();

            UIButtonExtensions.SetupButtonAppearance(keyboardButton2, Colors.White, 16f, ViewModel.ChangePassword);
            keyboardButton2.TouchUpInside -= OnSubmitButton_TouchUpInside;
            keyboardButton2.TouchUpInside += OnSubmitButton_TouchUpInside;

            var keyboardButton3 = new UIButton();

            UIButtonExtensions.SetupButtonAppearance(keyboardButton3, Colors.White, 16f, ViewModel.ChangePassword);
            keyboardButton3.TouchUpInside -= OnSubmitButton_TouchUpInside;
            keyboardButton3.TouchUpInside += OnSubmitButton_TouchUpInside;

            _submitButton.TouchUpInside -= OnSubmitButton_TouchUpInside;
            _submitButton.TouchUpInside += OnSubmitButton_TouchUpInside;

            UITextFieldExtensions.AddViewToKeyboard(_currentPassword, keyboardButton1, Colors.MainBlue);
            UITextFieldExtensions.AddViewToKeyboard(_newPassword, keyboardButton2, Colors.MainBlue);
            UITextFieldExtensions.AddViewToKeyboard(_confirmPassword, keyboardButton3, Colors.MainBlue);
        }
예제 #12
0
        private void SetupView()
        {
            if (PhoneModelExtensions.IsIphoneX())
            {
                _nameLabelHeightConstraint.Constant = _nameLabelHeightConstraint.Constant + 30;
            }

            int nameSize = 33;

            if (PhoneModelExtensions.IsSmallIphone())
            {
                nameSize = 25;
                _callDetailsHeightConstraint.Constant = 20;
            }

            UILabelExtensions.SetupLabelAppearance(_fullNameLabel, ViewModel.MemberFullName, Colors.White, nameSize);

            if (ViewModel.StartedCall)
            {
                _callDetailLabel.Text = ViewModel.CallingLabel;
            }

            _pictureImage.Image?.Dispose();
            _backgroundImage.Image?.Dispose();

            if (string.IsNullOrEmpty(ViewModel.MemberProfileModel.Picture))
            {
                _backgroundImage.BackgroundColor = Colors.BlueSetup;
                _pictureImage.Image = UIImage.FromBundle("profile_noimage");
            }
            else
            {
                ImageService.Instance.LoadStream((token) => {
                    return(ImageHelper.GetStreamFromImageByte(token, ViewModel.MemberProfileModel.Picture));
                }).ErrorPlaceholder("letter_round_big", ImageSource.CompiledResource).Transform(new CircleTransformation()).Into(_pictureImage);

                _backgroundImg = string.Copy(ViewModel.MemberProfileModel.Picture);

                ImageService.Instance.LoadStream((token) => {
                    return(ImageHelper.GetStreamFromImageByte(token, _backgroundImg));
                }).ErrorPlaceholder("letter_round_big", ImageSource.CompiledResource).Transform(new BlurredTransformation(14f)).Into(_backgroundImage);
            }

            StartCall();
        }
예제 #13
0
        private void SetupView()
        {
            if (PhoneModelExtensions.IsIphoneX())
            {
                _buttonHeightConstraint.Constant += 20;
            }

            this.Title = ViewModel.Division.Name;
            _profileHeaderView.BackgroundColor = Colors.MainBlue;

            UILabelExtensions.SetupLabelAppearance(_membersLabel, $"{ViewModel.Division.UserCount} {ViewModel.MembersLabel}", Colors.White, 13f);

            if (!string.IsNullOrEmpty(ViewModel.Division.Description))
            {
                UILabelExtensions.SetupLabelAppearance(_descriptionLabel, ViewModel.Division.Description, Colors.White, 13f);
            }
            else
            {
                UILabelExtensions.SetupLabelAppearance(_descriptionLabel, ViewModel.DivisionNoDescription, Colors.ProfileGrayWhiter, 13f, italic: true);
            }

            _memberImage.Image = UIImage.FromBundle("members");

            _profileImage.Image?.Dispose();
            ImageService.Instance.LoadStream((token) => {
                return(ImageHelper.GetStreamFromImageByte(token, ViewModel.Division.Picture));
            }).ErrorPlaceholder("division_noimage", ImageSource.CompiledResource).Transform(new CircleTransformation()).Into(_profileImage);
            CustomUIExtensions.RoundShadow(_profileImage);

            _buttonView1.BackgroundColor = Colors.ConnectViewButton1;
            _buttonView2.BackgroundColor = Colors.ConnectViewButton2;

            UIButtonExtensions.SetupButtonAppearance(_button1, Colors.MainBlue, 15f, ViewModel.SendEmailLabel);
            UIButtonExtensions.SetupButtonAppearance(_button2, Colors.MainBlue, 15f, ViewModel.CallLabel);

            _button1.TouchUpInside -= OnButton1_TouchUpInside;
            _button1.TouchUpInside += OnButton1_TouchUpInside;

            _button2.TouchUpInside -= OnButton2_TouchUpInside;
            _button2.TouchUpInside += OnButton2_TouchUpInside;

            _tableView.Source = new DivisionSource(_tableView, ViewModel.OrganizationInfo, ViewModel.ProfileDetails);
            _tableView.ReloadData();
        }
예제 #14
0
        private void SetupView()
        {
            if (PhoneModelExtensions.IsIphoneX())
            {
                _navigationTopConstraint.Constant = LocalConstants.IphoneXNotchHeight;
                _buttonHeightConstraint.Constant += UIApplication.SharedApplication.KeyWindow.SafeAreaInsets.Bottom;
            }

            UIButtonExtensions.SetupButtonAppearance(_button, Colors.White, 16f, ViewModel.SubmitButton);
            UIButtonExtensions.SetupButtonAppearance(_requestCodeButton, Colors.MainBlue, 15f, ViewModel.ResendCodeButton);
            UILabelExtensions.SetupLabelAppearance(_activateLabel, ViewModel.ActivateLabel, Colors.GrayDivider, 14f);
            UILabelExtensions.SetupLabelAppearance(_titleLabel, ViewModel.Title, Colors.Black, 17f, UIFontWeight.Semibold);

            var keyboardButton = new UIButton();

            UIButtonExtensions.SetupButtonAppearance(keyboardButton, Colors.White, 16f, ViewModel.SubmitButton);
            keyboardButton.TouchUpInside -= OnSubmitButton_TouchUpInside;
            keyboardButton.TouchUpInside += OnSubmitButton_TouchUpInside;
            UITextFieldExtensions.AddViewToKeyboard(_textField, keyboardButton, Colors.MainBlue);

            _textField.AutocorrectionType = UITextAutocorrectionType.No;
            _textField.TextContentType    = new NSString("");
            _closeButon.SetImage(UIImage.FromBundle("close_black"), UIControlState.Normal);
            _closeButon.TintColor            = Colors.Black;
            _backgroundView.BackgroundColor  = Colors.MainBlue4;
            _buttonView.BackgroundColor      = Colors.MainBlue;
            _textField.TextColor             = Colors.MainBlue;
            _textField.AttributedPlaceholder = new NSAttributedString(ViewModel.PlaceHolder, new UIStringAttributes()
            {
                ForegroundColor = Colors.GrayIndicator
            });
            _textField.BecomeFirstResponder();

            _requestCodeButton.TouchUpInside -= OnRequestCodeButton_TouchUpInside;
            _requestCodeButton.TouchUpInside += OnRequestCodeButton_TouchUpInside;

            _button.TouchUpInside -= OnSubmitButton_TouchUpInside;
            _button.TouchUpInside += OnSubmitButton_TouchUpInside;

            _closeButon.TouchUpInside -= OnCloseButon_TouchUpInside;
            _closeButon.TouchUpInside += OnCloseButon_TouchUpInside;
        }
예제 #15
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            if (PhoneModelExtensions.IsIphoneX())
            {
                _navBarTopConstraint.Constant = LocalConstants.IphoneXNotchHeight;
            }

            _backgroundView.BackgroundColor = Colors.WhiteBlue;
            _imageView.Image   = UIImage.FromBundle("letter_curved");
            _reloadImage.Image = UIImage.FromBundle("update");

            UILabelExtensions.SetupLabelAppearance(_navTitleLabel, ViewModel.Title, Colors.Black, 22f);
            UILabelExtensions.SetupLabelAppearance(_subtitleLabel, ViewModel.Subtitle, Colors.Black, 24f, UIFontWeight.Light);
            UILabelExtensions.SetupLabelAppearance(_descriptionLabel, ViewModel.Description, Colors.Black, 16f, UIFontWeight.Light);

            ViewModel.PropertyChanged -= ViewModel_PropertyChanged;
            ViewModel.PropertyChanged += ViewModel_PropertyChanged;
        }
예제 #16
0
        private void SetupView()
        {
            if (PhoneModelExtensions.IsIphoneX())
            {
                _buttonHeightConstraint.Constant += 20;
            }

            _backHeightConstraint.Constant = _backHeightConstraint.Constant + (PhoneModelExtensions.IsIphoneX() ? 20 : 0);

            _tableView.SeparatorStyle = UITableViewCellSeparatorStyle.None;

            _headerView.BackgroundColor = Colors.MainBlue;
            _backImage.Image            = UIImage.FromBundle("back_white");

            _chatView.BackgroundColor = Colors.ConnectViewButton1;
            _callView.BackgroundColor = Colors.ConnectViewButton2;

            UIButtonExtensions.SetupButtonAppearance(_chatButton, Colors.MainBlue, 15f, ViewModel.ChatLabel);
            UIButtonExtensions.SetupButtonAppearance(_callButton, Colors.MainBlue, 15f, ViewModel.CallLabel);

            _backButton.TouchUpInside -= OnBackButton_TouchUpInside;
            _backButton.TouchUpInside += OnBackButton_TouchUpInside;
        }
예제 #17
0
        public void Configure(ProfileHeaderModel profile)
        {
            _profile             = profile;
            this.BackgroundColor = Colors.MainBlue;
            UILabelExtensions.SetupLabelAppearance(_nameLabel, profile.Name, Colors.White, 22f);
            UITextFieldExtensions.SetupTextFieldAppearance(_descriptionField, Colors.White, 14f, DescriptionField, Colors.White70, Colors.White, Colors.MainBlue);

            _descriptionField.ReturnKeyType = UIReturnKeyType.Done;

            _descriptionField.AdjustsFontSizeToFitWidth = true;
            _descriptionField.MinimumFontSize           = 11f;

            _descriptionField.ShouldReturn -= TextFieldShouldReturn;
            _descriptionField.ShouldReturn += TextFieldShouldReturn;

            _settingsButton.SetImage(UIImage.FromBundle("settings"), UIControlState.Normal);
            _settingsButton.ContentMode = UIViewContentMode.ScaleAspectFit;
            _settingsButton.TintColor   = Colors.White;

            _profileImage.Image?.Dispose();
            ImageService.Instance.LoadStream((token) =>
            {
                return(ImageHelper.GetStreamFromImageByte(token, profile.Picture));
            }).ErrorPlaceholder("add_photo", ImageSource.CompiledResource).Transform(new CircleTransformation()).Into(_profileImage);
            CustomUIExtensions.RoundShadow(_profileImage);

            CustomUIExtensions.LabelShadow(_nameLabel);

            if (!string.IsNullOrEmpty(profile.Description))
            {
                _descriptionField.Text = profile.Description;
            }
            else
            {
                _descriptionField.Font = UIFont.ItalicSystemFontOfSize(14f);
            }

            _descriptionField.ShouldChangeCharacters = OnDescriptionField_ShouldChangeCharacters;

            if (PhoneModelExtensions.IsIphoneX())
            {
                _settingsHeightConstraint.Constant = 25;
                _settingsWidthConstraint.Constant  = 8;
            }
            else if (!UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
            {
                _settingsHeightConstraint.Constant = 23;
            }

            _descriptionField.EditingDidBegin -= OnDescriptionField_EditingDidBegin;
            _descriptionField.EditingDidBegin += OnDescriptionField_EditingDidBegin;

            _descriptionField.EditingDidEnd -= OnDescriptionField_EditingDidEnd;
            _descriptionField.EditingDidEnd += OnDescriptionField_EditingDidEnd;

            _settingsButton.TouchUpInside -= OnConfigButton_TouchUpInside;
            _settingsButton.TouchUpInside += OnConfigButton_TouchUpInside;

            _profileButton.TouchUpInside -= OnProfileButton_TouchUpInside;
            _profileButton.TouchUpInside += OnProfileButton_TouchUpInside;
        }
예제 #18
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            _viewSize = (float)UIScreen.MainScreen.Bounds.Width;
            _barView  = new UIView();
            _barView.BackgroundColor       = Colors.MainBlue;
            _separatorView.BackgroundColor = Colors.GrayDividerContacts;
            _separatorView.Hidden          = true;

            if (ViewModel.IsPresentingCustomView == ContactListViewModel.ContactsType.All)
            {
                this.Title = ViewModel.Title;

                if (UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
                {
                    this.NavigationController.NavigationBar.PrefersLargeTitles = false;
                    this.NavigationItem.LargeTitleDisplayMode = UINavigationItemLargeTitleDisplayMode.Never;
                }

                this.NavigationItem.RightBarButtonItem = UIButtonExtensions.SetupImageBarButton(LocalConstants.TabBarIconSize, "contacts_filter", OpenFilter, false);

                _presentView.Hidden = true;
                _presentViewHeightConstraint.Constant = 0;
            }
            else
            {
                UILabelExtensions.SetupLabelAppearance(_titleLabel, ViewModel.IsPresentingCustomView == ContactListViewModel.ContactsType.Call ? ViewModel.NewCallTitle : ViewModel.NewChatTitle,
                                                       Colors.Black, 17f, UIFontWeight.Semibold);
                UIButtonExtensions.SetupButtonAppearance(_cancelButton, _cancelButton.TintColor, 17f, ViewModel.Cancel);

                _cancelButton.TitleLabel.Lines = 1;
                _cancelButton.TitleLabel.AdjustsFontSizeToFitWidth = true;
                _cancelButton.TitleLabel.LineBreakMode             = UILineBreakMode.Clip;
                _cancelButton.TouchUpInside -= OnCancelButton_TouchUpInside;
                _cancelButton.TouchUpInside += OnCancelButton_TouchUpInside;

                if (PhoneModelExtensions.IsIphoneX())
                {
                    _titleLabelHeightConstraint.Constant = _titleLabelHeightConstraint.Constant + 10;
                }
            }

            _pageViewController = new UIPageViewController(UIPageViewControllerTransitionStyle.Scroll, UIPageViewControllerNavigationOrientation.Horizontal);

            this.AddChildViewController(_pageViewController);
            _pageView.AddSubview(_pageViewController.View);

            _tableViewGesture.AddTarget(() => HandleDrag(_tableViewGesture));

            this.View.AddSubview(_barView);
            this.View.BringSubviewToFront(_barView);

            ConfigureView();

            _search = new UISearchController(searchResultsController: null)
            {
                DimsBackgroundDuringPresentation = false
            };
            _search.SearchBar.TintColor = Colors.White;
            _search.SearchBar.BarStyle  = UIBarStyle.Black;

            _textFieldInsideSearchBar = _search.SearchBar.ValueForKey(new NSString("searchField")) as UITextField;
            _textFieldInsideSearchBar.ReturnKeyType   = UIReturnKeyType.Done;
            _textFieldInsideSearchBar.ClearButtonMode = UITextFieldViewMode.Never;

            _search.SearchBar.OnEditingStarted -= OnSearchBar_OnEditingStarted;
            _search.SearchBar.OnEditingStarted += OnSearchBar_OnEditingStarted;

            _search.SearchBar.OnEditingStopped -= OnSearchBar_OnEditingStopped;
            _search.SearchBar.OnEditingStopped += OnSearchBar_OnEditingStopped;

            _search.SearchBar.CancelButtonClicked -= OnSearchBar_CancelButtonClicked;
            _search.SearchBar.CancelButtonClicked += OnSearchBar_CancelButtonClicked;

            _search.SearchResultsUpdater = this;

            if (UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
            {
                _textFieldInsideSearchBar.Text = ViewModel.SearchLabel;
                _textFieldInsideSearchBar.Subviews[0].Alpha = 0.07f;

                _search.SearchBar.SetImageforSearchBarIcon(UIImage.FromBundle("search"), UISearchBarIcon.Search, UIControlState.Normal);
                _search.SearchBar.SetImageforSearchBarIcon(UIImage.FromBundle("clear"), UISearchBarIcon.Clear, UIControlState.Normal);

                this.DefinesPresentationContext      = true;
                this.NavigationItem.SearchController = _search;
            }
            else
            {
                this.DefinesPresentationContext = false;
                _search.HidesNavigationBarDuringPresentation = false;
                _search.SearchBar.BarStyle = UIBarStyle.Default;

                if (_tableViews?.Count > 0)
                {
                    _tableViews.FirstOrDefault().TableHeaderView = _search.SearchBar;
                }
            }

            ViewModel.PropertyChanged -= ViewModel_PropertyChanged;
            ViewModel.PropertyChanged += ViewModel_PropertyChanged;
        }