Exemplo n.º 1
0
        public void SetupTabs()
        {
            PageTabsAdapter tabsAdapter = new PageTabsAdapter(SupportFragmentManager);

            /*
             * // not really needed because there is not much difference between
             * // popular episodes and new episodes and also new episodes are more
             * // than popular ones
             * tabsAdapter.AddTab(new TitleFragment()
             * {
             *  Fragmnet = new Fragments.MainTabs(DataEnum.MainTabsType.PopularEpisodes),
             *  Title = "Popular Episodes"
             * });
             */
            tabsAdapter.AddTab(new TitleFragment()
            {
                Fragmnet = new Fragments.MainTabs(DataEnum.DataType.PopularShows),
                Title    = "Popular Shows"
            });
            tabsAdapter.AddTab(new TitleFragment()
            {
                Fragmnet = new Fragments.MainTabs(DataEnum.DataType.NewEpisodes),
                Title    = "New Episodes"
            });
            tabsAdapter.AddTab(new TitleFragment()
            {
                Fragmnet = new Fragments.MainTabs(DataEnum.DataType.UserFavorites),
                Title    = "Your Favorites"
            });
            tabLayout.SetupWithViewPager(viewPager);
            viewPager.Adapter = tabsAdapter;
        }
        private async void LoadData(string link, SeriesDetails showData = default)
        {
            loadingView.Visibility = ViewStates.Visible;
            ShowData = showData is null ? await WebData.GetDetailsForTVShowSeries(link) : showData;

            loadingView.Visibility = ViewStates.Gone;
            if (ShowData != null)
            {
                if (await StorageData.IsMarkedFavorite(ShowData))
                {
                    isFavorite = true;
                }
                InvalidateOptionsMenu();
                collapseToolbar.TitleEnabled = false;
                SupportActionBar.SetDisplayShowTitleEnabled(false);
                Picasso.With(this).Load(ShowData.ImageLink).Into(detailImage);
                collapseToolbar.Title = titleText.Text = ShowData.Title;
                descriptionText.Text  = "Description: " + ShowData.Description;
                releaseText.Text      = "Released: " + ShowData.ReleaseDate;
                genreText.Text        = ShowData.Genres;

                seasonsHeader.Visibility       = ViewStates.Visible;
                seasonEpisodesPager.Visibility = ViewStates.Visible;
                if (ShowData.Seasons != null && ShowData.Seasons.Count > 0)
                {
                    var adapter = new PageTabsAdapter(SupportFragmentManager);
                    foreach (var season in ShowData.Seasons)
                    {
                        adapter.AddTab(new TitleFragment()
                        {
                            Fragmnet = new MainTabs(DataEnum.DataType.SeasonsEpisodes, season.Episodes.Cast <object>()), Title = season.SeasonName
                        });
                    }
                    seasonsHeader.TabMode = ShowData.Seasons.Count < 5 ? TabLayout.ModeFixed : TabLayout.ModeScrollable;
                    seasonsHeader.SetupWithViewPager(seasonEpisodesPager);
                    seasonEpisodesPager.OffscreenPageLimit = ShowData.Seasons.Count;
                    seasonEpisodesPager.Adapter            = adapter;
                }
                else
                {
                    seasonEpisodesPager.Visibility = ViewStates.Gone;
                    seasonsHeader.Visibility       = ViewStates.Gone;
                    Error.Instance.ShowErrorSnack($"No episodes were found for {ShowData.Title}.", titleContainer);
                }
            }
            else
            {
                Error.Instance.ShowErrorSnack($"TV Show '{ShowData.Title}' could not be loaded.", titleContainer);
            }
        }
Exemplo n.º 3
0
        private void SetupTabsForGenres()
        {
            pager = FindViewById <ViewPager>(Resource.Id.main_tabs_viewpager);
            pager.OffscreenPageLimit = 3;
            tabLayout = FindViewById <TabLayout>(Resource.Id.main_tabs_header);
            tabLayout.SetupWithViewPager(pager);
            tabLayout.TabMode = TabLayout.ModeScrollable;

            var adapter = new PageTabsAdapter(SupportFragmentManager);

            pager.Adapter = adapter;
            foreach (var item in Genres)
            {
                adapter.AddTab(new TitleFragment()
                {
                    Title = item, Fragmnet = new MainTabs(DataEnum.DataType.Genres, DataEnum.GenreDataType.Shows, item, 0)
                });
            }
        }
Exemplo n.º 4
0
        public async void SetupScheduleData(SwipeRefreshLayout swipeRefresh = default)
        {
            if (viewPager.Adapter != null)
            {
                tabLayout.Visibility = viewPager.Visibility = ViewStates.Gone;
            }
            var emptyView   = FindViewById <AppCompatTextView>(Resource.Id.tv_schedule_base_emptytext);
            var tabsAdapter = new PageTabsAdapter(SupportFragmentManager);

            emptyView.Visibility = ViewStates.Visible;
            emptyView.Text       = "Loading...";
            if (swipeRefresh != null)
            {
                swipeRefresh.Refreshing = true;
            }

            var data = await WebData.GetTVSchedule().ConfigureAwait(true);

            if (data != null && data.Count > 0)
            {
                emptyView.Visibility = ViewStates.Gone;
                tabLayout.Visibility = ViewStates.Visible;
                viewPager.Visibility = ViewStates.Visible;
                viewPager.Adapter    = tabsAdapter;
                foreach (var item in data)
                {
                    tabsAdapter.AddTab(new TitleFragment()
                    {
                        Title = item.Key, Fragmnet = new MainTabs(DataEnum.DataType.TVSchedule, new List <object>(item.Value))
                    });
                }
            }
            emptyView.Text = Resources.GetString(Resource.String.empty_data_view);
            if (swipeRefresh != null)
            {
                swipeRefresh.Refreshing = false;
            }
        }