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 Button_Click(object sender, EventArgs e) { var v = sender as View; PopupMenu popup = new PopupMenu(this, v); MenuBuilder menuBuilder = new MenuBuilder(this); MenuInflater inflater = new MenuInflater(this); inflater.Inflate(Resource.Menu.PopupMenu, menuBuilder); MenuPopupHelper menuPopupHelper = new MenuPopupHelper(this, menuBuilder, v); popup.MenuItemClick += Popup_MenuItemClick; menuPopupHelper.SetForceShowIcon(true); menuPopupHelper.Show(); menuBuilder.SetCallback(this); }
private void HandleJumpToPopup(View obj) { var menuBuilder = new MenuBuilder(Activity); int i = 0; int j = ViewModel.ContainsAggregate ? 0 : 1; foreach (var tabEntry in ViewModel.FeedTabEntries) { menuBuilder.Add(0, i++, 0, tabEntry.Name).SetIcon(Util.IndexToIconResource(j++)); } menuBuilder.SetCallback(new MenuCallback((sender, menuItem) => { ViewPager.SetCurrentItem(menuItem.ItemId, true); })); var menuPopupHelper = new MenuPopupHelper(Context, menuBuilder); menuPopupHelper.SetAnchorView(JumpToButton); menuPopupHelper.SetForceShowIcon(true); menuPopupHelper.Show(); }
private void SetupRecyclerView() { var recyclerView = FindViewById <MvxAdvancedRecyclerView>(Resource.Id.recyclerView); var mvxExpandableItemAdapter = recyclerView.AdvancedRecyclerViewAdapter as MvxExpandableItemAdapter; mvxExpandableItemAdapter.ChildItemBound += (args) => { var playPauseView = args.ViewHolder.ItemView.FindViewById <PlayPauseView>(Resource.Id.play_pause_view); playPauseView.SetOnClickListener(new ActionClickListenerWrapper(x => { ViewModel.ItemTapped.Execute(args.DataContext); })); var overflowMenuView = args.ViewHolder.ItemView.FindViewById(Resource.Id.overflow_item); overflowMenuView.SetOnClickListener(new ActionClickListenerWrapper(x => { var overflowMenu = new PopupMenu(this, overflowMenuView); overflowMenu.MenuInflater.Inflate(Resource.Menu.audio_item_menu, overflowMenu.Menu); MenuPopupHelper helper = new MenuPopupHelper(this, (MenuBuilder)overflowMenu.Menu); helper.SetAnchorView(overflowMenuView); helper.SetForceShowIcon(true); helper.Show(); overflowMenu.MenuItemClick += (sender, menuArgs) => { overflowMenu.Dismiss(); }; })); }; mvxExpandableItemAdapter.ChildSwipeItemPinnedStateController.ForLeftSwipe().Pinned += (item) => { ViewModel.PinToDelete.Execute(item); }; }
private void HandlePopupMenu(View view, FeedItemViewModel viewModel) { var menuBuilder = new MenuBuilder(Activity); menuBuilder.Add(0, 0, 0, AppResources.Item_Feed_AddIgnore).SetIcon(Resource.Drawable.icon_stop); if (!viewModel.IsWatched) { menuBuilder.Add(0, 1, 0, AppResources.Item_Feed_AddWatched).SetIcon(Resource.Drawable.icon_eye); } else { menuBuilder.Add(0, 2, 0, AppResources.Item_Feed_RemoveWatched).SetIcon(Resource.Drawable.icon_eye_off); } menuBuilder.SetCallback(new MenuCallback((sender, menuItem) => { if (menuItem.ItemId == 0) { viewModel.IgnoreItemCommand.Execute(null); } else if (menuItem.ItemId == 1) { viewModel.WatchItemCommand.Execute(null); } else if (menuItem.ItemId == 2) { viewModel.UnwatchItemCommand.Execute(null); } })); var menuPopupHelper = new MenuPopupHelper(Context, menuBuilder); menuPopupHelper.SetAnchorView(view); menuPopupHelper.SetForceShowIcon(true); menuPopupHelper.Show(); }
public void OnItemLongClick(int position) { if (position == 0 && workingPath.Length != 1) { return; } var item = items[workingPath.Length == 1 ? position : (position - 1)]; var view = layoutManager.FindViewByPosition(position); var popup = new PopupMenu(Context, view); popup.MenuInflater.Inflate(Resource.Menu.file_actions, popup.Menu); if (item.IsDirectory) { popup.Menu.FindItem(Resource.Id.action_download).SetVisible(false); } if (item.IsReadOnly) { popup.Menu.FindItem(Resource.Id.action_rename).SetVisible(false); popup.Menu.FindItem(Resource.Id.action_move).SetVisible(false); popup.Menu.FindItem(Resource.Id.action_delete).SetVisible(false); } if (item.Attributes.HasFlag(FileAttributes.Device)) { popup.Menu.FindItem(Resource.Id.action_rename).SetVisible(false); popup.Menu.FindItem(Resource.Id.action_move).SetVisible(false); } popup.MenuItemClick += (o, e) => { switch (e.Item.ItemId) { case Resource.Id.action_download: { opSource = item; this.StartActivityForResult(typeof(ChooseFolderActivity), CallbackDownload); return; } case Resource.Id.action_move: { opSource = item; var intent = new Intent(Context, typeof(ChooseDestinationActivity)); var deviceRoot = workingPath.Substring(1); var nextSeparator = deviceRoot.IndexOf(Path.AltDirectorySeparatorChar); if (nextSeparator == -1) { deviceRoot = "/" + deviceRoot; } else { deviceRoot = "/" + deviceRoot.Substring(0, nextSeparator); } intent.PutExtra(ChooseDestinationActivity.ExtraRootPath, deviceRoot); StartActivityForResult(intent, CallbackMove); return; } case Resource.Id.action_rename: { Activity.ShowEditorAlert(GetString(Resource.String.new_file_name), item.Name, item.Name, GetString(Resource.String.action_save), text => { if (string.IsNullOrWhiteSpace(text)) { Activity.ShowAlert(GetString(Resource.String.bad_file_name), null); return; } if (text == item.Name) { return; } #pragma warning disable 0618 var progress = new Android.App.ProgressDialog(Context); progress.SetCancelable(false); progress.SetMessage(GetString(Resource.String.renaming)); progress.Show(); #pragma warning restore 0618 Task.Run(async() => { try { var path = Path.Combine(workingPath, item.Name); await fileSystem.RenameAsync(path, text).ConfigureAwait(false); Activity.RunOnUiThread(() => { progress.Dismiss(); RefreshDirectory(this, EventArgs.Empty); }); } catch (HttpRequestException exception) { Activity.RunOnUiThread(() => { progress.Dismiss(); Activity.ShowAlert(GetString(Resource.String.error_remote), exception.Message); }); } catch (Exception exception) { Activity.RunOnUiThread(() => { progress.Dismiss(); Activity.ShowAlert(GetString(Resource.String.error_rename_file), exception.GetType().Name); }); } }); }, GetString(Resource.String.action_cancel), null); return; } case Resource.Id.action_delete: { Activity.ShowAlert(GetString(Resource.String.delete_permanently), GetString(Resource.String.delete_all_contents, item.Name), GetString(Resource.String.action_cancel), null, GetString(Resource.String.action_delete), () => { #pragma warning disable 0618 var progress = new Android.App.ProgressDialog(Context); progress.SetCancelable(false); progress.SetMessage(GetString(Resource.String.deleting)); progress.Show(); #pragma warning restore 0618 Task.Run(async() => { try { var path = Path.Combine(workingPath, item.Name); if (item.IsDirectory) { path += Path.AltDirectorySeparatorChar; } await fileSystem.DeleteAsync(path).ConfigureAwait(false); Activity.RunOnUiThread(() => { progress.Dismiss(); RefreshDirectory(this, EventArgs.Empty); }); } catch (HttpRequestException exception) { Activity.RunOnUiThread(() => { progress.Dismiss(); Activity.ShowAlert(GetString(Resource.String.error_remote), exception.Message); }); } catch (Exception exception) { Activity.RunOnUiThread(() => { progress.Dismiss(); Activity.ShowAlert(GetString(Resource.String.error_delete_file), exception.GetType().Name); }); } }); }); return; } } }; if (popup.Menu.Size() != 0) { var helper = new MenuPopupHelper(Context, (MenuBuilder)popup.Menu, view); helper.SetForceShowIcon(true); helper.Show(); } }
private void Item_LongClick(object sender, EventArgs e) { _popup.Show(); }
private void More_Click(object sender, EventArgs e) { _popup.Show(); }