public void ShowCurrentlyAiringResults( IAsyncEnumerable <OneOf <IPagedData <Media>, IAniListError> > mediaEnumerable) { var currentlyAiringView = new SideScrollingList(Activity) { LabelText = "Currently Airing" }; var adapter = new MediaRecyclerAdapter(Activity, mediaEnumerable, BaseRecyclerAdapter.RecyclerCardType.Vertical, MediaViewModel.CreateMediaViewModel) { LongClickAction = (viewModel, position) => { if (Presenter.GetIsUserAuthenticated()) { EditMediaListItemDialog.Create(Activity, Presenter, viewModel.Model, viewModel.Model.MediaListEntry, Presenter.GetLoggedInUser()?.MediaListOptions); } }, }; adapter.SetHorizontalAdapterCardWidthDip(CardWidth); currentlyAiringView.RecyclerAdapter = _currentlyAiringRecyclerAdapter = adapter; _listContainer.AddView(currentlyAiringView); }
public void ShowMediaSearchResults(IAsyncEnumerable <OneOf <IPagedData <Media>, IAniListError> > mediaEnumerable) { _recyclerView.SetAdapter(_adapter = new MediaRecyclerAdapter(this, mediaEnumerable, _cardType, MediaViewModel.CreateMediaViewModel) { LongClickAction = (viewModel, position) => { if (Presenter.GetIsUserAuthenticated()) { EditMediaListItemDialog.Create(this, Presenter, viewModel.Model, viewModel.Model.MediaListEntry, Presenter.GetAuthenticatedUser()?.MediaListOptions); } }, }); }
private View GetMediaListCollectionView() { var mediaCollectionView = LayoutInflater.Inflate(Resource.Layout.Fragment_MediaLists, null); var pagerAdapter = new FragmentlessViewPagerAdapter(); _recyclerAdapters = new List <MediaListRecyclerAdapter>(); var listOrder = GetListOrder(); var orderedLists = _collection.Lists .Where(x => listOrder.FirstOrDefault(y => y.Key == x.Name).Value) .OrderBy(x => listOrder.FindIndex(y => y.Key == x.Name)).ToList(); _currentSort = Presenter.GetMediaListSortType(_type); _currentSortDirection = Presenter.GetMediaListSortDirection(_type); if (_currentSort != MediaListSortComparer.MediaListSortType.NoSort) { _collection.Lists.ForEach(list => list.Entries.Sort(new MediaListSortComparer(_currentSort, _currentSortDirection))); } foreach (var statusList in orderedLists) { if (statusList.Entries?.Any() != true) { continue; } var adapter = new MediaListRecyclerAdapter(Activity, statusList, Presenter.GetCardType(), item => MediaListViewModel.CreateViewModel(item, _collection.User.MediaListOptions.ScoreFormat, Presenter.GetDisplayTimeUntilAiringAsCountdown(), Presenter.GetProgressDisplayType(), false, Presenter.GetShowEpisodeAddButtonForRepeatingMedia()), Presenter.GetMediaListItemViewType(), Presenter.GetHighlightPriorityItems(), Presenter.GetUseLongClickForEpisodeAdd(), async(viewModel, callback) => { if (viewModel.Model.Progress + 1 == (viewModel.Model.Media.Episodes ?? viewModel.Model.Media.Chapters)) { EditMediaListItemDialog.Create(Activity, Presenter, viewModel.Model.Media, viewModel.Model, _collection.User.MediaListOptions, true); } else { await Presenter.IncreaseMediaProgress(viewModel.Model); } callback?.Invoke(); }) { LongClickAction = (viewModel, position) => EditMediaListItemDialog.Create(Activity, Presenter, viewModel.Model.Media, viewModel.Model, _collection.User.MediaListOptions) }; adapter.SetFilter(_filterModel); _recyclerAdapters.Add(adapter); var listView = LayoutInflater.Inflate(Resource.Layout.View_SwipeRefreshList, null); listView.FindViewById <RecyclerView>(Resource.Id.List_RecyclerView).SetAdapter(adapter); pagerAdapter.AddView(listView, statusList.Name); var swipeRefreshLayout = listView.FindViewById <SwipeRefreshLayout>(Resource.Id.List_SwipeRefreshLayout); if (Presenter.GetUseSwipeToRefreshOnMediaLists()) { swipeRefreshLayout.Enabled = true; swipeRefreshLayout.Refresh += (sender, e) => { _collection = null; RecreateFragment(); if (sender is SwipeRefreshLayout refreshLayout) { refreshLayout.Refreshing = false; } }; } else { swipeRefreshLayout.Enabled = false; } } var viewPagerView = mediaCollectionView.FindViewById <ViewPager>(Resource.Id.MediaLists_ViewPager); viewPagerView.Adapter = pagerAdapter; mediaCollectionView.FindViewById <TabLayout>(Resource.Id.MediaLists_Tabs).SetupWithViewPager(viewPagerView); return(mediaCollectionView); }
public void ShowMediaListEditDialog(AniList.Models.MediaModels.MediaList mediaList) { _editItem?.SetEnabled(true); EditMediaListItemDialog.Create(this, Presenter, _media, mediaList, _mediaListOptions); }