public override void ViewDidLoad() { base.ViewDidLoad(); _presenter.SourceChanged += SourceChanged; NavigationController.NavigationBar.SetBackgroundImage(new UIImage(), UIBarMetrics.Default); NavigationController.NavigationBar.ShadowImage = new UIImage(); tagsCollectionView.RegisterClassForCell(typeof(LocalTagCollectionViewCell), nameof(LocalTagCollectionViewCell)); tagsCollectionView.RegisterNibForCell(UINib.FromName(nameof(LocalTagCollectionViewCell), NSBundle.MainBundle), nameof(LocalTagCollectionViewCell)); tagsCollectionView.SetCollectionViewLayout(new UICollectionViewFlowLayout() { ScrollDirection = UICollectionViewScrollDirection.Horizontal, SectionInset = new UIEdgeInsets(0, 15, 0, 15), }, false); tagsCollectionView.Source = _viewSource; tagsCollectionView.Delegate = _flowDelegate; tagsCollectionView.BackgroundColor = UIColor.White; _tagField = new SearchTextField("Hashtag"); _tagField.ReturnButtonTapped += () => { AddLocalTag(_tagField.Text); }; View.AddSubview(_tagField); _tagField.ClearButtonTapped += () => { OnTimer(null); }; _tagField.AutoPinEdgeToSuperviewEdge(ALEdge.Top, 10f); _tagField.AutoPinEdgeToSuperviewEdge(ALEdge.Left, 15f); _tagField.AutoPinEdgeToSuperviewEdge(ALEdge.Right, 15f); tagsCollectionView.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, _tagField, 20f); _tagField.AutoSetDimension(ALDimension.Height, 40f); var tap = new UITapGestureRecognizer(() => { _tagField.ResignFirstResponder(); }); View.AddGestureRecognizer(tap); _tableSource = new TagsTableViewSource(_presenter, tagsTableView); _tableSource.ScrolledToBottom += async() => { _tagField.Loader.StartAnimating(); var exception = await _presenter.TryLoadNext(_tagField.Text, false); _tagField.Loader.StopAnimating(); ShowAlert(exception); }; tagsTableView.Source = _tableSource; tagsTableView.LayoutMargins = UIEdgeInsets.Zero; tagsTableView.RegisterClassForCellReuse(typeof(TagTableViewCell), nameof(TagTableViewCell)); tagsTableView.RegisterNibForCellReuse(UINib.FromName(nameof(TagTableViewCell), NSBundle.MainBundle), nameof(TagTableViewCell)); tagsTableView.RowHeight = 70f; _tagField.EditingChanged += EditingDidChange; SetBackButton(); SetCollectionHeight(); SearchTextChanged(); }
void hideSearch() { SearchTextField.ResignFirstResponder(); CanvelView.Hidden = true; OptionsView.Hidden = false; SearchTableView.Hidden = true; SearchTextField.Text = ""; }
public override void ViewDidLoad() { base.ViewDidLoad(); CloseButton.SetTemplateColor(ColorAssets.Text2); SearchView.InsertSeparator(); TitleLabel.Text = Resources.Clients; SearchTextField.Placeholder = Resources.AddFilterClients; SuggestionsTableView.RegisterNibForCellReuse(ClientViewCell.Nib, ClientViewCell.Identifier); SuggestionsTableView.RegisterNibForCellReuse(CreateClientViewCell.Nib, CreateClientViewCell.Identifier); SuggestionsTableView.SeparatorStyle = UITableViewCellSeparatorStyle.None; var tableViewSource = new ClientTableViewSource(SuggestionsTableView); SuggestionsTableView.Source = tableViewSource; tableViewSource.Rx().DragStarted() .Subscribe(_ => SearchTextField.ResignFirstResponder()) .DisposedBy(DisposeBag); var clientsReplay = ViewModel.Clients.Replay(); clientsReplay .Subscribe(SuggestionsTableView.Rx().ReloadItems(tableViewSource)) .DisposedBy(DisposeBag); clientsReplay.Connect(); CloseButton.Rx().Tap() .Subscribe(() => ViewModel.CloseWithDefaultResult()) .DisposedBy(DisposeBag); SearchTextField.Rx().Text() .Subscribe(ViewModel.FilterText) .DisposedBy(DisposeBag); tableViewSource.Rx().ModelSelected() .Subscribe(ViewModel.SelectClient.Inputs) .DisposedBy(DisposeBag); BottomConstraint.Active |= TraitCollection.HorizontalSizeClass == UIUserInterfaceSizeClass.Compact; }
private void CreateView() { View.UserInteractionEnabled = true; var viewTap = new UITapGestureRecognizer(() => { _amountTextField.ResignFirstResponder(); }); View.AddGestureRecognizer(viewTap); View.BackgroundColor = Constants.R250G250B250; var topBackground = new UIView(); topBackground.BackgroundColor = UIColor.White; View.AddSubview(topBackground); topBackground.AutoPinEdgeToSuperviewEdge(ALEdge.Top, 20); topBackground.AutoPinEdgeToSuperviewEdge(ALEdge.Left); topBackground.AutoPinEdgeToSuperviewEdge(ALEdge.Right); var steemView = new UIView(); topBackground.AddSubview(steemView); var label = new UILabel(); label.Text = "Steem"; label.Font = Constants.Semibold14; steemView.AddSubview(label); label.AutoAlignAxisToSuperviewAxis(ALAxis.Horizontal); label.AutoPinEdgeToSuperviewEdge(ALEdge.Left); _firstTokenText.BaselineAdjustment = UIBaselineAdjustment.AlignCenters; _firstTokenText.AdjustsFontSizeToFitWidth = true; _firstTokenText.TextAlignment = UITextAlignment.Right; steemView.AddSubview(_firstTokenText); _firstTokenText.AutoAlignAxis(ALAxis.Horizontal, label); _firstTokenText.AutoPinEdgeToSuperviewEdge(ALEdge.Right); _firstTokenText.AutoPinEdge(ALEdge.Left, ALEdge.Right, label, 5); _firstTokenText.SetContentHuggingPriority(1, UILayoutConstraintAxis.Horizontal); steemView.AutoSetDimension(ALDimension.Height, 70); steemView.AutoPinEdgeToSuperviewEdge(ALEdge.Left, 20); steemView.AutoPinEdgeToSuperviewEdge(ALEdge.Right, 20); steemView.AutoPinEdgeToSuperviewEdge(ALEdge.Top); var separator = new UIView(); separator.BackgroundColor = Constants.R245G245B245; topBackground.AddSubview(separator); separator.AutoSetDimension(ALDimension.Height, 1); separator.AutoPinEdgeToSuperviewEdge(ALEdge.Left, 20); separator.AutoPinEdgeToSuperviewEdge(ALEdge.Right, 20); separator.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, steemView); var spView = new UIView(); topBackground.AddSubview(spView); var label2 = new UILabel(); label2.Text = "Steem Power"; label2.Font = Constants.Semibold14; spView.AddSubview(label2); label2.AutoAlignAxisToSuperviewAxis(ALAxis.Horizontal); label2.AutoPinEdgeToSuperviewEdge(ALEdge.Left); _secondTokenText.BaselineAdjustment = UIBaselineAdjustment.AlignCenters; _secondTokenText.AdjustsFontSizeToFitWidth = true; _secondTokenText.TextAlignment = UITextAlignment.Right; spView.AddSubview(_secondTokenText); _secondTokenText.AutoAlignAxisToSuperviewAxis(ALAxis.Horizontal); _secondTokenText.AutoPinEdgeToSuperviewEdge(ALEdge.Right); _secondTokenText.AutoPinEdge(ALEdge.Left, ALEdge.Right, label2, 5); _secondTokenText.SetContentHuggingPriority(1, UILayoutConstraintAxis.Horizontal); spView.AutoSetDimension(ALDimension.Height, 70); spView.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, separator); spView.AutoPinEdgeToSuperviewEdge(ALEdge.Left, 20); spView.AutoPinEdgeToSuperviewEdge(ALEdge.Right, 20); spView.AutoPinEdgeToSuperviewEdge(ALEdge.Bottom); var amountBackground = new UIView(); amountBackground.BackgroundColor = UIColor.White; View.AddSubview(amountBackground); amountBackground.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, topBackground, 10); amountBackground.AutoPinEdgeToSuperviewEdge(ALEdge.Left); amountBackground.AutoPinEdgeToSuperviewEdge(ALEdge.Right); var amountLabel = new UILabel(); amountLabel.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.Amount); amountLabel.Font = Constants.Semibold14; amountBackground.AddSubview(amountLabel); amountLabel.AutoPinEdgeToSuperviewEdge(ALEdge.Top, 15); amountLabel.AutoPinEdgeToSuperviewEdge(ALEdge.Left, 20); _amountTextField = new SearchTextField(AppSettings.LocalizationManager.GetText(LocalizationKeys.TransferAmountHint), new AmountFieldDelegate(), false); _amountTextField.EditingChanged += AmountEditOnTextChanged; _amountTextField.KeyboardType = UIKeyboardType.DecimalPad; _amountTextField.Layer.CornerRadius = 25; amountBackground.AddSubview(_amountTextField); _amountTextField.AutoPinEdgeToSuperviewEdge(ALEdge.Left, 20); _amountTextField.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, amountLabel, 16); _amountTextField.AutoSetDimension(ALDimension.Height, 50); _amountTextField.AutoPinEdgeToSuperviewEdge(ALEdge.Bottom, 20); _amountTextField.TouchUpOutside += (object sender, EventArgs e) => { _amountTextField.ResignFirstResponder(); }; errorMessage = new UILabel { Font = Constants.Semibold14, TextColor = Constants.R255G34B5, Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.AmountLimitFull), Hidden = true, }; amountBackground.AddSubview(errorMessage); errorMessage.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, _amountTextField); errorMessage.AutoPinEdge(ALEdge.Left, ALEdge.Left, _amountTextField); errorMessage.AutoPinEdge(ALEdge.Right, ALEdge.Right, _amountTextField); 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; amountBackground.AddSubview(max); max.AutoPinEdgeToSuperviewEdge(ALEdge.Right, 20); max.AutoPinEdge(ALEdge.Left, ALEdge.Right, _amountTextField, 10); max.AutoSetDimensionsToSize(new CGSize(80, 50)); max.AutoAlignAxis(ALAxis.Horizontal, _amountTextField); max.TouchDown += MaxBtnOnClick; _actionButton.SetTitle(AppSettings.LocalizationManager.GetText(_powerAction == PowerAction.PowerUp ? LocalizationKeys.PowerUp : LocalizationKeys.PowerDown), UIControlState.Normal); _actionButton.SetTitleColor(UIColor.White, UIControlState.Normal); _actionButton.SetTitleColor(UIColor.Clear, UIControlState.Disabled); View.AddSubview(_actionButton); _actionButton.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, amountBackground, 30); _actionButton.AutoPinEdgeToSuperviewEdge(ALEdge.Left, 20); _actionButton.AutoPinEdgeToSuperviewEdge(ALEdge.Right, 20); _actionButton.AutoSetDimension(ALDimension.Height, 50); _actionButton.LayoutIfNeeded(); _actionButton.TouchDown += PowerBtnOnClick; _loader.ActivityIndicatorViewStyle = UIActivityIndicatorViewStyle.White; _loader.HidesWhenStopped = true; _actionButton.AddSubview(_loader); _loader.AutoCenterInSuperview(); Constants.CreateGradient(_actionButton, 25); Constants.CreateShadowFromZeplin(_actionButton, Constants.R231G72B0, 0.3f, 0, 10, 20, 0); }
public CustomAlertView Create(Post post, UINavigationController controller, UIView view) { _pickedCoin = CurrencyType.Steem; _coins = new List <CurrencyType>(); switch (AppSettings.User.Chain) { case KnownChains.Steem: _coins.AddRange(new[] { CurrencyType.Steem, CurrencyType.Sbd }); break; case KnownChains.Golos: _coins.AddRange(new[] { CurrencyType.Golos, CurrencyType.Gbg }); break; } var popup = new UIView(); popup.ClipsToBounds = true; popup.Layer.CornerRadius = 20; popup.BackgroundColor = Constants.R255G255B255; var _alert = new CustomAlertView(popup, controller); 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.PromotePost); title.TextAlignment = UITextAlignment.Center; popup.AddSubview(title); title.AutoPinEdgeToSuperviewEdge(ALEdge.Top); title.AutoPinEdgeToSuperviewEdge(ALEdge.Left); title.AutoPinEdgeToSuperviewEdge(ALEdge.Right); title.AutoSetDimension(ALDimension.Height, 70); var topSeparator = new UIView(); topSeparator.BackgroundColor = Constants.R245G245B245; popup.AddSubview(topSeparator); topSeparator.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, title); topSeparator.AutoPinEdgeToSuperviewEdge(ALEdge.Left, commonMargin); topSeparator.AutoPinEdgeToSuperviewEdge(ALEdge.Right, commonMargin); topSeparator.AutoSetDimension(ALDimension.Height, 1); var container = new UIView(); popup.AddSubview(container); container.AutoSetDimension(ALDimension.Height, 142); container.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, topSeparator); container.AutoPinEdgeToSuperviewEdge(ALEdge.Left, commonMargin); container.AutoPinEdgeToSuperviewEdge(ALEdge.Right, commonMargin); var promotionLabel = new UILabel(); promotionLabel.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.Amount); promotionLabel.Font = Constants.Semibold14; container.AddSubview(promotionLabel); promotionLabel.AutoPinEdgeToSuperviewEdge(ALEdge.Top, 27); promotionLabel.AutoPinEdgeToSuperviewEdge(ALEdge.Left); balanceLoader = new UIActivityIndicatorView(); balanceLoader.ActivityIndicatorViewStyle = UIActivityIndicatorViewStyle.White; balanceLoader.Color = UIColor.Black; balanceLoader.HidesWhenStopped = true; balanceLoader.StartAnimating(); container.AddSubview(balanceLoader); balanceLoader.AutoPinEdge(ALEdge.Left, ALEdge.Right, promotionLabel, 10); balanceLoader.AutoAlignAxis(ALAxis.Horizontal, promotionLabel); balanceLabel = new UILabel(); balanceLabel.Font = Constants.Semibold14; balanceLabel.TextColor = Constants.R151G155B158; balanceLabel.TextAlignment = UITextAlignment.Right; container.AddSubview(balanceLabel); balanceLabel.AutoAlignAxis(ALAxis.Horizontal, promotionLabel); balanceLabel.AutoPinEdgeToSuperviewEdge(ALEdge.Right); balanceLabel.AutoPinEdge(ALEdge.Left, ALEdge.Right, promotionLabel, 5); balanceLabel.SetContentHuggingPriority(1, UILayoutConstraintAxis.Horizontal); GetBalance(); var rightView = new UIView(); container.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); UILabel _pickerLabel = new UILabel(); _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; container.AddSubview(_amountTextField); _amountTextField.AutoPinEdgeToSuperviewEdge(ALEdge.Left); _amountTextField.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, promotionLabel, 16); _amountTextField.AutoSetDimension(ALDimension.Height, 50); errorMessage = new UILabel(); errorMessage.Font = Constants.Semibold14; errorMessage.TextColor = Constants.R255G34B5; container.AddSubview(errorMessage); errorMessage.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, _amountTextField); errorMessage.AutoPinEdge(ALEdge.Left, ALEdge.Left, _amountTextField); errorMessage.AutoPinEdge(ALEdge.Right, ALEdge.Right, _amountTextField); _amountTextField.EditingChanged += IsEnoughBalance; 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; container.AddSubview(max); max.AutoPinEdgeToSuperviewEdge(ALEdge.Right); 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); container.BringSubviewToFront(rightView); UIPickerView picker = new UIPickerView(); picker.Select(_coins.IndexOf(_pickedCoin), 0, true); picker.Model = new CoinPickerViewModel(_coins); picker.BackgroundColor = Constants.R255G255B255; popup.AddSubview(picker); picker.AutoMatchDimension(ALDimension.Height, ALDimension.Height, container); picker.AutoMatchDimension(ALDimension.Width, ALDimension.Width, container); picker.AutoPinEdge(ALEdge.Top, ALEdge.Top, container); var pickerHidden = picker.AutoPinEdge(ALEdge.Right, ALEdge.Left, container, -20); var pickerVisible = picker.AutoPinEdge(ALEdge.Right, ALEdge.Right, container); pickerVisible.Active = false; var promoteContainer = new UIView(); promoteContainer.BackgroundColor = Constants.R255G255B255; popup.AddSubview(promoteContainer); promoteContainer.AutoMatchDimension(ALDimension.Height, ALDimension.Height, container); promoteContainer.AutoMatchDimension(ALDimension.Width, ALDimension.Width, container); promoteContainer.AutoPinEdge(ALEdge.Top, ALEdge.Top, container); var promoteHidden = promoteContainer.AutoPinEdge(ALEdge.Left, ALEdge.Right, container, 20); var promoteVisible = promoteContainer.AutoPinEdge(ALEdge.Left, ALEdge.Left, container); promoteVisible.Active = false; var avatar = new UIImageView(); avatar.Layer.CornerRadius = 20; avatar.ClipsToBounds = true; promoteContainer.AddSubview(avatar); avatar.AutoPinEdgeToSuperviewEdge(ALEdge.Top, 16); avatar.AutoPinEdgeToSuperviewEdge(ALEdge.Left); avatar.AutoSetDimensionsToSize(new CGSize(40, 40)); var promoterLogin = new UILabel(); promoterLogin.Font = Constants.Semibold14; promoterLogin.TextColor = Constants.R255G34B5; promoteContainer.AddSubview(promoterLogin); promoterLogin.AutoPinEdge(ALEdge.Left, ALEdge.Right, avatar, 20); promoterLogin.AutoPinEdgeToSuperviewEdge(ALEdge.Right); promoterLogin.AutoAlignAxis(ALAxis.Horizontal, avatar); var expectedTimeBackground = new UIView(); expectedTimeBackground.Layer.CornerRadius = 10; expectedTimeBackground.BackgroundColor = Constants.R250G250B250; promoteContainer.AddSubview(expectedTimeBackground); expectedTimeBackground.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, avatar, 15); expectedTimeBackground.AutoPinEdgeToSuperviewEdge(ALEdge.Left); expectedTimeBackground.AutoPinEdgeToSuperviewEdge(ALEdge.Right); expectedTimeBackground.AutoSetDimension(ALDimension.Height, 50); var expectedTimeLabel = new UILabel(); expectedTimeLabel.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.ExpectedVoteTime); expectedTimeLabel.Font = Constants.Regular14; expectedTimeBackground.AddSubview(expectedTimeLabel); expectedTimeLabel.AutoPinEdgeToSuperviewEdge(ALEdge.Left, DeviceHelper.IsSmallDevice ? 10 : 20); expectedTimeLabel.AutoAlignAxisToSuperviewAxis(ALAxis.Horizontal); var expectedTimeValue = new UILabel(); expectedTimeValue.TextAlignment = UITextAlignment.Right; expectedTimeValue.Font = Constants.Light20; expectedTimeBackground.AddSubview(expectedTimeValue); expectedTimeValue.AutoPinEdge(ALEdge.Left, ALEdge.Right, expectedTimeLabel); expectedTimeValue.AutoPinEdgeToSuperviewEdge(ALEdge.Right, DeviceHelper.IsSmallDevice ? 10 : 20); expectedTimeValue.AutoAlignAxisToSuperviewAxis(ALAxis.Horizontal); var sureText = new UILabel(); sureText.BackgroundColor = Constants.R255G255B255; sureText.Lines = 4; sureText.TextAlignment = UITextAlignment.Center; sureText.Font = Constants.Regular20; popup.AddSubview(sureText); sureText.AutoMatchDimension(ALDimension.Height, ALDimension.Height, container); sureText.AutoMatchDimension(ALDimension.Width, ALDimension.Width, container); sureText.AutoPinEdge(ALEdge.Top, ALEdge.Top, container); var sureTextHidden = sureText.AutoPinEdge(ALEdge.Left, ALEdge.Right, container, 20); var sureTextVisible = sureText.AutoPinEdge(ALEdge.Left, ALEdge.Left, container); sureTextVisible.Active = false; var completeText = new UILabel(); completeText.BackgroundColor = Constants.R255G255B255; completeText.Lines = 4; completeText.TextAlignment = UITextAlignment.Center; completeText.Font = Constants.Regular20; popup.AddSubview(completeText); completeText.AutoMatchDimension(ALDimension.Height, ALDimension.Height, container); completeText.AutoMatchDimension(ALDimension.Width, ALDimension.Width, container); completeText.AutoPinEdge(ALEdge.Top, ALEdge.Top, container); var completeTextHidden = completeText.AutoPinEdge(ALEdge.Left, ALEdge.Right, container, 20); var completeTextVisible = completeText.AutoPinEdge(ALEdge.Left, ALEdge.Left, container); completeTextVisible.Active = false; var separator = new UIView(); separator.BackgroundColor = Constants.R245G245B245; popup.AddSubview(separator); separator.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, container); separator.AutoPinEdgeToSuperviewEdge(ALEdge.Left, commonMargin); separator.AutoPinEdgeToSuperviewEdge(ALEdge.Right, commonMargin); separator.AutoSetDimension(ALDimension.Height, 1); var selectButton = new UIButton(); selectButton.SetTitle(string.Empty, UIControlState.Disabled); selectButton.SetTitle(AppSettings.LocalizationManager.GetText(LocalizationKeys.FindPromoter), 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 loader = new UIActivityIndicatorView(); loader.ActivityIndicatorViewStyle = UIActivityIndicatorViewStyle.White; loader.HidesWhenStopped = true; selectButton.AddSubview(loader); loader.AutoCenterInSuperview(); var tap = new UITapGestureRecognizer(() => { if (balances == null) { return; } _amountTextField.ResignFirstResponder(); pickerHidden.Active = false; pickerVisible.Active = true; UIView.Animate(0.2, 0, UIViewAnimationOptions.CurveEaseIn, () => { popup.LayoutIfNeeded(); }, () => { title.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.SelectToken); selectButton.SetTitle(AppSettings.LocalizationManager.GetText(LocalizationKeys.Select), UIControlState.Normal); }); }); rightView.AddGestureRecognizer(tap); 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); controller.View.EndEditing(true); Timer timer = null; OperationResult <PromoteResponse> promoter = null; selectButton.TouchDown += async(sender, e) => { if (balanceLoader.IsAnimating) { return; } IsEnoughBalance(null, null); if (pickerVisible.Active) { _pickedCoin = _coins[(int)picker.SelectedRowInComponent(0)]; _pickerLabel.Text = _pickedCoin.ToString().ToUpper(); var balance = balances?.Find(x => x.CurrencyType == _pickedCoin); balanceLabel.Text = $"{AppSettings.LocalizationManager.GetText(LocalizationKeys.Balance)}: {balance?.Value}"; pickerHidden.Active = true; pickerVisible.Active = false; UIView.Animate(0.5, () => { popup.LayoutIfNeeded(); }, () => { title.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.PromotePost); selectButton.SetTitle(AppSettings.LocalizationManager.GetText(LocalizationKeys.FindPromoter), UIControlState.Normal); _amountTextField.UpdateRightViewRect(); }); } else if (sureTextVisible.Active) { if (!AppSettings.User.HasActivePermission) { _alert.Hidden = true; controller.PushViewController(new LoginViewController(false), true); return; } selectButton.Enabled = false; loader.StartAnimating(); sureTextHidden.Active = true; sureTextVisible.Active = false; var transferResponse = await _presenter.TryTransfer(AppSettings.User.UserInfo, promoter.Result.Bot.Author, _amountTextField.GetDoubleValue().ToString(), _pickedCoin, $"https://steemit.com{post.Url}"); if (transferResponse.IsSuccess) { completeText.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.SuccessPromote); } else { completeText.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.TokenTransferError); } completeTextHidden.Active = false; completeTextVisible.Active = true; UIView.Animate(0.2, 0, UIViewAnimationOptions.CurveEaseIn, () => { popup.LayoutIfNeeded(); }, () => { selectButton.Enabled = true; loader.StopAnimating(); title.Text = true ? AppSettings.LocalizationManager.GetText(LocalizationKeys.PromoteComplete) : AppSettings.LocalizationManager.GetText(LocalizationKeys.TransferError); selectButton.SetTitle(AppSettings.LocalizationManager.GetText(LocalizationKeys.PromoteAgain), UIControlState.Normal); promoteVisible.Active = false; promoteHidden.Active = true; popup.LayoutIfNeeded(); timer?.Dispose(); }); } else if (promoteVisible.Active) { var promoteConfirmation = AppSettings.LocalizationManager.GetText(LocalizationKeys.PromoteConfirmation, _amountTextField.GetDoubleValue().ToString(), _pickedCoin == CurrencyType.Sbd ? "SBD" : "Steem", promoter.Result.Bot.Author); sureText.Text = promoteConfirmation; sureTextHidden.Active = false; sureTextVisible.Active = true; UIView.Animate(0.2, 0, UIViewAnimationOptions.CurveEaseIn, () => { popup.LayoutIfNeeded(); }, () => { selectButton.SetTitle("Yes", UIControlState.Normal); }); } else if (completeTextVisible.Active) { completeTextHidden.Active = true; completeTextVisible.Active = false; UIView.Animate(0.2, 0, UIViewAnimationOptions.CurveEaseIn, () => { popup.LayoutIfNeeded(); }, () => { title.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.PromotePost); selectButton.SetTitle(AppSettings.LocalizationManager.GetText(LocalizationKeys.FindPromoter), UIControlState.Normal); }); } else { if (_amountTextField.GetDoubleValue() > balances?.Find(x => x.CurrencyType == _pickedCoin).Value) { errorMessage.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.NotEnoughBalance); errorMessage.Hidden = false; return; } if (string.IsNullOrEmpty(_amountTextField.Text) || !IsValidAmount()) { return; } selectButton.Enabled = false; loader.StartAnimating(); var pr = new PromoteRequest() { Amount = _amountTextField.GetDoubleValue(), CurrencyType = _pickedCoin, PostToPromote = post, }; promoter = await _presenter.FindPromoteBot(pr); if (promoter.IsSuccess) { var expectedUpvoteTime = promoter.Result.ExpectedUpvoteTime; if (expectedUpvoteTime.ToString().Length > 8) { expectedTimeValue.Text = expectedUpvoteTime.ToString().Remove(8); } timer = new Timer((obj) => { expectedUpvoteTime = expectedUpvoteTime.Subtract(TimeSpan.FromSeconds(1)); view.InvokeOnMainThread(() => { if (expectedUpvoteTime.ToString().Length > 8) { expectedTimeValue.Text = expectedUpvoteTime.ToString().Remove(8); } else { expectedTimeValue.Text = expectedUpvoteTime.ToString(); } }); }, null, DateTime.Now.Add(expectedUpvoteTime).Millisecond, (int)TimeSpan.FromSeconds(1).TotalMilliseconds); promoterLogin.Text = $"@{promoter.Result.Bot.Author}"; if (!string.IsNullOrEmpty(promoter.Result.Bot.Avatar)) { ImageLoader.Load(promoter.Result.Bot.Avatar, avatar, size: new CGSize(300, 300)); } else { avatar.Image = UIImage.FromBundle("ic_noavatar"); } promoteHidden.Active = false; promoteVisible.Active = true; UIView.Animate(0.2, 0, UIViewAnimationOptions.CurveEaseIn, () => { popup.LayoutIfNeeded(); }, () => { selectButton.Enabled = true; loader.StopAnimating(); title.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.PromoterFound); selectButton.SetTitle(AppSettings.LocalizationManager.GetText(LocalizationKeys.Promote), UIControlState.Normal); }); } else { completeText.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.PromoterNotFound); completeTextHidden.Active = false; completeTextVisible.Active = true; UIView.Animate(0.2, 0, UIViewAnimationOptions.CurveEaseIn, () => { popup.LayoutIfNeeded(); }, () => { selectButton.Enabled = true; loader.StopAnimating(); title.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.PromoterSearchResult); selectButton.SetTitle(AppSettings.LocalizationManager.GetText(LocalizationKeys.SearchAgain), UIControlState.Normal); }); } } }; cancelButton.TouchDown += (sender, e) => { _alert.Close(); }; var popuptap = new UITapGestureRecognizer(() => { _amountTextField.ResignFirstResponder(); }); popup.AddGestureRecognizer(popuptap); Constants.CreateGradient(selectButton, 25); Constants.CreateShadowFromZeplin(selectButton, Constants.R231G72B0, 0.3f, 0, 10, 20, 0); popup.BringSubviewToFront(selectButton); _alert.Show(); return(_alert); }
private void CreateView() { View.BackgroundColor = UIColor.White; searchTextField = new SearchTextField("Tap to search"); searchTextField.ReturnButtonTapped += ShouldReturn; searchTextField.BecomeFirstResponder(); //searchTextField.Font = Constants.Regular14; View.AddSubview(searchTextField); searchTextField.ClearButtonTapped += () => { OnTimer(null); }; searchTextField.AutoPinEdgeToSuperviewEdge(ALEdge.Top, 10f); searchTextField.AutoPinEdgeToSuperviewEdge(ALEdge.Left, 15f); searchTextField.AutoPinEdgeToSuperviewEdge(ALEdge.Right, 15f); searchTextField.AutoSetDimension(ALDimension.Height, 40f); tagsButton = new UIButton(); tagsButton.SetTitle("Tag", UIControlState.Normal); tagsButton.SetTitleColor(UIColor.Black, UIControlState.Normal); tagsButton.SetTitleColor(Constants.R255G34B5, UIControlState.Selected); tagsButton.Font = Constants.Semibold14; peopleButton = new UIButton(); peopleButton.SetTitle("User", UIControlState.Normal); peopleButton.SetTitleColor(UIColor.Black, UIControlState.Normal); peopleButton.SetTitleColor(Constants.R255G34B5, UIControlState.Selected); peopleButton.Font = Constants.Semibold14; View.AddSubviews(new[] { tagsButton, peopleButton }); tagsButton.AutoSetDimension(ALDimension.Height, 50f); tagsButton.AutoSetDimension(ALDimension.Width, UIScreen.MainScreen.Bounds.Width / 2); tagsButton.AutoPinEdgeToSuperviewEdge(ALEdge.Left); tagsButton.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, searchTextField); peopleButton.AutoSetDimension(ALDimension.Height, 50f); peopleButton.AutoSetDimension(ALDimension.Width, UIScreen.MainScreen.Bounds.Width / 2); peopleButton.AutoPinEdgeToSuperviewEdge(ALEdge.Right); peopleButton.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, searchTextField); var underline = new UIView(); underline.BackgroundColor = Constants.R245G245B245; View.AddSubview(underline); underline.AutoSetDimension(ALDimension.Height, 1f); underline.AutoPinEdgeToSuperviewEdge(ALEdge.Left); underline.AutoPinEdgeToSuperviewEdge(ALEdge.Right); underline.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, tagsButton, 1); var selectedUnderline = new UIView(); selectedUnderline.BackgroundColor = Constants.R255G34B5; View.AddSubview(selectedUnderline); selectedUnderline.AutoSetDimension(ALDimension.Height, 2f); selectedUnderline.AutoSetDimension(ALDimension.Width, UIScreen.MainScreen.Bounds.Width / 2); selectedUnderline.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, tagsButton); pinToTags = selectedUnderline.AutoPinEdge(ALEdge.Left, ALEdge.Left, tagsButton); pinToPeople = selectedUnderline.AutoPinEdge(ALEdge.Left, ALEdge.Left, peopleButton); pinToPeople.Active = false; tagsTable = new UITableView(); View.AddSubview(tagsTable); tagsTable.AutoPinEdge(ALEdge.Top, ALEdge.Bottom, underline); tagTableVisible = tagsTable.AutoPinEdgeToSuperviewEdge(ALEdge.Left, 30); tagTableHidden = tagsTable.AutoPinEdge(ALEdge.Right, ALEdge.Left, View, -30); tagTableHidden.Active = false; tagsTable.AutoSetDimension(ALDimension.Width, UIScreen.MainScreen.Bounds.Width - 60); tagsTable.AutoPinEdgeToSuperviewEdge(ALEdge.Bottom); usersTable = new UITableView(); View.AddSubview(usersTable); usersTable.AutoPinEdge(ALEdge.Top, ALEdge.Top, tagsTable); usersTable.AutoPinEdge(ALEdge.Left, ALEdge.Right, tagsTable, 30); usersTable.AutoSetDimension(ALDimension.Width, UIScreen.MainScreen.Bounds.Width); usersTable.AutoPinEdge(ALEdge.Bottom, ALEdge.Bottom, tagsTable); CreateNoResultView(_noResultViewTags, tagsTable); _noResultViewTags.AutoPinEdge(ALEdge.Right, ALEdge.Right, tagsTable, 12); _noResultViewTags.AutoPinEdge(ALEdge.Left, ALEdge.Left, tagsTable, -12); _tagsNotFoundHorizontalAlignment = _noResultViewTags.AutoAlignAxis(ALAxis.Horizontal, tagsTable); CreateNoResultView(_noResultViewPeople, usersTable); _noResultViewPeople.AutoPinEdge(ALEdge.Right, ALEdge.Right, usersTable, -18); _noResultViewPeople.AutoPinEdge(ALEdge.Left, ALEdge.Left, usersTable, 18); _peopleNotFoundHorizontalAlignment = _noResultViewPeople.AutoAlignAxis(ALAxis.Horizontal, usersTable); _tagsLoader = new UIActivityIndicatorView(); _tagsLoader.ActivityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge; _tagsLoader.Color = Constants.R231G72B0; _tagsLoader.HidesWhenStopped = true; _tagsLoader.StopAnimating(); View.AddSubview(_tagsLoader); _tagsHorizontalAlignment = _tagsLoader.AutoAlignAxis(ALAxis.Horizontal, tagsTable); _tagsLoader.AutoAlignAxis(ALAxis.Vertical, tagsTable); _peopleLoader = new UIActivityIndicatorView(); _peopleLoader.ActivityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge; _peopleLoader.Color = Constants.R231G72B0; _peopleLoader.HidesWhenStopped = true; _peopleLoader.StopAnimating(); View.AddSubview(_peopleLoader); _peopleHorizontalAlignment = _peopleLoader.AutoAlignAxis(ALAxis.Horizontal, usersTable); _peopleLoader.AutoAlignAxis(ALAxis.Vertical, 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(() => { searchTextField.ResignFirstResponder(); }); View.AddGestureRecognizer(tap); }