Esempio n. 1
0
        protected CommentTableViewCell(IntPtr handle) : base(handle)
        {
            _avatar                    = new UIImageView();
            _avatar.ContentMode        = UIViewContentMode.ScaleAspectFill;
            _avatar.Layer.CornerRadius = 15;
            _avatar.ClipsToBounds      = true;
            ContentView.AddSubview(_avatar);
            _avatar.AutoSetDimensionsToSize(new CGSize(30, 30));
            _avatar.AutoPinEdgeToSuperviewEdge(ALEdge.Left, 15);
            _avatar.AutoPinEdgeToSuperviewEdge(ALEdge.Top, 10);

            _loginLabel      = new UILabel();
            _loginLabel.Font = Constants.Semibold14;
            ContentView.AddSubview(_loginLabel);
            _loginLabel.AutoPinEdge(ALEdge.Left, ALEdge.Right, _avatar, 10);
            _loginLabel.AutoAlignAxis(ALAxis.Horizontal, _avatar);

            _timestamp           = new UILabel();
            _timestamp.Font      = Constants.Regular12;
            _timestamp.TextColor = Constants.R151G155B158;
            ContentView.AddSubview(_timestamp);
            _timestamp.AutoPinEdgeToSuperviewEdge(ALEdge.Right, 14);
            _timestamp.AutoPinEdge(ALEdge.Left, ALEdge.Right, _loginLabel);
            _timestamp.SetContentHuggingPriority(251, UILayoutConstraintAxis.Horizontal);
            _timestamp.AutoAlignAxis(ALAxis.Horizontal, _avatar);

            _commentText                 = new UITextView();
            _commentText.Editable        = false;
            _commentText.ScrollEnabled   = false;
            _commentText.Font            = Constants.Regular14;
            _commentText.BackgroundColor = UIColor.Clear;
            ContentView.AddSubview(_commentText);
            _commentText.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, _avatar);
            _commentText.AutoPinEdge(ALEdge.Left, ALEdge.Left, _avatar, -4);

            _like                        = new UIImageView();
            _like.ContentMode            = UIViewContentMode.Center;
            _like.UserInteractionEnabled = true;
            ContentView.AddSubview(_like);
            _like.AutoSetDimensionsToSize(new CGSize(40, 50));
            _like.AutoAlignAxis(ALAxis.Horizontal, _commentText);
            _like.AutoPinEdge(ALEdge.Left, ALEdge.Right, _commentText);
            _like.AutoPinEdge(ALEdge.Right, ALEdge.Right, _timestamp, 11);

            _profileTapView = new UIView();
            _profileTapView.UserInteractionEnabled = true;
            ContentView.AddSubview(_profileTapView);
            _profileTapView.AutoPinEdgeToSuperviewEdge(ALEdge.Left);
            _profileTapView.AutoPinEdgeToSuperviewEdge(ALEdge.Top);
            _profileTapView.AutoPinEdge(ALEdge.Right, ALEdge.Right, _loginLabel);
            _profileTapView.AutoPinEdge(ALEdge.Bottom, ALEdge.Top, _commentText);

            _bottomView              = new UIStackView();
            _bottomView.Axis         = UILayoutConstraintAxis.Horizontal;
            _bottomView.Distribution = UIStackViewDistribution.Fill;
            _bottomView.Alignment    = UIStackViewAlignment.Leading;
            _bottomView.Spacing      = 19;
            ContentView.AddSubview(_bottomView);
            _bottomView.AutoSetDimension(ALDimension.Height, 50);
            _bottomView.AutoPinEdgeToSuperviewEdge(ALEdge.Bottom);
            _bottomView.AutoPinEdge(ALEdge.Left, ALEdge.Left, _avatar);
            _bottomView.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, _commentText);
            _bottomView.AutoPinEdge(ALEdge.Right, ALEdge.Right, _timestamp);

            _replyLabel           = new UILabel();
            _replyLabel.Text      = "Reply";
            _replyLabel.Font      = Constants.Regular12;
            _replyLabel.TextColor = Constants.R151G155B158;
            _replyLabel.UserInteractionEnabled = true;
            _bottomView.AddArrangedSubview(_replyLabel);
            _replyLabel.SetContentHuggingPriority(251, UILayoutConstraintAxis.Horizontal);
            _replyLabel.SetContentCompressionResistancePriority(750, UILayoutConstraintAxis.Horizontal);

            _likesLabel           = new UILabel();
            _likesLabel.Font      = Constants.Regular12;
            _likesLabel.TextColor = Constants.R151G155B158;
            _likesLabel.UserInteractionEnabled = true;
            _bottomView.AddArrangedSubview(_likesLabel);
            _likesLabel.SetContentHuggingPriority(251, UILayoutConstraintAxis.Horizontal);

            _flagsLabel           = new UILabel();
            _flagsLabel.Font      = Constants.Regular12;
            _flagsLabel.TextColor = Constants.R151G155B158;
            _flagsLabel.UserInteractionEnabled = true;
            _bottomView.AddArrangedSubview(_flagsLabel);
            _flagsLabel.SetContentHuggingPriority(251, UILayoutConstraintAxis.Horizontal);

            _costLabel        = new UILabel();
            _costLabel.Font   = Constants.Regular12;
            _costLabel.Hidden = true;
