예제 #1
0
        public void UpdateMediaListItem(AniList.Models.MediaModels.MediaList mediaList)
        {
            if (mediaList.Media?.Type == MediaType.Anime)
            {
                var instance = MediaListFragment.GetInstance(MediaListFragment.AnimeMediaListFragmentName);

                (instance as MediaListFragment)?.UpdateMediaListItem(mediaList);
            }
            else if (mediaList.Media?.Type == MediaType.Manga)
            {
                (MediaListFragment.GetInstance(MediaListFragment.MangaMediaListFragmentName) as MediaListFragment)
                ?.UpdateMediaListItem(mediaList);
            }

            var itemPosition =
                _adapter?.Items.FindIndex(x => x.Model?.Id == mediaList.Media?.Id);

            if (itemPosition == null || mediaList.Media == null)
            {
                return;
            }

            mediaList.Media.MediaListEntry = mediaList;

            _adapter.ReplaceItem(itemPosition.Value, _adapter.CreateViewModelFunc?.Invoke(mediaList.Media));
        }
예제 #2
0
        public void RemoveMediaListItem(int mediaListId)
        {
            (MediaListFragment.GetInstance(MediaListFragment.AnimeMediaListFragmentName) as MediaListFragment)
            ?.RemoveMediaListItem(mediaListId);
            (MediaListFragment.GetInstance(MediaListFragment.MangaMediaListFragmentName) as MediaListFragment)
            ?.RemoveMediaListItem(mediaListId);

            DeleteMediaListOnAdapters(mediaListId);
        }
예제 #3
0
        public void UpdateMediaListItem(AniList.Models.MediaModels.MediaList mediaList)
        {
            // this whole method is predicated on the fact that deletions from media lists are currently not possible throught he app
            // this logic will need to be updated once that functionality has been added

            _media.MediaListEntry = _mediaList = mediaList;

            if (_mediaDetailsView == null)
            {
                DisplaySnackbarMessage("Error occurred while updating media view", Snackbar.LengthLong);
                return;
            }

            var statusView = _mediaDetailsView.FindViewById <TextView>(Resource.Id.Media_ListStatus);

            statusView.Visibility = ViewStates.Visible;
            statusView.Text       = _mediaList.Status.DisplayValue;

            var mediaListSummaryView = _mediaDetailsView.FindViewById <DataRow>(Resource.Id.Media_MediaListSummary);

            if (mediaList != null && _mediaListOptions != null)
            {
                mediaListSummaryView.Visibility = ViewStates.Visible;
                mediaListSummaryView.TextOne    = $"Rating:  {mediaList.GetScoreString(_mediaListOptions.ScoreFormat)}";

                if (_media?.Type == MediaType.Anime)
                {
                    mediaListSummaryView.TextTwo =
                        mediaList.GetFormattedProgressString(_media.Type, _media.Episodes);
                }
                else if (_media?.Type == MediaType.Manga)
                {
                    mediaListSummaryView.TextTwo =
                        mediaList.GetFormattedProgressString(_media.Type, _media.Chapters);
                }
            }

            InvalidateOptionsMenu();

            if (_media.Type == MediaType.Anime)
            {
                var instance = MediaListFragment.GetInstance(MediaListFragment.AnimeMediaListFragmentName);

                (instance as MediaListFragment)?.UpdateMediaListItem(mediaList);
            }
            else if (_media.Type == MediaType.Manga)
            {
                (MediaListFragment.GetInstance(MediaListFragment.MangaMediaListFragmentName) as MediaListFragment)
                ?.UpdateMediaListItem(mediaList);
            }
        }
예제 #4
0
        public void UpdateMediaListItem(AniList.Models.MediaModels.MediaList mediaList)
        {
            if (mediaList.Media?.Type == MediaType.Anime)
            {
                var instance = MediaListFragment.GetInstance(MediaListFragment.AnimeMediaListFragmentName);

                (instance as MediaListFragment)?.UpdateMediaListItem(mediaList);
            }
            else if (mediaList.Media?.Type == MediaType.Manga)
            {
                (MediaListFragment.GetInstance(MediaListFragment.MangaMediaListFragmentName) as MediaListFragment)
                ?.UpdateMediaListItem(mediaList);
            }

            UpdateMediaListOnAdapters(mediaList);
        }
예제 #5
0
        public bool OnNavigationItemSelected(IMenuItem menuItem)
        {
            if (menuItem.ItemId == Resource.Id.Menu_Navigation_Settings)
            {
                _navClosedAction = () => SettingsActivity.StartActivity(this);
                _navigationDrawer.CloseDrawer(GravityCompat.Start);
                return(false);
            }

            _selectedItem = menuItem;
            _selectedItem.SetChecked(true);

            switch (_selectedItem.ItemId)
            {
            case Resource.Id.Menu_Navigation_Home:
                ChangeFragment(HomeFragment.GetInstance() ?? new HomeFragment());
                break;

            case Resource.Id.Menu_Navigation_Anime:
                ChangeFragment(MediaListFragment.GetInstance(MediaListFragment.AnimeMediaListFragmentName) ??
                               MediaListFragment.CreateMediaListFragment(Settings.LoggedInUser?.Id ?? 0, MediaType.Anime));
                break;

            case Resource.Id.Menu_Navigation_Manga:
                ChangeFragment(MediaListFragment.GetInstance(MediaListFragment.MangaMediaListFragmentName) ??
                               MediaListFragment.CreateMediaListFragment(Settings.LoggedInUser?.Id ?? 0, MediaType.Manga));
                break;

            case Resource.Id.Menu_Navigation_Discover:
                ChangeFragment(new DiscoverFragment());
                break;

            //case Resource.Id.Menu_Navigation_CurrentSeason:
            //    ChangeFragment(new CurrentSeasonFragment());
            //    break;
            case Resource.Id.Menu_Navigation_TorrentSearch:
                ChangeFragment(new TorrentSearchFragment());
                break;

            case Resource.Id.Menu_Navigation_Browse:
                ChangeFragment(new BrowseFragment());
                break;
            }

            return(true);
        }
예제 #6
0
        public void RemoveMediaListItem(int mediaListId)
        {
            (MediaListFragment.GetInstance(MediaListFragment.AnimeMediaListFragmentName) as MediaListFragment)
            ?.RemoveMediaListItem(mediaListId);
            (MediaListFragment.GetInstance(MediaListFragment.MangaMediaListFragmentName) as MediaListFragment)
            ?.RemoveMediaListItem(mediaListId);

            var itemPosition =
                _adapter?.Items.FindIndex(x => x.Model?.MediaListEntry?.Id == mediaListId);

            if (itemPosition == null)
            {
                return;
            }

            var item = _adapter.Items[itemPosition.Value];

            item.Model.MediaListEntry = null;

            _adapter.ReplaceItem(itemPosition.Value, _adapter.CreateViewModelFunc?.Invoke(item.Model));
        }