private void HandleSetPopupMenu(CrawlerSetViewModel item, CrawlerSetHolder holder) { var menuBuilder = new MenuBuilder(Activity); menuBuilder.Add(0, 0, 0, AppResources.Generic_Delete).SetIcon(Resource.Drawable.icon_delete); if (item.IsFavourite) { menuBuilder.Add(0, 1, 0, AppResources.Item_CrawlerSet_Unfavourite).SetIcon(Resource.Drawable.icon_star_off); } else { menuBuilder.Add(0, 2, 0, AppResources.Item_CrawlerSet_Favourite).SetIcon(Resource.Drawable.icon_star); } menuBuilder.SetCallback(new MenuCallback((sender, menuItem) => { if (menuItem.ItemId == 0) { ViewModel.RemoveSet(item); } else if (menuItem.ItemId == 1) { item.IsFavourite = false; } else if (menuItem.ItemId == 2) { item.IsFavourite = true; } })); var menuPopupHelper = new MenuPopupHelper(Context, menuBuilder); menuPopupHelper.SetAnchorView(holder.MoreButton); menuPopupHelper.SetForceShowIcon(true); menuPopupHelper.Show(); }
private void DataTemplate(CrawlerSetViewModel item, CrawlerSetHolder holder, int position) { holder.Title.Text = item.BackingModel.Name; holder.IndexIcon.SetImageResource(Util.IndexToIconResource(position + 1)); holder.FavouriteIndicator.Visibility = BindingConverters.BoolToVisibility(item.IsFavourite); if (item.BackingModel.Descriptors?.Any() ?? false) { holder.EmptyNotice.Visibility = ViewStates.Gone; holder.CrawlerSummaryRecyclerView.Visibility = ViewStates.Visible; holder.CrawlerSummaryRecyclerView.SetAdapter( new ObservableRecyclerAdapter <CrawlerDescriptor, CrawlerSetSummaryEntryHolder>( item.BackingModel.Descriptors, CrawlerSummaryEntryDataTemplate, LayoutInflater, Resource.Layout.item_crawler_set_summary) { StretchContentHorizonatally = true }); } else { holder.EmptyNotice.Visibility = ViewStates.Visible; holder.CrawlerSummaryRecyclerView.Visibility = ViewStates.Gone; } holder.ClickSurface.SetOnClickCommand(ViewModel.NavigateSetCommand, item); holder.MoreButton.SetOnClickListener(new OnClickListener(view => { HandleSetPopupMenu(item, holder); })); }
public void RemoveSet(CrawlerSetViewModel set) { Sets.Remove(set); _userDataProvider.RemoveSet(set.BackingModel); }