Esempio n. 1
0
        private void ScrollToVenue(Venue venue)
        {
            var tableSource = VenuesAndShowsTableView.WeakDelegate as OrgEventTableSource;

            if (tableSource != null)
            {
                var index = tableSource.GetItemIndex(venue);
                if (index != null)
                {
                    VenuesAndShowsTableView.ScrollToRow(
                        index,
                        UITableViewScrollPosition.Top,
                        true);
                }
            }
        }
Esempio n. 2
0
        void ReleaseDesignerOutlets()
        {
            if (ProgressView != null)
            {
                ProgressView.Dispose();
                ProgressView = null;
            }

            if (FullscreenHeightConstraint != null)
            {
                FullscreenHeightConstraint.Dispose();
                FullscreenHeightConstraint = null;
            }

            if (FullscreenWidthConstraint != null)
            {
                FullscreenWidthConstraint.Dispose();
                FullscreenWidthConstraint = null;
            }

            if (ListSettingsHeightConstraint != null)
            {
                ListSettingsHeightConstraint.Dispose();
                ListSettingsHeightConstraint = null;
            }

            if (ListSettingsToTableConstraint != null)
            {
                ListSettingsToTableConstraint.Dispose();
                ListSettingsToTableConstraint = null;
            }

            if (ListSettingsView != null)
            {
                ListSettingsView.Dispose();
                ListSettingsView = null;
            }

            if (MapBottomSeparator != null)
            {
                MapBottomSeparator.Dispose();
                MapBottomSeparator = null;
            }

            if (MapFullscreenButton != null)
            {
                MapFullscreenButton.Dispose();
                MapFullscreenButton = null;
            }

            if (MapHeightConstraint != null)
            {
                MapHeightConstraint.Dispose();
                MapHeightConstraint = null;
            }

            if (MapPanel != null)
            {
                MapPanel.Dispose();
                MapPanel = null;
            }

            if (MapToListSettingsConstraint != null)
            {
                MapToListSettingsConstraint.Dispose();
                MapToListSettingsConstraint = null;
            }

            if (ProgressViewTopConstraint != null)
            {
                ProgressViewTopConstraint.Dispose();
                ProgressViewTopConstraint = null;
            }

            if (SearchBar != null)
            {
                SearchBar.Dispose();
                SearchBar = null;
            }

            if (SearchTableTopConstraint != null)
            {
                SearchTableTopConstraint.Dispose();
                SearchTableTopConstraint = null;
            }

            if (SearchTableView != null)
            {
                SearchTableView.Dispose();
                SearchTableView = null;
            }

            if (TableHeightConstraint != null)
            {
                TableHeightConstraint.Dispose();
                TableHeightConstraint = null;
            }

            if (VenuesAndShowsTableView != null)
            {
                VenuesAndShowsTableView.Dispose();
                VenuesAndShowsTableView = null;
            }

            if (VenuesMapView != null)
            {
                VenuesMapView.Dispose();
                VenuesMapView = null;
            }
        }
