Esempio n. 1
0
        private void Bind()
        {
            overview.Text      = viewModel.Overview;
            originalTitle.Text = viewModel.OriginalTitle;
            releaseDate.Text   = viewModel.ReleaseDate;
            rating.Rating      = viewModel.Rating;
            votes.Text         = viewModel.Votes;
            favorite.Text      = viewModel.FavoriteButtonText;
            similarManager     = new LinearLayoutManager(Activity, LinearLayoutManager.Horizontal, false);
            similar.SetLayoutManager(similarManager);
            similarAdapter = new ItemAdapter(viewModel.GetCachedItems());
            similar.SetAdapter(similarAdapter);
            var similarScrollListener = new ItemAdapterScollListener(similarManager);

            similarScrollListener.LoadMore += async delegate()
            {
                if (!viewModel.CanLoadMoreSimilar())
                {
                    return;
                }
                await viewModel.GetSimilar().ConfigureAwait(false);
            };
            similar.AddOnScrollListener(similarScrollListener);

            favorite.Click += delegate
            {
                //quick and dirty, need to use canexecute on command
                if (uiBusy)
                {
                    return;
                }
                uiBusy = true;
                viewModel.ToggleFavorite();
                uiBusy = false;
            };

            play.Click += delegate
            {
                if (uiBusy)
                {
                    return;
                }
                uiBusy = true;
                viewModel.PlayVideo();
                uiBusy = false;
            };

            Task.Run(async() =>
            {
                var url    = await Locator.Get <IApiService>().GetImageUrl(viewModel.PosterPath).ConfigureAwait(false);
                var bitmap = Locator.Get <IImageService>().LoadImage(url);
                Locator.Get <IUIDispatcher>().RunOnUiThread(() =>
                {
                    poster.SetImageBitmap(bitmap);
                    bitmap.Dispose();
                    bitmap = null;
                });
            });
        }
Esempio n. 2
0
        private void InitNowPlayingRecyclerView()
        {
            nowPlayingManager = new LinearLayoutManager(Activity, LinearLayoutManager.Horizontal, false);
            nowPlaying.SetLayoutManager(nowPlayingManager);
            nowPlayingAdapter = new ItemAdapter(viewModel.GetCachedNowPlaying());
            nowPlaying.SetAdapter(nowPlayingAdapter);
            var nowPlayingScrollListener = new ItemAdapterScollListener(nowPlayingManager);

            nowPlayingScrollListener.LoadMore += async delegate()
            {
                if (!viewModel.CanLoadMoreNowPlaying())
                {
                    return;
                }
                await viewModel.GetNowPlaying().ConfigureAwait(false);
            };
            nowPlaying.AddOnScrollListener(nowPlayingScrollListener);
        }
Esempio n. 3
0
        private void InitTopRatedRecyclerView()
        {
            topRatedManager = new LinearLayoutManager(Activity, LinearLayoutManager.Horizontal, false);
            topRated.SetLayoutManager(topRatedManager);
            topRatedAdapter = new ItemAdapter(viewModel.GetCachedTopRated());
            topRated.SetAdapter(topRatedAdapter);
            var topRatedScrollListener = new ItemAdapterScollListener(topRatedManager);

            topRatedScrollListener.LoadMore += async delegate()
            {
                if (!viewModel.CanLoadMoreTopRated())
                {
                    return;
                }
                await viewModel.GetTopRated().ConfigureAwait(false);
            };
            topRated.AddOnScrollListener(topRatedScrollListener);
        }
Esempio n. 4
0
        private void InitPopularRecyclerView()
        {
            popularManager = new LinearLayoutManager(Activity, LinearLayoutManager.Horizontal, false);
            popular.SetLayoutManager(popularManager);
            popularAdapter = new ItemAdapter(viewModel.GetCachedPopular());
            popular.SetAdapter(popularAdapter);
            var popularScrollListener = new ItemAdapterScollListener(popularManager);

            popularScrollListener.LoadMore += async delegate()
            {
                if (!viewModel.CanLoadMorePopular())
                {
                    return;
                }
                await viewModel.GetPopular().ConfigureAwait(false);
            };
            popular.AddOnScrollListener(popularScrollListener);
        }