void ReleaseDesignerOutlets() { if (CalendarCollectionView != null) { CalendarCollectionView.Dispose(); CalendarCollectionView = null; } if (GetStartedButton != null) { GetStartedButton.Dispose(); GetStartedButton = null; } if (OnboardingView != null) { OnboardingView.Dispose(); OnboardingView = null; } if (DescriptionLabel != null) { DescriptionLabel.Dispose(); DescriptionLabel = null; } if (TitleLabel != null) { TitleLabel.Dispose(); TitleLabel = null; } }
void ReleaseDesignerOutlets() { if (CalendarCollectionView != null) { CalendarCollectionView.Dispose(); CalendarCollectionView = null; } if (DescriptionLabel != null) { DescriptionLabel.Dispose(); DescriptionLabel = null; } if (GetStartedButton != null) { GetStartedButton.Dispose(); GetStartedButton = null; } if (OnboardingView != null) { OnboardingView.Dispose(); OnboardingView = null; } if (TitleLabel != null) { TitleLabel.Dispose(); TitleLabel = null; } if (ExtendedNavbarView != null) { ExtendedNavbarView.Dispose(); ExtendedNavbarView = null; } if (TimeTrackedTodayLabel != null) { TimeTrackedTodayLabel.Dispose(); TimeTrackedTodayLabel = null; } if (CurrentDateLabel != null) { CurrentDateLabel.Dispose(); CurrentDateLabel = null; } }
private void selectGoodScrollPoint(TimeSpan timeOfDay) { var frameHeight = CalendarCollectionView.Frame.Height - CalendarCollectionView.ContentInset.Top - CalendarCollectionView.ContentInset.Bottom; var hoursOnScreen = frameHeight / (CalendarCollectionView.ContentSize.Height / 24); var centeredHour = calculateCenteredHour(timeOfDay.TotalHours, hoursOnScreen); var offsetY = (centeredHour / 24) * CalendarCollectionView.ContentSize.Height - (frameHeight / 2); var scrollPointY = offsetY.Clamp(0, CalendarCollectionView.ContentSize.Height - frameHeight); var offset = new CGPoint(0, scrollPointY); CalendarCollectionView.SetContentOffset(offset, false); }
public override void ViewDidLoad() { base.ViewDidLoad(); settingsButton.SetImage(UIImage.FromBundle("icSettings"), UIControlState.Normal); ViewModel .ShouldShowOnboarding .FirstAsync() .Subscribe( shouldShowOnboarding => OnboardingView.Alpha = shouldShowOnboarding ? 1: 0) .DisposedBy(DisposeBag); this.Bind(ViewModel.ShouldShowOnboarding, OnboardingView.Rx().IsVisibleWithFade()); this.Bind(GetStartedButton.Rx().Tap(), ViewModel.GetStartedAction); var timeService = Mvx.Resolve <ITimeService>(); dataSource = new CalendarCollectionViewSource( CalendarCollectionView, ViewModel.Date, ViewModel.TimeOfDayFormat, ViewModel.CalendarItems); layout = new CalendarCollectionViewLayout(timeService, dataSource); editItemHelper = new CalendarCollectionViewEditItemHelper(CalendarCollectionView, dataSource, layout); createFromSpanHelper = new CalendarCollectionViewCreateFromSpanHelper(CalendarCollectionView, dataSource, layout); CalendarCollectionView.SetCollectionViewLayout(layout, false); CalendarCollectionView.Delegate = dataSource; CalendarCollectionView.DataSource = dataSource; CalendarCollectionView.ContentInset = new UIEdgeInsets(20, 0, 20, 0); this.Bind(dataSource.ItemTapped, ViewModel.OnItemTapped); this.Bind(settingsButton.Rx().Tap(), ViewModel.SelectCalendars); this.Bind(editItemHelper.EditCalendarItem, ViewModel.OnUpdateTimeEntry); this.Bind(ViewModel.SettingsAreVisible, settingsButton.Rx().IsVisible()); this.Bind(createFromSpanHelper.CreateFromSpan, ViewModel.OnDurationSelected); CalendarCollectionView.LayoutIfNeeded(); var currentTimeY = layout.FrameForCurrentTime().Y; var scrollPointY = currentTimeY - View.Frame.Height / 2; var currentTimePoint = new CGPoint(0, scrollPointY.Clamp(0, CalendarCollectionView.ContentSize.Height)); CalendarCollectionView.SetContentOffset(currentTimePoint, false); }
public override void ViewDidLayoutSubviews() { base.ViewDidLayoutSubviews(); if (calendarInitialized) { return; } calendarCollectionViewSource.DecelerationEndedObservable .Subscribe(ViewModel.SetCurrentPage) .DisposedBy(disposeBag); ViewModel.CurrentPageObservable .Subscribe(CalendarCollectionView.Rx().CurrentPageObserver()) .DisposedBy(disposeBag); calendarInitialized = true; }
public override void ViewDidLayoutSubviews() { base.ViewDidLayoutSubviews(); if (calendarInitialized) return; calendarCollectionViewSource.CurrentPageNotScrollingObservable .Subscribe(ViewModel.SetCurrentPage) .DisposedBy(disposeBag); calendarCollectionViewSource.CurrentPageWhileScrollingObservable .Subscribe(ViewModel.UpdateMonth) .DisposedBy(disposeBag); ViewModel.CurrentPageObservable .Subscribe(CalendarCollectionView.Rx().CurrentPageObserver()) .DisposedBy(disposeBag); calendarInitialized = true; }
void ReleaseDesignerOutlets() { if (GetStartedButton != null) { GetStartedButton.Dispose(); GetStartedButton = null; } if (OnboardingView != null) { OnboardingView.Dispose(); OnboardingView = null; } if (CalendarCollectionView != null) { CalendarCollectionView.Dispose(); CalendarCollectionView = null; } }
public override void ViewDidLayoutSubviews() { base.ViewDidLayoutSubviews(); if (calendarInitialized) { return; } calendarCollectionViewSource.CurrentPageNotScrollingObservable .Subscribe(ViewModel.SetCurrentPage) .DisposedBy(DisposeBag); calendarCollectionViewSource.CurrentPageWhileScrollingObservable .Subscribe(ViewModel.UpdateMonth) .DisposedBy(DisposeBag); ViewModel.CurrentPageObservable .ObserveOn(IosDependencyContainer.Instance.SchedulerProvider.MainScheduler) .Subscribe(CalendarCollectionView.Rx().CurrentPageObserver()) .DisposedBy(DisposeBag); calendarInitialized = true; }
public override void ViewDidLoad() { base.ViewDidLoad(); ExtendedNavbarView.BackgroundColor = NavigationController.NavigationBar.BackgroundColor; TimeTrackedTodayLabel.Font = TimeTrackedTodayLabel.Font.GetMonospacedDigitFont(); TitleLabel.Text = Resources.Welcome; DescriptionLabel.Text = Resources.CalendarFeatureDescription; GetStartedButton.SetTitle(Resources.GetStarted, UIControlState.Normal); settingsButton.SetImage(UIImage.FromBundle("icSettings"), UIControlState.Normal); ViewModel .ShouldShowOnboarding .FirstAsync() .Subscribe( shouldShowOnboarding => OnboardingView.Alpha = shouldShowOnboarding ? 1: 0) .DisposedBy(DisposeBag); ViewModel.ShouldShowOnboarding .Subscribe(OnboardingView.Rx().IsVisibleWithFade()) .DisposedBy(DisposeBag); GetStartedButton.Rx() .BindAction(ViewModel.GetStarted) .DisposedBy(DisposeBag); ViewModel.TimeTrackedToday .Subscribe(TimeTrackedTodayLabel.Rx().Text()) .DisposedBy(DisposeBag); ViewModel.CurrentDate .Subscribe(CurrentDateLabel.Rx().Text()) .DisposedBy(DisposeBag); dataSource = new CalendarCollectionViewSource( timeService, CalendarCollectionView, ViewModel.TimeOfDayFormat, ViewModel.CalendarItems); layout = new CalendarCollectionViewLayout(timeService, dataSource); editItemHelper = new CalendarCollectionViewEditItemHelper(CalendarCollectionView, timeService, dataSource, layout); createFromSpanHelper = new CalendarCollectionViewCreateFromSpanHelper(CalendarCollectionView, dataSource, layout); zoomHelper = new CalendarCollectionViewZoomHelper(CalendarCollectionView, layout); CalendarCollectionView.SetCollectionViewLayout(layout, false); CalendarCollectionView.Delegate = dataSource; CalendarCollectionView.DataSource = dataSource; CalendarCollectionView.ContentInset = new UIEdgeInsets(20, 0, 20, 0); dataSource.ItemTapped .Subscribe(ViewModel.OnItemTapped.Inputs) .DisposedBy(DisposeBag); settingsButton.Rx() .BindAction(ViewModel.SelectCalendars) .DisposedBy(DisposeBag); editItemHelper.EditCalendarItem .Subscribe(ViewModel.OnUpdateTimeEntry.Inputs) .DisposedBy(DisposeBag); editItemHelper.LongPressCalendarEvent .Subscribe(ViewModel.OnCalendarEventLongPressed.Inputs) .DisposedBy(DisposeBag); ViewModel.SettingsAreVisible .Subscribe(settingsButton.Rx().IsVisible()) .DisposedBy(DisposeBag); createFromSpanHelper.CreateFromSpan .Subscribe(ViewModel.OnDurationSelected.Inputs) .DisposedBy(DisposeBag); CalendarCollectionView.LayoutIfNeeded(); }
void ReleaseDesignerOutlets() { if (CalendarCollectionView != null) { CalendarCollectionView.Dispose(); CalendarCollectionView = null; } if (CurrentMonthLabel != null) { CurrentMonthLabel.Dispose(); CurrentMonthLabel = null; } if (DayHeader0 != null) { DayHeader0.Dispose(); DayHeader0 = null; } if (DayHeader1 != null) { DayHeader1.Dispose(); DayHeader1 = null; } if (DayHeader2 != null) { DayHeader2.Dispose(); DayHeader2 = null; } if (DayHeader3 != null) { DayHeader3.Dispose(); DayHeader3 = null; } if (DayHeader4 != null) { DayHeader4.Dispose(); DayHeader4 = null; } if (DayHeader5 != null) { DayHeader5.Dispose(); DayHeader5 = null; } if (DayHeader6 != null) { DayHeader6.Dispose(); DayHeader6 = null; } if (QuickSelectCollectionView != null) { QuickSelectCollectionView.Dispose(); QuickSelectCollectionView = null; } if (QuickSelectCollectionViewLayout != null) { QuickSelectCollectionViewLayout.Dispose(); QuickSelectCollectionViewLayout = null; } }
public void ScrollToTop() { CalendarCollectionView.SetContentOffset(CGPoint.Empty, true); }