public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            NavigationItem.Title = FoundationResources.CalendarSettingsTitle;

            var header = CalendarSettingsTableViewHeader.Create();

            UserCalendarsTableView.TableHeaderView           = header;
            header.TranslatesAutoresizingMaskIntoConstraints = false;
            header.HeightAnchor.ConstraintEqualTo(tableViewHeaderHeight).Active             = true;
            header.WidthAnchor.ConstraintEqualTo(UserCalendarsTableView.WidthAnchor).Active = true;
            header.SetCalendarPermissionStatus(ViewModel.PermissionGranted);

            var source = new SelectUserCalendarsTableViewSource(UserCalendarsTableView);

            source.SectionHeaderBackgroundColor = Colors.Settings.Background.ToNativeColor();
            UserCalendarsTableView.Source       = source;

            ViewModel.Calendars
            .Subscribe(UserCalendarsTableView.Rx().ReloadSections(source))
            .DisposedBy(DisposeBag);

            header.EnableCalendarAccessTapped
            .Subscribe(ViewModel.RequestAccess.Inputs)
            .DisposedBy(DisposeBag);

            source.Rx().ModelSelected()
            .Subscribe(ViewModel.SelectCalendar.Inputs)
            .DisposedBy(DisposeBag);
        }
예제 #2
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            NavigationItem.Title = FoundationResources.CalendarSettingsTitle;

            var header = CalendarSettingsTableViewHeader.Create();

            UserCalendarsTableView.TableHeaderView           = header;
            header.TranslatesAutoresizingMaskIntoConstraints = false;
            header.HeightAnchor.ConstraintEqualTo(tableViewHeaderHeight).Active             = true;
            header.WidthAnchor.ConstraintEqualTo(UserCalendarsTableView.WidthAnchor).Active = true;
            header.SetCalendarPermissionStatus(ViewModel.PermissionGranted);

            var source = new SelectUserCalendarsTableViewSource(UserCalendarsTableView, ViewModel.Calendars);

            source.SectionHeaderBackgroundColor = Color.Settings.Background.ToNativeColor();
            UserCalendarsTableView.Source       = source;

            this.Bind(header.EnableCalendarAccessTapped, ViewModel.RequestAccessAction);
            this.Bind(source.ItemSelected, ViewModel.SelectCalendarAction);
        }