Example #1
0
        private Action GetNotificationClickAction()
        {
            Action retAction  = () => { };
            var    actionType = Model.GetNotificationActionType();

            if (actionType.Equals(NotificationActionType.Media))
            {
                retAction = () => MediaActivity.StartActivity(_context, Model.Media.Id);
            }
            else if (actionType.Equals(NotificationActionType.User))
            {
                retAction = () => UserActivity.StartActivity(_context, Model.User.Id);
            }
            else if (actionType.Equals(NotificationActionType.Activity))
            {
                retAction = () => _context.StartActivity(new Intent(Intent.ActionView, Android.Net.Uri.Parse($"https://anilist.co/activity/{Model.ActivityId}")));
            }
            else if (actionType.EqualsAny(NotificationActionType.Thread, NotificationActionType.Comment))
            {
                retAction = () => _context.StartActivity(new Intent(Intent.ActionView,
                                                                    Android.Net.Uri.Parse(
                                                                        $"https://anilist.co/forum/thread/{Model.Thread?.Id}{(Model.CommentId > 0 ? $"/comment/{Model.CommentId}" : "")}")));
            }

            return(retAction);
        }
Example #2
0
        private void ImageClick(object sender, EventArgs e)
        {
            var image    = sender as ImageView;
            var position = (int)image.GetTag(Resource.Id.Object_Position);
            var item     = Items[position];

            if (item.Type == ActivityType.Text)
            {
                if (item.User?.Id == null)
                {
                    return;
                }

                UserActivity.StartActivity(Context, item.User.Id);
            }
            else if (item.Type == ActivityType.Message)
            {
                if (item.Messenger?.Id == null)
                {
                    return;
                }

                UserActivity.StartActivity(Context, item.Messenger.Id);
            }
            else if (item.Type == ActivityType.AnimeList || item.Type == ActivityType.MangaList)
            {
                if (item.Media?.Id == null)
                {
                    return;
                }

                MediaActivity.StartActivity(Context, item.Media.Id);
            }
        }
        private void SetDefaultClickActions()
        {
            ClickAction = (viewModel, position) =>
                          MediaActivity.StartActivity(Context, viewModel.Model?.Node?.Id ?? 0, BaseAniDroidActivity.ObjectBrowseRequestCode);

            LongClickAction = (viewModel, position) =>
                              Context.DisplaySnackbarMessage(viewModel.Model?.Node?.Title?.UserPreferred, Snackbar.LengthLong);
        }
Example #4
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;
            }
        }