1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 package org.chromium.chrome.browser.contextmenu; 6 7 import android.content.Context; 8 import android.view.ContextMenu; 9 10 /** 11 * A delegate responsible for populating context menus and processing results from 12 * {@link ContextMenuHelper}. 13 */ 14 public interface ContextMenuPopulator { 15 /** 16 * Determines whether or not a context menu should be shown for {@code params}. 17 * @param params The {@link ContextMenuParams} that represent what should be shown in the 18 * context menu. 19 * @return Whether or not a context menu should be shown. 20 */ shouldShowContextMenu(ContextMenuParams params)21 public boolean shouldShowContextMenu(ContextMenuParams params); 22 23 /** 24 * Should be used to populate {@code menu} with the correct context menu items. 25 * @param menu The menu to populate. 26 * @param context A {@link Context} instance. 27 * @param params The parameters that represent what should be shown in the context menu. 28 */ buildContextMenu(ContextMenu menu, Context context, ContextMenuParams params)29 public void buildContextMenu(ContextMenu menu, Context context, ContextMenuParams params); 30 31 /** 32 * Called when a context menu item has been selected. 33 * @param helper The {@link ContextMenuHelper} driving the menu operations. 34 * @param params The parameters that represent what is being shown in the context menu. 35 * @param itemId The id of the selected menu item. 36 * @return Whether or not the selection was handled. 37 */ onItemSelected(ContextMenuHelper helper, ContextMenuParams params, int itemId)38 public boolean onItemSelected(ContextMenuHelper helper, ContextMenuParams params, int itemId); 39 }