コード例 #1
0
        public MediaListRecyclerAdapter(BaseAniDroidActivity context, MediaListGroup mediaListGroup,
                                        RecyclerCardType cardType, Func <AniList.Models.MediaModels.MediaList, MediaListViewModel> createViewModelFunc, MediaListItemViewType viewType, bool highlightPriorityItems, bool useLongClickForEpisodeAdd, Action <MediaListViewModel, Action> episodeAddAction = null) : base(context,
                                                                                                                                                                                                                                                                                                                         mediaListGroup.Entries.Select(createViewModelFunc).ToList(), cardType)
        {
            CreateViewModelFunc     = createViewModelFunc;
            _isCustomList           = mediaListGroup.IsCustomList;
            _listName               = mediaListGroup.Name;
            _listStatus             = mediaListGroup.Status;
            _unfilteredItems        = Items;
            _viewType               = viewType;
            _highlightPriorityItems = highlightPriorityItems;

            _priorityBackgroundColor =
                ColorStateList.ValueOf(new Color(Context.GetThemedColor(Resource.Attribute.ListItem_Priority)));
            _upToDateTitleColor =
                ColorStateList.ValueOf(new Color(Context.GetThemedColor(Resource.Attribute.ListItem_UpToDate)));
            _slightlyBehindTitleColor =
                ColorStateList.ValueOf(new Color(Context.GetThemedColor(Resource.Attribute.ListItem_SlightlyBehind)));
            _behindTitleColor =
                ColorStateList.ValueOf(new Color(Context.GetThemedColor(Resource.Attribute.ListItem_Behind)));
            _veryBehindTitleColor =
                ColorStateList.ValueOf(new Color(Context.GetThemedColor(Resource.Attribute.ListItem_VeryBehind)));

            ClickAction = (viewModel, position) =>
                          MediaActivity.StartActivity(Context, viewModel.Model.Media?.Id ?? 0, BaseAniDroidActivity.ObjectBrowseRequestCode);

            // leave this as the non-edit action so we can leave the presenter out
            LongClickAction = (viewModel, position) =>
                              Context.DisplaySnackbarMessage(viewModel.Model.Media?.Title?.UserPreferred, Snackbar.LengthLong);

            if (episodeAddAction != null)
            {
                if (useLongClickForEpisodeAdd)
                {
                    ButtonLongClickAction = (viewModel, pos, callback) =>
                                            episodeAddAction.Invoke(viewModel as MediaListViewModel, callback);
                    ButtonClickAction = (viewModel, pos, callback) => Toast.MakeText(Context.ApplicationContext,
                                                                                     Context.GetString(Resource.String.MediaList_LongPressEnabledAlert), ToastLength.Short).Show();
                }
                else
                {
                    ButtonClickAction = (viewModel, pos, callback) =>
                                        episodeAddAction.Invoke(viewModel as MediaListViewModel, callback);
                }
            }

            if (_viewType != MediaListItemViewType.Normal)
            {
                CardType = RecyclerCardType.Custom;
                CustomCardUseItemDecoration = true;
            }
        }
コード例 #2
0
 /// <summary>
 /// Filter by the watching/reading status.
 /// </summary>
 public GraphQueryArgument <MediaListStatus> StatusQueryArgument(MediaListStatus value)
 {
     return(Status.GetQueryArgumentAndSetValue(value));
 }