Esempio n. 3
0
        private void UpdateViewState(bool animated)
        {
            switch (CurrentMode)
            {
            case OrgEventViewMode.Combo:
                _modeButton.Hidden        = false;
                _modeButton.VerticalIcon  = ThemeIcons.List;
                _modeButton.LandscapeIcon = ThemeIcons.ListLandscape;
                _modeButton.UpdateState();

                MapFullscreenButton.VerticalIcon  = ThemeIcons.Fullscreen;
                MapFullscreenButton.LandscapeIcon = ThemeIcons.FullscreenLandscape;
                MapFullscreenButton.UpdateState();

                VenuesAndShowsTableView.Hidden = false;
                MapPanel.Hidden = false;
                MapFullscreenButton.SetHidden(false, animated);
                ListSettingsView.Hidden       = true;
                _scrollToHideManager.IsActive = false;
                InitializeMapView();
                break;

            case OrgEventViewMode.Map:
                _modeButton.Hidden        = false;
                _modeButton.VerticalIcon  = ThemeIcons.List;
                _modeButton.LandscapeIcon = ThemeIcons.ListLandscape;
                _modeButton.UpdateState();

                MapFullscreenButton.VerticalIcon  = ThemeIcons.ExitFullscreen;
                MapFullscreenButton.LandscapeIcon = ThemeIcons.ExitFullscreenLandscape;
                MapFullscreenButton.UpdateState();

                VenuesAndShowsTableView.SetHidden(true, animated);
                MapPanel.Hidden = false;
                MapFullscreenButton.SetHidden(false, animated);
                ListSettingsView.Hidden       = true;
                _scrollToHideManager.IsActive = false;
                InitializeMapView();
                break;

            case OrgEventViewMode.List:
                _modeButton.Hidden        = !HasData;
                _modeButton.VerticalIcon  = ThemeIcons.Map;
                _modeButton.LandscapeIcon = ThemeIcons.MapLandscape;
                _modeButton.UpdateState();

                if (HasData)
                {
                    VenuesAndShowsTableView.Hidden = false;
                }

                MapPanel.SetHidden(true, animated);
                MapFullscreenButton.SetHidden(true, animated);
                var listSettingsHidden = !HasData || IsInSearch;
                ListSettingsView.SetHidden(listSettingsHidden, animated && !listSettingsHidden);
                _scrollToHideManager.IsActive = !IsInSearch && HasData;
                break;
            }

            UpdateNavBarState(animated);
            UpdateNavBarItemsState();
            UpdateDayButtonState();
            UpdateTableViewInset();
            UpdateViewConstraints(animated);
            UpdateSearchTableViewState();
            UpdateFavoritesUnavailableState();

            SearchBar.Hidden = !HasData;
            SearchTableView.SetHidden(!IsInSearch, animated);
            SearchTableView.ScrollsToTop          = IsInSearch;
            VenuesAndShowsTableView.ScrollsToTop  = !IsInSearch;
            VenuesAndShowsTableView.ScrollEnabled = !IsInSearch;
            View.BackgroundColor = IsInSearch
                ? ThemeColors.PanelBackground
                : ThemeColors.ContentLightBackground;

            SetNeedStatusBarUpdate(animated);
        }
Esempio n. 4
0
        protected override void OnViewModelPropertyChanged(string propertyName)
        {
            base.OnViewModelPropertyChanged(propertyName);

            if (propertyName == ViewModel.GetPropertyName(vm => vm.SortBy))
            {
                UpdateFavoritesUnavailableState();
                ScrollViewToTop(false);
            }
            else if (propertyName == ViewModel.GetPropertyName(vm => vm.CurrentMapType))
            {
                VenuesMapView.MapType = ViewModel.CurrentMapType.ToMKMapType();
                ReloadMap();
            }
            else if (propertyName == ViewModel.GetPropertyName(vm => vm.OrgEvent))
            {
                UpdateDayButtonState();
                UpdateViewState(false);
                ReloadMap();
            }
            else if (propertyName == ViewModel.GetPropertyName(vm => vm.SelectedVenueOnMap))
            {
                if (CurrentMode == OrgEventViewMode.Map ||
                    CurrentMode == OrgEventViewMode.Combo ||
                    ViewModel.SelectedVenueOnMap == null)
                {
                    SelectVenueMapAnnotation(ViewModel.SelectedVenueOnMap);
                }
            }
            else if (propertyName == ViewModel.GetPropertyName(vm => vm.ExpandedShow))
            {
                UpdateTableViewOnShowExpanding(VenuesAndShowsTableView);

                if (IsInSearch && !SearchTableView.Hidden)
                {
                    UpdateTableViewOnShowExpanding(SearchTableView);
                }
            }
            else if (propertyName == ViewModel.GetPropertyName(vm => vm.IsMultiday) ||
                     propertyName == ViewModel.GetPropertyName(vm => vm.CurrentDay))
            {
                UpdateDayButtonState();
            }
            else if (propertyName == ViewModel.GetPropertyName(vm => vm.SearchListItems))
            {
                UpdateSearchTableViewState();
            }
            else if (propertyName == ViewModel.GetPropertyName(vm => vm.ShowOnlyFavorites))
            {
                UpdateFavoritesUnavailableState();
                ScrollViewToTop(false);
            }
            else if (propertyName == ViewModel.GetPropertyName(vm => vm.IsInSearch))
            {
                var isInSearch = ViewModel.IsInSearch;
                UpdateViewState(true);
                InvokeAfterAnimation(() => {
                    if (!isInSearch)
                    {
                        // keeping searchbar visible after search ended
                        VenuesAndShowsTableView.SetActualContentOffset(0, false);
                    }
                });
            }
            else if (propertyName == ViewModel.GetPropertyName(vm => vm.CurrentCalendarEvent))
            {
                if (ViewModel.CurrentCalendarEvent != null)
                {
                    if (_editCalEventController == null)
                    {
                        InitializeCalEventViewController();
                    }
                }
                else
                {
                    DisposeCalEventViewController();
                }
            }
        }