#if DEBUG
            _costLabel.Hidden = false;
#endif
            _costLabel.TextColor = Constants.R151G155B158;
            _bottomView.AddArrangedSubview(_costLabel);
            _costLabel.SetContentHuggingPriority(251, UILayoutConstraintAxis.Horizontal);

            var hugView = new UIView();
            _bottomView.AddArrangedSubview(hugView);
            hugView.SetContentHuggingPriority(250, UILayoutConstraintAxis.Horizontal);

            var tap = new UITapGestureRecognizer(() =>
            {
                if (SwipeState == MGSwipeState.None)
                {
                    CellAction?.Invoke(ActionType.Profile, _currentPost);
                }
            });
            var costTap = new UITapGestureRecognizer(() =>
            {
                if (SwipeState == MGSwipeState.None)
                {
                    CellAction?.Invoke(ActionType.Profile, _currentPost);
                }
            });
            var replyTap = new UITapGestureRecognizer(() =>
            {
                if (SwipeState == MGSwipeState.None)
                {
                    CellAction?.Invoke(ActionType.Reply, _currentPost);
                }
            });
            var likersTap = new UITapGestureRecognizer(() =>
            {
                if (SwipeState == MGSwipeState.None)
                {
                    CellAction?.Invoke(ActionType.Voters, _currentPost);
                }
            });
            var flagersTap = new UITapGestureRecognizer(() =>
            {
                if (SwipeState == MGSwipeState.None)
                {
                    CellAction?.Invoke(ActionType.Flagers, _currentPost);
                }
            });
            _replyLabel.AddGestureRecognizer(replyTap);
            _profileTapView.AddGestureRecognizer(tap);
            _costLabel.AddGestureRecognizer(costTap);
            _likesLabel.AddGestureRecognizer(likersTap);
            _flagsLabel.AddGestureRecognizer(flagersTap);

            var liketap = new UITapGestureRecognizer(LikeTap);
            _like.AddGestureRecognizer(liketap);

            _sliderView          = new SliderView(UIScreen.MainScreen.Bounds.Width);
            _sliderView.LikeTap += () =>
            {
                LikeTap();
            };
            BaseViewController.SliderAction += (isSliderOpening) =>
            {
                if (_sliderView.Superview != null && !isSliderOpening)
                {
                    RightButtons = rigthButtons;
                    _sliderView.Close();
                }
            };

            var likelongtap = new UILongPressGestureRecognizer((UILongPressGestureRecognizer obj) =>
            {
                if (AppSettings.User.IsAuthenticated && !_currentPost.Vote)
                {
                    if (obj.State == UIGestureRecognizerState.Began)
                    {
                        if (!BasePostPresenter.IsEnableVote || BaseViewController.IsSliderOpen)
                        {
                            return;
                        }
                        rigthButtons = RightButtons;
                        RightButtons = new UIView[0];

                        _sliderView.Frame = new CGRect(4, ContentView.Frame.Height / 2 - 35, UIScreen.MainScreen.Bounds.Width - 8, 70);

                        BaseViewController.IsSliderOpen = true;
                        _sliderView.Show(this);
                    }
                }
            });
            _like.AddGestureRecognizer(likelongtap);

            RightSwipeSettings.Transition = MGSwipeTransition.Border;

            deleteButton = MGSwipeButton.ButtonWithTitle("", UIImage.FromBundle("ic_delete"), UIColor.FromRGB(250, 250, 250), 26, (tableCell) =>
            {
                CellAction?.Invoke(ActionType.Delete, _currentPost);
                return(true);
            });

            editButton = MGSwipeButton.ButtonWithTitle("", UIImage.FromBundle("ic_edit"), UIColor.FromRGB(250, 250, 250), 26, (arg0) =>
            {
                CellAction?.Invoke(ActionType.Edit, _currentPost);
                _currentPost.Editing        = true;
                ContentView.BackgroundColor = UIColor.FromRGB(255, 235, 143).ColorWithAlpha(0.5f);
                return(true);
            });

            flagButton = MGSwipeButton.ButtonWithTitle("", UIImage.FromBundle("ic_flag"), UIColor.FromRGB(250, 250, 250), 26, (arg0) =>
            {
                CellAction?.Invoke(ActionType.Flag, _currentPost);
                return(true);
            });
        }
        private void CreateView()
        {
            _commentTextView = new UITextView();
            _commentTextView.Layer.BorderColor  = Helpers.Constants.R244G244B246.CGColor;
            _commentTextView.Layer.BorderWidth  = 1f;
            _commentTextView.Layer.CornerRadius = 20f;
            _commentTextView.TextContainerInset = new UIEdgeInsets(10, 20, 10, 15);
            _commentTextView.Font    = Constants.Regular14;
            _commentTextView.Bounces = false;
            _commentTextView.ShowsVerticalScrollIndicator = false;
            _commentsTextViewDelegate = new CommentsTextViewDelegate();

            _commentsTextViewDelegate.ChangedAction += (gh) =>
            {
                _commentViewHeight.Constant = _commentTextViewHeight.Constant = gh;
                if (_postToEdit != null && _postToEdit.Editing)
                {
                    _saveButton.Enabled = _postToEdit.Body != _commentTextView.Text;
                }
            };

            _commentTextView.Delegate = _commentsTextViewDelegate;

            _sendButton = new UIButton();
            _sendButton.Layer.BorderColor  = Constants.R244G244B246.CGColor;
            _sendButton.Layer.BorderWidth  = 1f;
            _sendButton.Layer.CornerRadius = 20f;
            _sendButton.SetImage(UIImage.FromBundle("ic_send_comment"), UIControlState.Normal);
            _sendButton.TouchDown += CreateComment;

            _sendProgressBar                  = new UIActivityIndicatorView();
            _sendProgressBar.Color            = Constants.R231G72B0;
            _sendProgressBar.HidesWhenStopped = true;

            _commentView           = new UIStackView(new UIView[] { _commentTextView, _sendButton, _sendProgressBar });
            _commentView.Alignment = UIStackViewAlignment.Center;
            _commentView.Spacing   = 10;

            _sendProgressBar.AutoSetDimension(ALDimension.Width, 40);
            _sendProgressBar.AutoSetDimension(ALDimension.Height, 40);

            var backgroundView = new UIView();

            backgroundView.TranslatesAutoresizingMaskIntoConstraints = false;
            _commentView.InsertSubview(backgroundView, 0);
            backgroundView.AutoPinEdgesToSuperviewEdges();

            _sendButton.AutoSetDimension(ALDimension.Width, 40);
            _sendButton.AutoSetDimension(ALDimension.Height, 40);

            _commentsTable = new UITableView();

            _rootView      = new UIStackView(new UIView[] { _commentsTable, _commentView });
            _rootView.Axis = UILayoutConstraintAxis.Vertical;
            View.AddSubview(_rootView);

            _rootView.AutoPinEdgeToSuperviewEdge(ALEdge.Top);
            if (DeviceModel.Model(DeviceHardware.HardwareModel) == "iPhone10,6")
            {
                _rootView.AutoPinEdgeToSuperviewEdge(ALEdge.Bottom, 34);
            }
            else
            {
                _rootView.AutoPinEdgeToSuperviewEdge(ALEdge.Bottom);
            }
            _rootView.AutoPinEdgeToSuperviewEdge(ALEdge.Left);
            _rootView.AutoPinEdgeToSuperviewEdge(ALEdge.Right);

            _commentTextViewHeight     = _commentTextView.AutoSetDimension(ALDimension.Height, 40, NSLayoutRelation.GreaterThanOrEqual);
            _commentViewHeight         = _commentView.AutoSetDimension(ALDimension.Height, 40, NSLayoutRelation.GreaterThanOrEqual);
            _commentView.LayoutMargins = new UIEdgeInsets(10, 15, 10, 15);
            _commentView.LayoutMarginsRelativeArrangement = true;

            _saveButton = new UIButton();
            _saveButton.SetTitle("Save", UIControlState.Normal);
            _saveButton.SetTitleColor(UIColor.FromRGB(255, 44, 5), UIControlState.Normal);
            _saveButton.TouchDown         += SaveTap;
            _saveButton.Layer.BorderColor  = Constants.R244G244B246.CGColor;
            _saveButton.Layer.BorderWidth  = 1f;
            _saveButton.Layer.CornerRadius = 20f;
            _saveButton.Font = Constants.Semibold14;

            _editProgressBar                  = new UIActivityIndicatorView();
            _editProgressBar.Color            = Constants.R231G72B0;
            _editProgressBar.HidesWhenStopped = true;

            _cancelButton = new UIButton();
            _cancelButton.SetTitle("Cancel", UIControlState.Normal);
            _cancelButton.SetTitleColor(UIColor.Black, UIControlState.Normal);
            _cancelButton.TouchDown         += CancelTap;
            _cancelButton.Layer.BorderColor  = Constants.R244G244B246.CGColor;
            _cancelButton.Layer.BorderWidth  = 1f;
            _cancelButton.Layer.CornerRadius = 20f;
            _cancelButton.Font = Constants.Regular14;

            _buttonsContainer = new UIStackView(new UIView[] { _cancelButton, _saveButton, _editProgressBar });
            _buttonsContainer.AutoSetDimension(ALDimension.Height, 50);
            _buttonsContainer.Spacing       = 15;
            _buttonsContainer.Distribution  = UIStackViewDistribution.FillEqually;
            _buttonsContainer.LayoutMargins = new UIEdgeInsets(0, 15, 10, 15);
            _buttonsContainer.LayoutMarginsRelativeArrangement = true;
            _buttonsContainer.Hidden = true;
            _rootView.AddArrangedSubview(_buttonsContainer);

            _tableProgressBar = new UIActivityIndicatorView();
            _tableProgressBar.ActivityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge;
            _tableProgressBar.Color            = Constants.R231G72B0;
            _tableProgressBar.HidesWhenStopped = true;
            _rootView.AddSubview(_tableProgressBar);
            _tableProgressBar.AutoAlignAxis(ALAxis.Horizontal, _commentsTable);
            _tableProgressBar.AutoAlignAxis(ALAxis.Vertical, _commentsTable);
        }
        private void CreateView()
        {
            View.BackgroundColor = UIColor.White;

            UILabel recepientLabel = new UILabel();

            recepientLabel.Text      = AppSettings.LocalizationManager.GetText(LocalizationKeys.RecipientName);
            recepientLabel.Font      = Constants.Semibold14;
            recepientLabel.TextColor = UIColor.Black;
            View.AddSubview(recepientLabel);

            recepientLabel.AutoPinEdgeToSuperviewEdge(ALEdge.Top, 25);
            recepientLabel.AutoPinEdgeToSuperviewEdge(ALEdge.Left, 15);

            var recipientStackView = new UIStackView();

            recipientStackView.Spacing = 10;
            View.AddSubview(recipientStackView);

            recipientStackView.AutoPinEdgeToSuperviewEdge(ALEdge.Left, 15);
            recipientStackView.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, recepientLabel, 16);
            recipientStackView.AutoPinEdgeToSuperviewEdge(ALEdge.Right, 15);
            recipientStackView.AutoSetDimension(ALDimension.Height, 50);

            _recipientAvatar = new UIImageView();
            _recipientAvatar.Layer.CornerRadius = 25;
            _recipientAvatar.ClipsToBounds      = true;
            _recipientAvatar.Hidden             = true;
            recipientStackView.AddArrangedSubview(_recipientAvatar);
            _recipientAvatar.AutoSetDimension(ALDimension.Width, 50);

            _recepientTextField = new SearchTextField(AppSettings.LocalizationManager.GetText(LocalizationKeys.RecipientNameHint));

            _recepientTextField.ReturnButtonTapped += () => {
                RemoveFocus();
            };

            _recepientTextField.EditingChanged    += EditingChanged;
            _recepientTextField.Layer.CornerRadius = 25;
            _recepientTextField.EditingChanged    += (object sender, EventArgs e) =>
            {
                _transferFacade.Recipient = null;
            };

            recipientStackView.AddArrangedSubview(_recepientTextField);

            _recepientTextField.EditingDidBegin += (object sender, EventArgs e) =>
            {
                _usersTable.Hidden = false;
            };

            _recepientTextField.EditingDidEnd += (object sender, EventArgs e) =>
            {
                _usersTable.Hidden = true;
                _usersLoader.StopAnimating();
                _noResultViewTags.Hidden = true;
            };

            _recepientTextField.ClearButtonTapped += () =>
            {
                UIView.Animate(0.2, () =>
                {
                    _recipientAvatar.Hidden = true;
                    _recipientAvatar.LayoutIfNeeded();
                });

                _prevQuery = string.Empty;
                _transferFacade.Recipient = null;
                _transferFacade.UserFriendPresenter.Clear();
                _recepientTextField.Text = _transferFacade?.Recipient?.Author;
            };

            UILabel amountLabel = new UILabel();

            amountLabel.Text      = AppSettings.LocalizationManager.GetText(LocalizationKeys.TransferAmount);
            amountLabel.Font      = Constants.Semibold14;
            amountLabel.TextColor = UIColor.Black;
            View.AddSubview(amountLabel);

            amountLabel.AutoPinEdgeToSuperviewEdge(ALEdge.Left, 15);
            amountLabel.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, recipientStackView, 25);

            _balanceLoader.ActivityIndicatorViewStyle = UIActivityIndicatorViewStyle.White;
            _balanceLoader.Color            = UIColor.Black;
            _balanceLoader.HidesWhenStopped = true;
            _balanceLoader.StartAnimating();

            View.AddSubview(_balanceLoader);

            _balanceLoader.AutoPinEdge(ALEdge.Left, ALEdge.Right, amountLabel, 10);
            _balanceLoader.AutoAlignAxis(ALAxis.Horizontal, amountLabel);

            _balanceLabel               = new UILabel();
            _balanceLabel.Font          = Constants.Semibold14;
            _balanceLabel.TextColor     = Constants.R151G155B158;
            _balanceLabel.TextAlignment = UITextAlignment.Right;

            View.AddSubview(_balanceLabel);

            _balanceLabel.AutoAlignAxis(ALAxis.Horizontal, amountLabel);
            _balanceLabel.AutoPinEdge(ALEdge.Left, ALEdge.Right, amountLabel, 5);
            _balanceLabel.SetContentHuggingPriority(1, UILayoutConstraintAxis.Horizontal);

            var rightView = new UIView();

            View.AddSubview(rightView);
            rightView.AutoSetDimension(ALDimension.Height, 50);

            UIImageView pickerImage = new UIImageView(UIImage.FromBundle("ic_currency_picker.png"));

            rightView.AddSubview(pickerImage);
            pickerImage.AutoAlignAxisToSuperviewAxis(ALAxis.Horizontal);
            pickerImage.AutoPinEdgeToSuperviewEdge(ALEdge.Right, 10);

            _pickerLabel.Text          = "STEEM";
            _pickerLabel.TextAlignment = UITextAlignment.Center;
            _pickerLabel.Font          = Constants.Semibold14;
            _pickerLabel.TextColor     = Constants.R255G71B5;
            rightView.AddSubview(_pickerLabel);
            _pickerLabel.AutoAlignAxisToSuperviewAxis(ALAxis.Horizontal);
            _pickerLabel.AutoPinEdgeToSuperviewEdge(ALEdge.Left);
            _pickerLabel.AutoPinEdge(ALEdge.Right, ALEdge.Left, pickerImage, -5);

            rightView.LayoutIfNeeded();

            _amountTextField = new SearchTextField(AppSettings.LocalizationManager.GetText(LocalizationKeys.TransferAmountHint),
                                                   new UIEdgeInsets(0, 20, 0, 0), new AmountFieldDelegate(), false, rightView);

            _amountTextField.KeyboardType       = UIKeyboardType.DecimalPad;
            _amountTextField.Layer.CornerRadius = 25;
            View.AddSubview(_amountTextField);

            //_amountTextField.ClearButtonTapped += () => { };
            _amountTextField.EditingChanged += IsEnoughBalance;

            View.AddSubview(_amountTextField);

            _amountTextField.AutoPinEdgeToSuperviewEdge(ALEdge.Left, 15);
            _amountTextField.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, amountLabel, 16);
            _amountTextField.AutoSetDimension(ALDimension.Height, 50);

            var max = new UIButton();

            max.SetTitle(AppSettings.LocalizationManager.GetText(LocalizationKeys.Max), UIControlState.Normal);
            max.SetTitleColor(UIColor.Black, UIControlState.Normal);
            max.Font = Constants.Semibold14;
            max.Layer.BorderWidth  = 1;
            max.Layer.BorderColor  = Constants.R245G245B245.CGColor;
            max.Layer.CornerRadius = 25;

            View.AddSubview(max);

            max.AutoPinEdgeToSuperviewEdge(ALEdge.Right, 15);
            max.AutoPinEdge(ALEdge.Left, ALEdge.Right, _amountTextField, 10);
            max.AutoSetDimensionsToSize(new CGSize(80, 50));
            max.AutoAlignAxis(ALAxis.Horizontal, _amountTextField);
            max.TouchDown += MaxBtnOnClick;

            rightView.AutoAlignAxis(ALAxis.Horizontal, _amountTextField);
            rightView.AutoPinEdge(ALEdge.Right, ALEdge.Right, _amountTextField);
            View.BringSubviewToFront(rightView);
            _balanceLabel.AutoPinEdge(ALEdge.Right, ALEdge.Right, _amountTextField);

            UIView pickerView = new UIView();

            pickerView.Layer.CornerRadius     = 25;
            pickerView.Layer.BorderColor      = Constants.R244G244B246.CGColor;
            pickerView.Layer.BorderWidth      = 1;
            pickerView.UserInteractionEnabled = true;
            var pickerTap = new UITapGestureRecognizer(() =>
            {
                if (_alert == null)
                {
                    var popup                = new UIView();
                    popup.ClipsToBounds      = true;
                    popup.Layer.CornerRadius = 15;
                    popup.BackgroundColor    = UIColor.White;
                    View.AddSubview(popup);
                    var dialogWidth = UIScreen.MainScreen.Bounds.Width - 10 * 2;
                    popup.AutoSetDimension(ALDimension.Width, dialogWidth);

                    var commonMargin = 20;

                    var title  = new UILabel();
                    title.Font = Constants.Semibold14;
                    title.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.SelectToken);
                    title.SizeToFit();
                    popup.AddSubview(title);
                    title.AutoPinEdgeToSuperviewEdge(ALEdge.Top);
                    title.AutoAlignAxisToSuperviewAxis(ALAxis.Vertical);
                    title.AutoSetDimension(ALDimension.Height, 70);

                    UIPickerView picker = new UIPickerView();
                    picker.Select(_coins.IndexOf(_pickedCoin), 0, true);
                    picker.Model = new CoinPickerViewModel(_coins);
                    popup.AddSubview(picker);

                    picker.AutoSetDimension(ALDimension.Width, dialogWidth - commonMargin * 2);
                    picker.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, title);
                    picker.AutoAlignAxisToSuperviewAxis(ALAxis.Vertical);
                    picker.SizeToFit();

                    var topSeparator             = new UIView();
                    topSeparator.BackgroundColor = Constants.R245G245B245;
                    popup.AddSubview(topSeparator);

                    topSeparator.AutoPinEdge(ALEdge.Bottom, ALEdge.Top, picker);
                    topSeparator.AutoPinEdgeToSuperviewEdge(ALEdge.Left, commonMargin);
                    topSeparator.AutoPinEdgeToSuperviewEdge(ALEdge.Right, commonMargin);
                    topSeparator.AutoSetDimension(ALDimension.Height, 1);

                    var separator             = new UIView();
                    separator.BackgroundColor = Constants.R245G245B245;
                    popup.AddSubview(separator);

                    separator.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, picker);
                    separator.AutoPinEdgeToSuperviewEdge(ALEdge.Left, commonMargin);
                    separator.AutoPinEdgeToSuperviewEdge(ALEdge.Right, commonMargin);
                    separator.AutoSetDimension(ALDimension.Height, 1);

                    var selectButton = new UIButton();
                    selectButton.SetTitle(AppSettings.LocalizationManager.GetText(LocalizationKeys.Select), UIControlState.Normal);
                    selectButton.SetTitleColor(UIColor.White, UIControlState.Normal);
                    selectButton.Layer.CornerRadius = 25;
                    selectButton.Font = Constants.Bold14;
                    popup.AddSubview(selectButton);

                    selectButton.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, separator, 20);
                    selectButton.AutoPinEdgeToSuperviewEdge(ALEdge.Right, commonMargin);
                    selectButton.AutoPinEdgeToSuperviewEdge(ALEdge.Left, commonMargin);
                    selectButton.AutoSetDimension(ALDimension.Height, 50);
                    selectButton.LayoutIfNeeded();

                    var cancelButton = new UIButton();
                    cancelButton.SetTitle(AppSettings.LocalizationManager.GetText(LocalizationKeys.Close), UIControlState.Normal);
                    cancelButton.SetTitleColor(UIColor.Black, UIControlState.Normal);
                    cancelButton.Layer.CornerRadius = 25;
                    cancelButton.Font = Constants.Semibold14;
                    cancelButton.Layer.BorderWidth = 1;
                    cancelButton.Layer.BorderColor = Constants.R245G245B245.CGColor;
                    popup.AddSubview(cancelButton);

                    cancelButton.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, selectButton, 20);
                    cancelButton.AutoPinEdgeToSuperviewEdge(ALEdge.Left, commonMargin);
                    cancelButton.AutoPinEdgeToSuperviewEdge(ALEdge.Right, commonMargin);
                    cancelButton.AutoPinEdgeToSuperviewEdge(ALEdge.Bottom, commonMargin);
                    cancelButton.AutoSetDimension(ALDimension.Height, 50);

                    NavigationController.View.EndEditing(true);

                    _alert = new CustomAlertView(popup, NavigationController);

                    selectButton.TouchDown += (sender, e) =>
                    {
                        CoinSelected(_coins[(int)picker.SelectedRowInComponent(0)]);
                        _alert.Close();
                        _amountTextField.UpdateRightViewRect();
                    };
                    cancelButton.TouchDown += (sender, e) => { _alert.Close(); };

                    popup.SizeToFit();
                    Constants.CreateGradient(selectButton, 25);
                }
                _alert.Show();
            });

            rightView.AddGestureRecognizer(pickerTap);

            var bottomStackView = new UIStackView();

            bottomStackView.Axis = UILayoutConstraintAxis.Vertical;
            View.AddSubview(bottomStackView);

            bottomStackView.AutoPinEdgeToSuperviewEdge(ALEdge.Left, 15);
            bottomStackView.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, _amountTextField, 5);
            bottomStackView.AutoPinEdgeToSuperviewEdge(ALEdge.Right, 15);
            bottomStackView.Spacing = 16;

            errorMessage.Font      = Constants.Semibold12;
            errorMessage.Hidden    = true;
            errorMessage.TextColor = Constants.R255G34B5;
            errorMessage.Text      = AppSettings.LocalizationManager.GetText(LocalizationKeys.AmountLimitFull);
            bottomStackView.AddArrangedSubview(errorMessage);

            memoLabel           = new UILabel();
            memoLabel.Text      = AppSettings.LocalizationManager.GetText(LocalizationKeys.TransferComment);
            memoLabel.TextColor = Constants.R255G71B5;
            memoLabel.Font      = Constants.Semibold14;
            memoLabel.UserInteractionEnabled = true;

            var memoTap = new UITapGestureRecognizer(() =>
            {
                memoLabel.TextColor = UIColor.Black;
                memoLabel.Text      = AppSettings.LocalizationManager.GetText(LocalizationKeys.TransferComment);
                UIView.Animate(0.2, () =>
                {
                    _memoTextView.Hidden = false;
                    _memoTextView.LayoutIfNeeded();
                });
            });

            memoLabel.AddGestureRecognizer(memoTap);
            bottomStackView.AddArrangedSubview(memoLabel);

            memoLabel.AutoSetDimension(ALDimension.Height, 30);

            _memoTextView = new UITextView();
            _memoTextView.Layer.CornerRadius = 25;
            _memoTextView.TextContainerInset = new UIEdgeInsets(10, 15, 10, 15);
            _memoTextView.Font    = Constants.Regular14;
            _memoTextView.Bounces = false;
            _memoTextView.ShowsVerticalScrollIndicator = false;
            _memoTextView.Hidden          = true;
            _memoTextView.TintColor       = Constants.R255G71B5;
            _memoTextView.BackgroundColor = Constants.R245G245B245;
            _memoTextViewDelegate         = new BaseTextViewDelegate();
            _memoTextView.Delegate        = _memoTextViewDelegate;

            _memoTextViewDelegate.EditingEndedAction += () =>
            {
                base.ScrollTheView(false);
            };

            bottomStackView.AddArrangedSubview(_memoTextView);

            _memoTextView.AutoSetDimension(ALDimension.Height, 80);
            var buttonWrapper = new UIView();

            _transferButton = new UIButton();
            _transferButton.SetTitleColor(UIColor.White, UIControlState.Normal);
            _transferButton.SetTitleColor(UIColor.Clear, UIControlState.Disabled);
            _transferButton.SetTitle(AppSettings.LocalizationManager.GetText(LocalizationKeys.Transfer).ToUpper(), UIControlState.Normal);
            _transferButton.Layer.CornerRadius = 25;
            _transferButton.Font       = Constants.Bold14;
            _transferButton.TouchDown += Transfer;
            buttonWrapper.AddSubview(_transferButton);

            _transferButton.AutoSetDimension(ALDimension.Height, 50);
            _transferButton.AutoPinEdgeToSuperviewEdge(ALEdge.Left);
            _transferButton.AutoPinEdgeToSuperviewEdge(ALEdge.Top, 15);
            _transferButton.AutoPinEdgeToSuperviewEdge(ALEdge.Bottom);
            _transferButton.AutoPinEdgeToSuperviewEdge(ALEdge.Right);
            Constants.CreateShadow(_transferButton, Constants.R204G204B204, 0.7f, 25, 10, 12);

            _tranfserLoader = new UIActivityIndicatorView();
            _tranfserLoader.ActivityIndicatorViewStyle = UIActivityIndicatorViewStyle.White;
            _tranfserLoader.HidesWhenStopped           = true;
            buttonWrapper.AddSubview(_tranfserLoader);

            _tranfserLoader.AutoAlignAxis(ALAxis.Horizontal, _transferButton);
            _tranfserLoader.AutoAlignAxis(ALAxis.Vertical, _transferButton);

            bottomStackView.AddArrangedSubview(buttonWrapper);

            buttonWrapper.AutoSetDimension(ALDimension.Height, 65);

            SetupTable();

            _noResultViewTags.Text          = AppSettings.LocalizationManager.GetText(LocalizationKeys.NoResultText);
            _noResultViewTags.Lines         = 2;
            _noResultViewTags.Hidden        = true;
            _noResultViewTags.TextAlignment = UITextAlignment.Center;
            _noResultViewTags.Font          = Constants.Light27;
            _noResultViewTags.TextColor     = Constants.R15G24B30;

            View.AddSubview(_noResultViewTags);
            _noResultViewTags.AutoPinEdge(ALEdge.Right, ALEdge.Right, _usersTable, -18);
            _noResultViewTags.AutoPinEdge(ALEdge.Left, ALEdge.Left, _usersTable, 18);
            _usersNotFoundHorizontalAlignment = _noResultViewTags.AutoAlignAxis(ALAxis.Horizontal, _usersTable);

            warningView = new UIView();
            warningView.ClipsToBounds   = true;
            warningView.BackgroundColor = Constants.R255G34B5;
            warningView.Alpha           = 0;
            Constants.CreateShadow(warningView, Constants.R231G72B0, 0.5f, 6, 10, 12);
            View.AddSubview(warningView);

            warningView.AutoSetDimension(ALDimension.Height, 60);
            warningView.AutoPinEdgeToSuperviewEdge(ALEdge.Left, 15);
            warningView.AutoPinEdgeToSuperviewEdge(ALEdge.Right, 15);
            warningViewToBottomConstraint = warningView.AutoPinEdgeToSuperviewEdge(ALEdge.Bottom);

            var warningImage = new UIImageView();

            warningImage.Image = UIImage.FromBundle("ic_info");

            var warningLabel = new UILabel();

            warningLabel.Text      = AppSettings.LocalizationManager.GetText(LocalizationKeys.TagSearchWarning);
            warningLabel.Lines     = 3;
            warningLabel.Font      = Constants.Regular12;
            warningLabel.TextColor = UIColor.FromRGB(255, 255, 255);

            warningView.AddSubview(warningLabel);
            warningView.AddSubview(warningImage);

            warningImage.AutoPinEdgeToSuperviewEdge(ALEdge.Left, 20);
            warningImage.AutoPinEdgeToSuperviewEdge(ALEdge.Top, 20);
            warningImage.AutoSetDimension(ALDimension.Width, 20);
            warningImage.AutoPinEdgeToSuperviewEdge(ALEdge.Bottom, 20);

            warningLabel.AutoPinEdge(ALEdge.Left, ALEdge.Right, warningImage, 20);
            warningLabel.AutoAlignAxisToSuperviewAxis(ALAxis.Horizontal);
            warningLabel.AutoPinEdgeToSuperviewEdge(ALEdge.Right, 20);

            var tap = new UITapGestureRecognizer(() =>
            {
                RemoveFocus();
            });

            View.AddGestureRecognizer(tap);
        }