void ReleaseDesignerOutlets() { if (CurrentTimeEntryCard != null) { CurrentTimeEntryCard.Dispose(); CurrentTimeEntryCard = null; } if (CurrentTimeEntryDescriptionLabel != null) { CurrentTimeEntryDescriptionLabel.Dispose(); CurrentTimeEntryDescriptionLabel = null; } if (CurrentTimeEntryElapsedTimeLabel != null) { CurrentTimeEntryElapsedTimeLabel.Dispose(); CurrentTimeEntryElapsedTimeLabel = null; } if (EditTimeEntryButton != null) { EditTimeEntryButton.Dispose(); EditTimeEntryButton = null; } if (StartTimeEntryButton != null) { StartTimeEntryButton.Dispose(); StartTimeEntryButton = null; } if (StopTimeEntryButton != null) { StopTimeEntryButton.Dispose(); StopTimeEntryButton = null; } if (SuggestionsContainer != null) { SuggestionsContainer.Dispose(); SuggestionsContainer = null; } if (TimeEntriesLogContainer != null) { TimeEntriesLogContainer.Dispose(); TimeEntriesLogContainer = null; } if (TimelineView != null) { TimelineView.Dispose(); TimelineView = null; } }
public override void ViewDidLoad() { base.ViewDidLoad(); SwipeRightBubbleLabel.Text = Resources.SwipeRightToContinue; SwipeLeftBubbleLabel.Text = Resources.SwipeLeftToDelete; WelcomeBackLabel.Text = Resources.LogEmptyStateTitle; WelcomeBackDescriptionLabel.Text = Resources.LogEmptyStateText; CreatedFirstTimeEntryLabel.Text = Resources.YouHaveCreatedYourFirstTimeEntry; TapToEditItLabel.Text = Resources.TapToEditIt; StartTimerBubbleLabel.Text = Resources.TapToStartTimer; TapToStopTimerLabel.Text = Resources.TapToStopTimer; FeedbackSentSuccessTitleLabel.Text = Resources.DoneWithExclamationMark.ToUpper(); FeedbackSentDescriptionLabel.Text = Resources.ThankYouForTheFeedback; prepareViews(); prepareOnboarding(); setupTableViewHeader(); tableViewSource = new TimeEntriesLogViewSource(); TimeEntriesLogTableView.Source = tableViewSource; ViewModel.TimeEntries .Subscribe(TimeEntriesLogTableView.Rx().AnimateSections <MainLogSection, DaySummaryViewModel, LogItemViewModel, IMainLogKey>(tableViewSource)) .DisposedBy(disposeBag); ViewModel.ShouldReloadTimeEntryLog .WithLatestFrom(ViewModel.TimeEntries, (_, timeEntries) => timeEntries) .Subscribe(TimeEntriesLogTableView.Rx().ReloadSections(tableViewSource)) .DisposedBy(disposeBag); tableViewSource.ToggleGroupExpansion .Subscribe(ViewModel.TimeEntriesViewModel.ToggleGroupExpansion.Inputs) .DisposedBy(disposeBag); tableViewSource.FirstCell .Subscribe(f => { onFirstTimeEntryChanged(f); firstTimeEntryCell = f; }) .DisposedBy(DisposeBag); tableViewSource.Rx().Scrolled() .Subscribe(onTableScroll) .DisposedBy(DisposeBag); tableViewSource.ContinueTap .Select(item => timeEntryContinuation(item, false)) .Subscribe(ViewModel.ContinueTimeEntry.Inputs) .DisposedBy(DisposeBag); tableViewSource.SwipeToContinue .Select(item => timeEntryContinuation(item, true)) .Subscribe(ViewModel.ContinueTimeEntry.Inputs) .DisposedBy(DisposeBag); tableViewSource.SwipeToDelete .Select(logItem => logItem.RepresentedTimeEntriesIds) .Subscribe(ViewModel.TimeEntriesViewModel.DelayDeleteTimeEntries.Inputs) .DisposedBy(DisposeBag); tableViewSource.Rx().ModelSelected() .Select(editEventInfo) .Subscribe(ViewModel.SelectTimeEntry.Inputs) .DisposedBy(DisposeBag); ViewModel.TimeEntriesViewModel.TimeEntriesPendingDeletion .Subscribe(toggleUndoDeletion) .DisposedBy(DisposeBag); tableViewSource.SwipeToContinue .Subscribe(_ => swipeRightStep.Dismiss()) .DisposedBy(disposeBag); tableViewSource.SwipeToDelete .Subscribe(_ => swipeLeftStep.Dismiss()) .DisposedBy(disposeBag); // Refresh Control var refreshControl = new RefreshControl( ViewModel.SyncProgressState, tableViewSource.Rx().Scrolled(), tableViewSource.IsDragging); refreshControl.Refresh .Subscribe(ViewModel.Refresh.Inputs) .DisposedBy(DisposeBag); TimeEntriesLogTableView.CustomRefreshControl = refreshControl; //Actions settingsButton.Rx().BindAction(ViewModel.OpenSettings).DisposedBy(DisposeBag); syncFailuresButton.Rx().BindAction(ViewModel.OpenSyncFailures).DisposedBy(DisposeBag); StopTimeEntryButton.Rx().BindAction(ViewModel.StopTimeEntry, _ => TimeEntryStopOrigin.Manual).DisposedBy(DisposeBag); StartTimeEntryButton.Rx().BindAction(ViewModel.StartTimeEntry, _ => true).DisposedBy(DisposeBag); StartTimeEntryButton.Rx().BindAction(ViewModel.StartTimeEntry, _ => false, ButtonEventType.LongPress).DisposedBy(DisposeBag); CurrentTimeEntryCard.Rx().Tap() .WithLatestFrom(ViewModel.CurrentRunningTimeEntry, (_, te) => te) .Where(te => te != null) .Select(te => (new[] { te.Id }, EditTimeEntryOrigin.RunningTimeEntryCard)) .Subscribe(ViewModel.SelectTimeEntry.Inputs) .DisposedBy(DisposeBag); //Visibility var shouldWelcomeBack = ViewModel.ShouldShowWelcomeBack; ViewModel.ShouldShowEmptyState .Subscribe(visible => emptyStateView.Hidden = !visible) .DisposedBy(DisposeBag); shouldWelcomeBack .Subscribe(WelcomeBackView.Rx().IsVisible()) .DisposedBy(DisposeBag); shouldWelcomeBack .Subscribe(spiderContainerView.Rx().IsVisible()) .DisposedBy(DisposeBag); shouldWelcomeBack .Subscribe(visible => { if (visible) { spiderBroView.Show(); } else { spiderBroView.Hide(); } }) .DisposedBy(DisposeBag); //Text ViewModel.CurrentRunningTimeEntry .Select(te => te?.Description) .Subscribe(CurrentTimeEntryDescriptionLabel.Rx().Text()) .DisposedBy(DisposeBag); ViewModel.ElapsedTime .Subscribe(CurrentTimeEntryElapsedTimeLabel.Rx().Text()) .DisposedBy(DisposeBag); var capHeight = CurrentTimeEntryProjectTaskClientLabel.Font.CapHeight; var clientColor = Colors.Main.CurrentTimeEntryClientColor.ToNativeColor(); ViewModel.CurrentRunningTimeEntry .Select(te => te?.ToFormattedTimeEntryString(capHeight, clientColor, shouldColorProject: true)) .Subscribe(CurrentTimeEntryProjectTaskClientLabel.Rx().AttributedText()) .DisposedBy(DisposeBag); //The start button var trackModeImage = UIImage.FromBundle("playIcon"); var manualModeImage = UIImage.FromBundle("manualIcon"); ViewModel.IsInManualMode .Select(isInManualMode => isInManualMode ? manualModeImage : trackModeImage) .Subscribe(image => StartTimeEntryButton.SetImage(image, UIControlState.Normal)) .DisposedBy(DisposeBag); //The sync failures button ViewModel.NumberOfSyncFailures .Select(numberOfSyncFailures => numberOfSyncFailures > 0) .Subscribe(syncFailuresButton.Rx().IsVisible()) .DisposedBy(DisposeBag); ViewModel.RatingViewModel.IsFeedbackSuccessViewShowing .Subscribe(SendFeedbackSuccessView.Rx().AnimatedIsVisible()) .DisposedBy(DisposeBag); SendFeedbackSuccessView.Rx().Tap() .Subscribe(ViewModel.RatingViewModel.CloseFeedbackSuccessView) .DisposedBy(DisposeBag); ViewModel.ShouldShowRatingView .Subscribe(showHideRatingView) .DisposedBy(disposeBag); // Suggestion View suggestionsView.SuggestionTapped .Subscribe(ViewModel.SuggestionsViewModel.StartTimeEntry.Inputs) .DisposedBy(DisposeBag); ViewModel.SuggestionsViewModel.IsEmpty.Invert() .Subscribe(suggestionsView.Rx().IsVisible()) .DisposedBy(DisposeBag); ViewModel.SuggestionsViewModel.Suggestions .ReemitWhen(traitCollectionSubject) .Subscribe(suggestionsView.OnSuggestions) .DisposedBy(DisposeBag); View.SetNeedsLayout(); View.LayoutIfNeeded(); NSNotificationCenter.DefaultCenter.AddObserver(UIApplication.DidBecomeActiveNotification, onApplicationDidBecomeActive); }
void ReleaseDesignerOutlets() { if (CurrentTimeEntryCard != null) { CurrentTimeEntryCard.Dispose(); CurrentTimeEntryCard = null; } if (CreatedFirstTimeEntryLabel != null) { CreatedFirstTimeEntryLabel.Dispose(); CreatedFirstTimeEntryLabel = null; } if (CurrentTimeEntryDescriptionLabel != null) { CurrentTimeEntryDescriptionLabel.Dispose(); CurrentTimeEntryDescriptionLabel = null; } if (CurrentTimeEntryElapsedTimeLabel != null) { CurrentTimeEntryElapsedTimeLabel.Dispose(); CurrentTimeEntryElapsedTimeLabel = null; } if (CurrentTimeEntryProjectTaskClientLabel != null) { CurrentTimeEntryProjectTaskClientLabel.Dispose(); CurrentTimeEntryProjectTaskClientLabel = null; } if (FeedbackSentDescriptionLabel != null) { FeedbackSentDescriptionLabel.Dispose(); FeedbackSentDescriptionLabel = null; } if (FeedbackSentSuccessTitleLabel != null) { FeedbackSentSuccessTitleLabel.Dispose(); FeedbackSentSuccessTitleLabel = null; } if (RunningEntryDescriptionFadeView != null) { RunningEntryDescriptionFadeView.Dispose(); RunningEntryDescriptionFadeView = null; } if (SendFeedbackSuccessView != null) { SendFeedbackSuccessView.Dispose(); SendFeedbackSuccessView = null; } if (StartTimeEntryButton != null) { StartTimeEntryButton.Dispose(); StartTimeEntryButton = null; } if (StartTimeEntryOnboardingBubbleView != null) { StartTimeEntryOnboardingBubbleView.Dispose(); StartTimeEntryOnboardingBubbleView = null; } if (StartTimerBubbleLabel != null) { StartTimerBubbleLabel.Dispose(); StartTimerBubbleLabel = null; } if (StopTimeEntryButton != null) { StopTimeEntryButton.Dispose(); StopTimeEntryButton = null; } if (StopTimeEntryOnboardingBubbleView != null) { StopTimeEntryOnboardingBubbleView.Dispose(); StopTimeEntryOnboardingBubbleView = null; } if (TapToEditBubbleView != null) { TapToEditBubbleView.Dispose(); TapToEditBubbleView = null; } if (TapToEditBubbleViewTopConstraint != null) { TapToEditBubbleViewTopConstraint.Dispose(); TapToEditBubbleViewTopConstraint = null; } if (TapToEditItLabel != null) { TapToEditItLabel.Dispose(); TapToEditItLabel = null; } if (TapToStopTimerLabel != null) { TapToStopTimerLabel.Dispose(); TapToStopTimerLabel = null; } if (TimeEntriesLogTableView != null) { TimeEntriesLogTableView.Dispose(); TimeEntriesLogTableView = null; } if (TimeEntriesLogTableViewBottomToTopCurrentEntryConstraint != null) { TimeEntriesLogTableViewBottomToTopCurrentEntryConstraint.Dispose(); TimeEntriesLogTableViewBottomToTopCurrentEntryConstraint = null; } if (TopConstraint != null) { TopConstraint.Dispose(); TopConstraint = null; } if (TopSeparator != null) { TopSeparator.Dispose(); TopSeparator = null; } if (WelcomeBackDescriptionLabel != null) { WelcomeBackDescriptionLabel.Dispose(); WelcomeBackDescriptionLabel = null; } if (WelcomeBackLabel != null) { WelcomeBackLabel.Dispose(); WelcomeBackLabel = null; } if (WelcomeBackView != null) { WelcomeBackView.Dispose(); WelcomeBackView = null; } }
public override void ViewDidLoad() { base.ViewDidLoad(); TableShadow.Layer.MasksToBounds = false; TableShadow.Layer.ShadowColor = UIColor.Black.CGColor; TableShadow.Layer.ShadowOffset = new CGSize(0, 0); TableShadow.Layer.ShadowOpacity = 0.1f; TableShadow.Layer.ShadowRadius = 4; TableShadow.Hidden = TraitCollection.HorizontalSizeClass != UIUserInterfaceSizeClass.Regular; var separator = NavigationController.NavigationBar.InsertSeparator(); separator.BackgroundColor = ColorAssets.OpaqueSeparator; WelcomeBackLabel.Text = Resources.LogEmptyStateTitle; WelcomeBackDescriptionLabel.Text = Resources.LogEmptyStateText; CreatedFirstTimeEntryLabel.Text = Resources.YouHaveCreatedYourFirstTimeEntry; TapToEditItLabel.Text = Resources.TapToEditIt; StartTimerBubbleLabel.Text = Resources.TapToStartTimer; TapToStopTimerLabel.Text = Resources.TapToStopTimer; FeedbackSentSuccessTitleLabel.Text = Resources.DoneWithExclamationMark.ToUpper(); FeedbackSentDescriptionLabel.Text = Resources.ThankYouForTheFeedback; StartTimeEntryButton.AccessibilityLabel = Resources.StartTimeEntry; StopTimeEntryButton.AccessibilityLabel = Resources.StopCurrentlyRunningTimeEntry; tableViewSource = new TimeEntriesLogViewSource(); prepareViews(); prepareOnboarding(); setupTableViewHeader(); ViewModel.SwipeActionsEnabled .Subscribe(tableViewSource.SetSwipeActionsEnabled) .DisposedBy(disposeBag); TimeEntriesLogTableView.Source = tableViewSource; TimeEntriesLogTableView.BackgroundColor = ColorAssets.TableBackground; ViewModel.TimeEntries .Subscribe(TimeEntriesLogTableView.Rx().AnimateSections <MainLogSection, DaySummaryViewModel, LogItemViewModel, IMainLogKey>(tableViewSource)) .DisposedBy(disposeBag); ViewModel.ShouldReloadTimeEntryLog .WithLatestFrom(ViewModel.TimeEntries, (_, timeEntries) => timeEntries) .Subscribe(TimeEntriesLogTableView.Rx().ReloadSections(tableViewSource)) .DisposedBy(disposeBag); tableViewSource.ToggleGroupExpansion .Subscribe(ViewModel.TimeEntriesViewModel.ToggleGroupExpansion.Inputs) .DisposedBy(disposeBag); tableViewSource.FirstCell .Subscribe(onFirstTimeEntryChanged) .DisposedBy(DisposeBag); tableViewSource.Rx().Scrolled() .Subscribe(onTableScroll) .DisposedBy(DisposeBag); tableViewSource.ContinueTap .Select(item => timeEntryContinuation(item, false)) .Subscribe(ViewModel.ContinueTimeEntry.Inputs) .DisposedBy(DisposeBag); tableViewSource.SwipeToContinue .Select(item => timeEntryContinuation(item, true)) .Subscribe(ViewModel.ContinueTimeEntry.Inputs) .DisposedBy(DisposeBag); tableViewSource.SwipeToDelete .Select(logItem => logItem.RepresentedTimeEntriesIds) .Subscribe(ViewModel.TimeEntriesViewModel.DelayDeleteTimeEntries.Inputs) .DisposedBy(DisposeBag); tableViewSource.Rx().ModelSelected() .Select(editEventInfo) .Subscribe(ViewModel.SelectTimeEntry.Inputs) .DisposedBy(DisposeBag); tableViewSource.Rx().ItemsChanged() .Subscribe(updateTooltipPositions) .DisposedBy(DisposeBag); ViewModel.TimeEntriesViewModel.TimeEntriesPendingDeletion .Subscribe(toggleUndoDeletion) .DisposedBy(DisposeBag); // Refresh Control var refreshControl = new RefreshControl( ViewModel.SyncProgressState, tableViewSource.Rx().Scrolled(), tableViewSource.IsDragging); refreshControl.Refresh .Subscribe(ViewModel.Refresh.Inputs) .DisposedBy(DisposeBag); TimeEntriesLogTableView.CustomRefreshControl = refreshControl; //Actions settingsButton.Rx().BindAction(ViewModel.OpenSettings).DisposedBy(DisposeBag); syncFailuresButton.Rx().BindAction(ViewModel.OpenSyncFailures).DisposedBy(DisposeBag); StopTimeEntryButton.Rx().BindAction(ViewModel.StopTimeEntry, _ => TimeEntryStopOrigin.Manual).DisposedBy(DisposeBag); StartTimeEntryButton.Rx().BindAction(ViewModel.StartTimeEntry, _ => true).DisposedBy(DisposeBag); StartTimeEntryButton.Rx().BindAction(ViewModel.StartTimeEntry, _ => false, ButtonEventType.LongPress, useFeedback: true).DisposedBy(DisposeBag); CurrentTimeEntryCard.Rx().Tap() .WithLatestFrom(ViewModel.CurrentRunningTimeEntry, (_, te) => te) .Where(te => te != null) .Select(te => new EditTimeEntryInfo(EditTimeEntryOrigin.RunningTimeEntryCard, te.Id)) .Subscribe(ViewModel.SelectTimeEntry.Inputs) .DisposedBy(DisposeBag); //Visibility var shouldWelcomeBack = ViewModel.ShouldShowWelcomeBack; ViewModel.ShouldShowEmptyState .Subscribe(visible => emptyStateView.Hidden = !visible) .DisposedBy(DisposeBag); shouldWelcomeBack .Subscribe(WelcomeBackView.Rx().IsVisible()) .DisposedBy(DisposeBag); shouldWelcomeBack .Subscribe(spiderContainerView.Rx().IsVisible()) .DisposedBy(DisposeBag); shouldWelcomeBack .Subscribe(visible => { if (visible) { spiderBroView.Show(); } else { spiderBroView.Hide(); } }) .DisposedBy(DisposeBag); //Text ViewModel.CurrentRunningTimeEntry .Select(te => te?.Description) .Subscribe(CurrentTimeEntryDescriptionLabel.Rx().Text()) .DisposedBy(DisposeBag); ViewModel.ElapsedTime .Subscribe(CurrentTimeEntryElapsedTimeLabel.Rx().Text()) .DisposedBy(DisposeBag); var capHeight = CurrentTimeEntryProjectTaskClientLabel.Font.CapHeight; var clientColor = ColorAssets.Text3; ViewModel.CurrentRunningTimeEntry .Select(te => te?.ToFormattedTimeEntryString(capHeight, clientColor, shouldColorProject: true)) .Subscribe(CurrentTimeEntryProjectTaskClientLabel.Rx().AttributedText()) .DisposedBy(DisposeBag); //Accessibility CurrentTimeEntryCard.IsAccessibilityElementFocused .CombineLatest(ViewModel.CurrentRunningTimeEntry, (_, runningEntry) => createAccessibilityLabelForRunningEntryCard(runningEntry)) .Subscribe(CurrentTimeEntryCard.Rx().AccessibilityLabel()) .DisposedBy(disposeBag); //The start button var trackModeImage = UIImage.FromBundle("playIcon"); var manualModeImage = UIImage.FromBundle("manualIcon"); ViewModel.IsInManualMode .Select(isInManualMode => isInManualMode ? manualModeImage : trackModeImage) .Subscribe(image => StartTimeEntryButton.SetImage(image, UIControlState.Normal)) .DisposedBy(DisposeBag); //The sync failures button ViewModel.NumberOfSyncFailures .Select(numberOfSyncFailures => numberOfSyncFailures > 0) .Subscribe(syncFailuresButton.Rx().IsVisible()) .DisposedBy(DisposeBag); ViewModel.RatingViewModel.IsFeedbackSuccessViewShowing .Subscribe(SendFeedbackSuccessView.Rx().AnimatedIsVisible()) .DisposedBy(DisposeBag); SendFeedbackSuccessView.Rx().Tap() .Subscribe(ViewModel.RatingViewModel.CloseFeedbackSuccessView) .DisposedBy(DisposeBag); ViewModel.ShouldShowRatingView .Subscribe(showHideRatingView) .DisposedBy(disposeBag); // Suggestion View suggestionsView.SuggestionTapped .Subscribe(ViewModel.SuggestionsViewModel.StartTimeEntry.Inputs) .DisposedBy(DisposeBag); ViewModel.SuggestionsViewModel.IsEmpty.Invert() .Subscribe(suggestionsView.Rx().IsVisible()) .DisposedBy(DisposeBag); ViewModel.SuggestionsViewModel.Suggestions .ReemitWhen(traitCollectionSubject) .Subscribe(suggestions => { suggestionsView.OnSuggestions(suggestions); layoutTableHeader(); }) .DisposedBy(DisposeBag); // Intent Donation IosDependencyContainer.Instance.IntentDonationService.SetDefaultShortcutSuggestions(); Observable.Merge( ViewModel.ContinueTimeEntry.Elements, ViewModel.SuggestionsViewModel.StartTimeEntry.Elements ) .Subscribe(IosDependencyContainer.Instance.IntentDonationService.DonateStartTimeEntry) .DisposedBy(DisposeBag); ViewModel.StopTimeEntry.Elements .Subscribe(IosDependencyContainer.Instance.IntentDonationService.DonateStopCurrentTimeEntry) .DisposedBy(DisposeBag); View.SetNeedsLayout(); View.LayoutIfNeeded(); NSNotificationCenter.DefaultCenter.AddObserver(UIApplication.DidBecomeActiveNotification, onApplicationDidBecomeActive); }
void ReleaseDesignerOutlets() { if (CurrentTimeEntryCard != null) { CurrentTimeEntryCard.Dispose(); CurrentTimeEntryCard = null; } if (CurrentTimeEntryDescriptionLabel != null) { CurrentTimeEntryDescriptionLabel.Dispose(); CurrentTimeEntryDescriptionLabel = null; } if (CurrentTimeEntryElapsedTimeLabel != null) { CurrentTimeEntryElapsedTimeLabel.Dispose(); CurrentTimeEntryElapsedTimeLabel = null; } if (EditTimeEntryButton != null) { EditTimeEntryButton.Dispose(); EditTimeEntryButton = null; } if (MainPagedScrollView != null) { MainPagedScrollView.Dispose(); MainPagedScrollView = null; } if (SpiderBroImageView != null) { SpiderBroImageView.Dispose(); SpiderBroImageView = null; } if (StartTimeEntryButton != null) { StartTimeEntryButton.Dispose(); StartTimeEntryButton = null; } if (StopTimeEntryButton != null) { StopTimeEntryButton.Dispose(); StopTimeEntryButton = null; } if (SuggestionsContainer != null) { SuggestionsContainer.Dispose(); SuggestionsContainer = null; } if (SyncIndicatorView != null) { SyncIndicatorView.Dispose(); SyncIndicatorView = null; } if (SyncStateLabel != null) { SyncStateLabel.Dispose(); SyncStateLabel = null; } if (SyncStateView != null) { SyncStateView.Dispose(); SyncStateView = null; } if (TimeEntriesLogContainer != null) { TimeEntriesLogContainer.Dispose(); TimeEntriesLogContainer = null; } if (TimelineView != null) { TimelineView.Dispose(); TimelineView = null; } if (RunningEntryDescriptionFadingView != null) { RunningEntryDescriptionFadingView.Dispose(); RunningEntryDescriptionFadingView = null; } }
void ReleaseDesignerOutlets() { if (TopConstraint != null) { TopConstraint.Dispose(); TopConstraint = null; } if (CurrentTimeEntryCard != null) { CurrentTimeEntryCard.Dispose(); CurrentTimeEntryCard = null; } if (CurrentTimeEntryDescriptionLabel != null) { CurrentTimeEntryDescriptionLabel.Dispose(); CurrentTimeEntryDescriptionLabel = null; } if (CurrentTimeEntryElapsedTimeLabel != null) { CurrentTimeEntryElapsedTimeLabel.Dispose(); CurrentTimeEntryElapsedTimeLabel = null; } if (CurrentTimeEntryProjectTaskClientLabel != null) { CurrentTimeEntryProjectTaskClientLabel.Dispose(); CurrentTimeEntryProjectTaskClientLabel = null; } if (EditTimeEntryButton != null) { EditTimeEntryButton.Dispose(); EditTimeEntryButton = null; } if (RunningEntryDescriptionFadeView != null) { RunningEntryDescriptionFadeView.Dispose(); RunningEntryDescriptionFadeView = null; } if (StartTimeEntryButton != null) { StartTimeEntryButton.Dispose(); StartTimeEntryButton = null; } if (StopTimeEntryButton != null) { StopTimeEntryButton.Dispose(); StopTimeEntryButton = null; } if (TimeEntriesLogTableView != null) { TimeEntriesLogTableView.Dispose(); TimeEntriesLogTableView = null; } if (TopSeparator != null) { TopSeparator.Dispose(); TopSeparator = null; } if (WelcomeBackView != null) { WelcomeBackView.Dispose(); WelcomeBackView = null; } }
void ReleaseDesignerOutlets() { if (CurrentTimeEntryCard != null) { CurrentTimeEntryCard.Dispose(); CurrentTimeEntryCard = null; } if (CurrentTimeEntryDescriptionLabel != null) { CurrentTimeEntryDescriptionLabel.Dispose(); CurrentTimeEntryDescriptionLabel = null; } if (CurrentTimeEntryElapsedTimeLabel != null) { CurrentTimeEntryElapsedTimeLabel.Dispose(); CurrentTimeEntryElapsedTimeLabel = null; } if (CurrentTimeEntryProjectTaskClientLabel != null) { CurrentTimeEntryProjectTaskClientLabel.Dispose(); CurrentTimeEntryProjectTaskClientLabel = null; } if (EditTimeEntryButton != null) { EditTimeEntryButton.Dispose(); EditTimeEntryButton = null; } if (RunningEntryDescriptionFadeView != null) { RunningEntryDescriptionFadeView.Dispose(); RunningEntryDescriptionFadeView = null; } if (StartTimeEntryButton != null) { StartTimeEntryButton.Dispose(); StartTimeEntryButton = null; } if (StartTimeEntryOnboardingBubbleView != null) { StartTimeEntryOnboardingBubbleView.Dispose(); StartTimeEntryOnboardingBubbleView = null; } if (StopTimeEntryButton != null) { StopTimeEntryButton.Dispose(); StopTimeEntryButton = null; } if (TapToEditBubbleView != null) { TapToEditBubbleView.Dispose(); TapToEditBubbleView = null; } if (TapToEditBubbleViewTopConstraint != null) { TapToEditBubbleViewTopConstraint.Dispose(); TapToEditBubbleViewTopConstraint = null; } if (StopTimeEntryOnboardingBubbleView != null) { StopTimeEntryOnboardingBubbleView.Dispose(); StopTimeEntryOnboardingBubbleView = null; } if (TimeEntriesLogTableView != null) { TimeEntriesLogTableView.Dispose(); TimeEntriesLogTableView = null; } if (TopConstraint != null) { TopConstraint.Dispose(); TopConstraint = null; } if (TopSeparator != null) { TopSeparator.Dispose(); TopSeparator = null; } if (WelcomeBackView != null) { WelcomeBackView.Dispose(); WelcomeBackView = null; } if (SendFeedbackSuccessView != null) { SendFeedbackSuccessView.Dispose(); SendFeedbackSuccessView = null; } if (SwipeRightBubbleView != null) { SwipeRightBubbleView.Dispose(); SwipeRightBubbleView = null; } if (SwipeLeftBubbleView != null) { SwipeLeftBubbleView.Dispose(); SwipeLeftBubbleView = null; } if (SwipeLeftTopConstraint != null) { SwipeLeftTopConstraint.Dispose(); SwipeLeftTopConstraint = null; } if (SwipeRightTopConstraint != null) { SwipeRightTopConstraint.Dispose(); SwipeRightTopConstraint = null; } }