Esempio n. 5
0
        private void UpdateViewConstraints(bool animated)
        {
            _isAnimating = animated;
            var animationFinish = new Action(() =>
            {
                _isAnimating = false;
                if (AnimationFinished != null)
                {
                    AnimationFinished(this, EventArgs.Empty);
                }
            });

            switch (CurrentMode)
            {
            case OrgEventViewMode.Combo:
                VenuesAndShowsTableView.RemoveConstraint(TableHeightConstraint);

                if (!View.Constraints.Contains(SearchTableTopConstraint))
                {
                    View.AddConstraint(SearchTableTopConstraint);
                }

                if (!MapPanel.Constraints.Contains(MapHeightConstraint))
                {
                    MapPanel.AddConstraint(MapHeightConstraint);
                }

                View.UpdateConstraint(
                    () => MapHeightConstraint.Constant = ScreenUtil.GetGoldenRatio(View.Frame.Height),
                    animated, animationFinish);

                MapToListSettingsConstraint.Constant   = 0;
                ListSettingsHeightConstraint.Constant  = 0;
                ListSettingsToTableConstraint.Constant = 0;
                break;

            case OrgEventViewMode.Map:
                MapPanel.RemoveConstraint(MapHeightConstraint);
                View.RemoveConstraint(SearchTableTopConstraint);

                if (!VenuesAndShowsTableView.Constraints.Contains(TableHeightConstraint))
                {
                    VenuesAndShowsTableView.AddConstraint(TableHeightConstraint);
                }

                View.UpdateConstraint(
                    () => TableHeightConstraint.Constant = 0,
                    animated, animationFinish);

                MapToListSettingsConstraint.Constant   = 0;
                ListSettingsHeightConstraint.Constant  = 0;
                ListSettingsToTableConstraint.Constant = 0;
                break;

            case OrgEventViewMode.List:
                VenuesAndShowsTableView.RemoveConstraint(TableHeightConstraint);

                if (!View.Constraints.Contains(SearchTableTopConstraint))
                {
                    View.AddConstraint(SearchTableTopConstraint);
                }

                if (!MapPanel.Constraints.Contains(MapHeightConstraint))
                {
                    MapPanel.AddConstraint(MapHeightConstraint);
                }

                View.UpdateConstraint(
                    () =>
                {
                    MapHeightConstraint.Constant = 0;

                    if (IsInSearch)
                    {
                        MapToListSettingsConstraint.Constant   = UIConstants.StatusBarHeight;
                        ListSettingsHeightConstraint.Constant  = 0;
                        ListSettingsToTableConstraint.Constant = 0;
                    }
                    else
                    {
                        MapToListSettingsConstraint.Constant   = NavBarManager.NavBarHeight;
                        ListSettingsHeightConstraint.Constant  = ListSettingsView.DefaultHeight;
                        ListSettingsToTableConstraint.Constant = -NavBarManager.NavBarHeight -
                                                                 ListSettingsView.DefaultHeight;
                    }
                },
                    animated, animationFinish);
                break;
            }

            var size = ScreenUtil.IsVerticalOrientation
                ? ButtonBarButton.DefaultVerticalSize
                : ButtonBarButton.DefaultLandscapeSize;

            FullscreenWidthConstraint.Constant  = size.Width;
            FullscreenHeightConstraint.Constant = size.Height;
        }