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); }
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); }
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; } }