void ReleaseDesignerOutlets() { if (SuggestionsTableViewConstraint != null) { SuggestionsTableViewConstraint.Dispose(); SuggestionsTableViewConstraint = null; } if (TitleLabel != null) { TitleLabel.Dispose(); TitleLabel = null; } if (CloseButton != null) { CloseButton.Dispose(); CloseButton = null; } if (SearchTextField != null) { SearchTextField.Dispose(); SearchTextField = null; } if (SuggestionsTableView != null) { SuggestionsTableView.Dispose(); SuggestionsTableView = null; } }
public override void ViewDidLoad() { base.ViewDidLoad(); TitleLabel.Text = Resources.Clients; SearchTextField.Placeholder = Resources.AddFilterClients; SuggestionsTableView.RegisterNibForCellReuse(ClientViewCell.Nib, ClientViewCell.Identifier); SuggestionsTableView.RegisterNibForCellReuse(CreateClientViewCell.Nib, CreateClientViewCell.Identifier); SuggestionsTableView.SeparatorStyle = UITableViewCellSeparatorStyle.None; SuggestionsTableView.Source = tableViewSource; ViewModel.Clients .Subscribe(replaceClients) .DisposedBy(DisposeBag); CloseButton.Rx() .BindAction(ViewModel.Close) .DisposedBy(DisposeBag); SearchTextField.Rx().Text() .Subscribe(ViewModel.FilterText) .DisposedBy(DisposeBag); tableViewSource.ClientSelected .Subscribe(ViewModel.SelectClient.Inputs) .DisposedBy(DisposeBag); SearchTextField.BecomeFirstResponder(); }
public override void ViewDidLoad() { base.ViewDidLoad(); StartButton.AddTarget(startTimeEntry, UIControlEvent.TouchUpInside); StopButton.AddTarget(stopTimeEntry, UIControlEvent.TouchUpInside); ShowAllTimeEntriesButton.AddTarget((s, e) => openApp(), UIControlEvent.TouchUpInside); tapGestureRecognizer = new UITapGestureRecognizer(openApp); SuggestionsTableView.RegisterNibForCellReuse(SuggestionTableViewCell.Nib, SuggestionTableViewCell.Identifier); var suggestions = SharedStorage.Instance.GetCurrentSuggestions(); if (suggestions == null) { ExtensionContext?.SetWidgetLargestAvailableDisplayMode(NCWidgetDisplayMode.Compact); return; } suggestionsCount = suggestions.Count; SuggestionsTableViewHeightConstraint.Constant = 60 * suggestionsCount; dataSource = new SuggestionsDataSource(); dataSource.Suggestions = suggestions; dataSource.Callback = continueSuggestion; SuggestionsTableView.Source = dataSource; }
void ReleaseDesignerOutlets() { if (SuggestionsTableView != null) { SuggestionsTableView.Dispose(); SuggestionsTableView = null; } if (WelcomeTextLabel != null) { WelcomeTextLabel.Dispose(); WelcomeTextLabel = null; } if (WelcomeTitleLabel != null) { WelcomeTitleLabel.Dispose(); WelcomeTitleLabel = null; } if (WelcomeView != null) { WelcomeView.Dispose(); WelcomeView = null; } }
private void toggleTaskSuggestions(ProjectSuggestion parameter) { var offset = SuggestionsTableView.ContentOffset; var frameHeight = SuggestionsTableView.Frame.Height; ViewModel.ToggleTasks.Execute(parameter); SuggestionsTableView.CorrectOffset(offset, frameHeight); }
public override void ViewDidLoad() { base.ViewDidLoad(); 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; var clientsReplay = ViewModel.Clients.Replay(); clientsReplay .Subscribe(SuggestionsTableView.Rx().ReloadItems(tableViewSource)) .DisposedBy(DisposeBag); if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) { clientsReplay .Select((clients) => { return(new CoreGraphics.CGSize(0, (clients.ToList().Count() * ClientTableViewSource.RowHeight) + headerHeight)); }) .Subscribe(this.Rx().PreferredContentSize()) .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 |= UIDevice.CurrentDevice.UserInterfaceIdiom != UIUserInterfaceIdiom.Pad; }
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 replaceClients(IEnumerable <SelectableClientBaseViewModel> clients) { tableViewSource.SetNewClients(clients); SuggestionsTableView.ReloadData(); }
void ReleaseDesignerOutlets() { if (AddProjectOnboardingBubble != null) { AddProjectOnboardingBubble.Dispose(); AddProjectOnboardingBubble = null; } if (DescriptionRemainingLengthLabel != null) { DescriptionRemainingLengthLabel.Dispose(); DescriptionRemainingLengthLabel = null; } if (Placeholder != null) { Placeholder.Dispose(); Placeholder = null; } if (StartDateButton != null) { StartDateButton.Dispose(); StartDateButton = null; } if (TimeInput != null) { TimeInput.Dispose(); TimeInput = null; } if (TimeInputTrailingConstraint != null) { TimeInputTrailingConstraint.Dispose(); TimeInputTrailingConstraint = null; } if (TimeLabel != null) { TimeLabel.Dispose(); TimeLabel = null; } if (TimeLabelTrailingConstraint != null) { TimeLabelTrailingConstraint.Dispose(); TimeLabelTrailingConstraint = null; } if (BillableButton != null) { BillableButton.Dispose(); BillableButton = null; } if (BillableButtonWidthConstraint != null) { BillableButtonWidthConstraint.Dispose(); BillableButtonWidthConstraint = null; } if (BottomDistanceConstraint != null) { BottomDistanceConstraint.Dispose(); BottomDistanceConstraint = null; } if (BottomOptionsSheet != null) { BottomOptionsSheet.Dispose(); BottomOptionsSheet = null; } if (CloseButton != null) { CloseButton.Dispose(); CloseButton = null; } if (DateTimeButton != null) { DateTimeButton.Dispose(); DateTimeButton = null; } if (DescriptionTextView != null) { DescriptionTextView.Dispose(); DescriptionTextView = null; } if (DoneButton != null) { DoneButton.Dispose(); DoneButton = null; } if (ProjectsButton != null) { ProjectsButton.Dispose(); ProjectsButton = null; } if (SuggestionsTableView != null) { SuggestionsTableView.Dispose(); SuggestionsTableView = null; } if (TagsButton != null) { TagsButton.Dispose(); TagsButton = null; } if (AddProjectBubbleLabel != null) { AddProjectBubbleLabel.Dispose(); AddProjectBubbleLabel = null; } }
public override void ViewDidLoad() { base.ViewDidLoad(); AddProjectBubbleLabel.Text = Resources.AddProjectBubbleText; prepareViews(); prepareOnboarding(); var source = new StartTimeEntryTableViewSource(SuggestionsTableView); SuggestionsTableView.Source = source; source.Rx().ModelSelected() .Subscribe(ViewModel.SelectSuggestion.Inputs) .DisposedBy(DisposeBag); ViewModel.Suggestions .Subscribe(SuggestionsTableView.Rx().ReloadSections(source)) .DisposedBy(DisposeBag); source.ToggleTasks .Subscribe(ViewModel.ToggleTasks.Inputs) .DisposedBy(DisposeBag); TimeInput.Rx().Duration() .Subscribe(ViewModel.SetRunningTime.Inputs) .DisposedBy(DisposeBag); //Text ViewModel.DisplayedTime .Subscribe(TimeLabel.Rx().Text()) .DisposedBy(DisposeBag); Placeholder.Text = ViewModel.PlaceholderText; // Buttons UIColor booleanToColor(bool b) => b ? Colors.StartTimeEntry.ActiveButton.ToNativeColor() : Colors.StartTimeEntry.InactiveButton.ToNativeColor(); ViewModel.IsBillable .Select(booleanToColor) .Subscribe(BillableButton.Rx().TintColor()) .DisposedBy(DisposeBag); ViewModel.IsSuggestingTags .Select(booleanToColor) .Subscribe(TagsButton.Rx().TintColor()) .DisposedBy(DisposeBag); ViewModel.IsSuggestingProjects .Select(booleanToColor) .Subscribe(ProjectsButton.Rx().TintColor()) .DisposedBy(DisposeBag); //Visibility ViewModel.IsBillableAvailable .Select(b => b ? (nfloat)42 : 0) .Subscribe(BillableButtonWidthConstraint.Rx().Constant()) .DisposedBy(DisposeBag); // Actions CloseButton.Rx().Tap() .Subscribe(ViewModel.CloseWithDefaultResult) .DisposedBy(DisposeBag); DoneButton.Rx() .BindAction(ViewModel.Done) .DisposedBy(DisposeBag); ViewModel.Done.Elements .Subscribe(IosDependencyContainer.Instance.IntentDonationService.DonateStartTimeEntry) .DisposedBy(DisposeBag); BillableButton.Rx() .BindAction(ViewModel.ToggleBillable) .DisposedBy(DisposeBag); StartDateButton.Rx() .BindAction(ViewModel.SetStartDate) .DisposedBy(DisposeBag); DateTimeButton.Rx() .BindAction(ViewModel.ChangeTime) .DisposedBy(DisposeBag); TagsButton.Rx() .BindAction(ViewModel.ToggleTagSuggestions) .DisposedBy(DisposeBag); ProjectsButton.Rx() .BindAction(ViewModel.ToggleProjectSuggestions) .DisposedBy(DisposeBag); // Reactive ViewModel.TextFieldInfo .DistinctUntilChanged() .Subscribe(onTextFieldInfo) .DisposedBy(DisposeBag); DescriptionTextView.Rx().AttributedText() .Select(attributedString => attributedString.Length == 0) .Subscribe(isDescriptionEmptySubject) .DisposedBy(DisposeBag); Observable.CombineLatest( DescriptionTextView.Rx().AttributedText().SelectUnit(), DescriptionTextView.Rx().CursorPosition().SelectUnit() ) .Select(_ => DescriptionTextView.AttributedText) // Programatically changing the text doesn't send an event, that's why we do this, to get the last version of the text .Do(updatePlaceholder) .Select(text => text.AsSpans((int)DescriptionTextView.SelectedRange.Location).ToIImmutableList()) .Subscribe(ViewModel.SetTextSpans.Inputs) .DisposedBy(DisposeBag); }
void ReleaseDesignerOutlets() { if (BillableButton != null) { BillableButton.Dispose(); BillableButton = null; } if (BottomDistanceConstraint != null) { BottomDistanceConstraint.Dispose(); BottomDistanceConstraint = null; } if (BottomOptionsSheet != null) { BottomOptionsSheet.Dispose(); BottomOptionsSheet = null; } if (CloseButton != null) { CloseButton.Dispose(); CloseButton = null; } if (DateTimeButton != null) { DateTimeButton.Dispose(); DateTimeButton = null; } if (DescriptionTextField != null) { DescriptionTextField.Dispose(); DescriptionTextField = null; } if (DoneButton != null) { DoneButton.Dispose(); DoneButton = null; } if (ProjectsButton != null) { ProjectsButton.Dispose(); ProjectsButton = null; } if (SuggestionsTableView != null) { SuggestionsTableView.Dispose(); SuggestionsTableView = null; } if (TagsButton != null) { TagsButton.Dispose(); TagsButton = null; } if (TimeLabel != null) { TimeLabel.Dispose(); TimeLabel = null; } }
void ReleaseDesignerOutlets() { if (DescriptionLabel != null) { DescriptionLabel.Dispose(); DescriptionLabel = null; } if (DotView != null) { DotView.Dispose(); DotView = null; } if (DurationLabel != null) { DurationLabel.Dispose(); DurationLabel = null; } if (ErrorMessageLabel != null) { ErrorMessageLabel.Dispose(); ErrorMessageLabel = null; } if (ProjectNameLabel != null) { ProjectNameLabel.Dispose(); ProjectNameLabel = null; } if (RunningTimerContainerCompactBottomConstraint != null) { RunningTimerContainerCompactBottomConstraint.Dispose(); RunningTimerContainerCompactBottomConstraint = null; } if (RunningTimerContainerView != null) { RunningTimerContainerView.Dispose(); RunningTimerContainerView = null; } if (ShowAllTimeEntriesButton != null) { ShowAllTimeEntriesButton.Dispose(); ShowAllTimeEntriesButton = null; } if (StartButton != null) { StartButton.Dispose(); StartButton = null; } if (StopButton != null) { StopButton.Dispose(); StopButton = null; } if (SuggestionsContainerExpandedBottomConstraint != null) { SuggestionsContainerExpandedBottomConstraint.Dispose(); SuggestionsContainerExpandedBottomConstraint = null; } if (SuggestionsContainerView != null) { SuggestionsContainerView.Dispose(); SuggestionsContainerView = null; } if (SuggestionsLabel != null) { SuggestionsLabel.Dispose(); SuggestionsLabel = null; } if (SuggestionsTableView != null) { SuggestionsTableView.Dispose(); SuggestionsTableView = null; } if (SuggestionsTableViewHeightConstraint != null) { SuggestionsTableViewHeightConstraint.Dispose(); SuggestionsTableViewHeightConstraint = null; } }