Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3752)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuUi.java

Issue 2775373002: Add a Share Icon to Tabular Context Menu (Closed)
Patch Set: Fixed more tests! Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuUi.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuUi.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuUi.java
index 79f8e70cfac23db8234e8c67bacb9d3138a2895c..544036898eaebda58d2a9ffe086c244fc99c849d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuUi.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuUi.java
@@ -4,8 +4,8 @@
package org.chromium.chrome.browser.contextmenu;
+import android.app.Activity;
import android.app.Dialog;
-import android.content.Context;
import android.content.DialogInterface;
import android.content.res.Resources;
import android.graphics.Bitmap;
@@ -43,15 +43,20 @@ public class TabularContextMenuUi implements ContextMenuUi, AdapterView.OnItemCl
private Callback<Integer> mCallback;
private int mMenuItemHeight;
private ImageView mHeaderImageView;
+ private Runnable mOnShareItemClicked;
+
+ public TabularContextMenuUi(Runnable onShareItemClicked) {
+ mOnShareItemClicked = onShareItemClicked;
+ }
@Override
- public void displayMenu(Context context, ContextMenuParams params,
+ public void displayMenu(Activity activity, ContextMenuParams params,
List<Pair<Integer, List<ContextMenuItem>>> items, Callback<Integer> onItemClicked,
final Runnable onMenuShown, final Runnable onMenuClosed) {
mCallback = onItemClicked;
- mDialog = createDialog(context, params, items);
+ mDialog = createDialog(activity, params, items);
mDialog.getWindow().setBackgroundDrawable(ApiCompatibilityUtils.getDrawable(
- context.getResources(), R.drawable.bg_find_toolbar_popup));
+ activity.getResources(), R.drawable.bg_find_toolbar_popup));
mDialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
@@ -72,23 +77,23 @@ public class TabularContextMenuUi implements ContextMenuUi, AdapterView.OnItemCl
/**
* Returns the fully complete dialog based off the params and the itemGroups.
- * @param context Used to inflate the dialog.
+ * @param activity Used to inflate the dialog.
* @param params Used to get the header title.
* @param itemGroups If there is more than one group it will create a paged view.
* @return Returns a final dialog that does not have a background can be displayed using
* {@link AlertDialog#show()}.
*/
- private Dialog createDialog(Context context, ContextMenuParams params,
+ private Dialog createDialog(Activity activity, ContextMenuParams params,
List<Pair<Integer, List<ContextMenuItem>>> itemGroups) {
- Dialog dialog = new Dialog(context);
- dialog.setContentView(createPagerView(context, params, itemGroups));
+ Dialog dialog = new Dialog(activity);
+ dialog.setContentView(createPagerView(activity, params, itemGroups));
return dialog;
}
/**
* Creates the view of a context menu. Based off the Context Type, it'll adjust the list of
* items and display only the ones that'll be on that specific group.
- * @param context Used to get the resources of an item.
+ * @param activity Used to get the resources of an item.
* @param params used to create the header text.
* @param items A set of Items to display in a context menu. Filtered based off the type.
* @param isImage Whether or not the view should have an image layout or not.
@@ -98,21 +103,21 @@ public class TabularContextMenuUi implements ContextMenuUi, AdapterView.OnItemCl
* @return Returns a filled LinearLayout with all the context menu items.
*/
@VisibleForTesting
- ViewGroup createContextMenuPageUi(Context context, ContextMenuParams params,
+ ViewGroup createContextMenuPageUi(Activity activity, ContextMenuParams params,
List<ContextMenuItem> items, boolean isImage, int maxCount) {
- ViewGroup baseLayout = (ViewGroup) LayoutInflater.from(context).inflate(
+ ViewGroup baseLayout = (ViewGroup) LayoutInflater.from(activity).inflate(
R.layout.tabular_context_menu_page, null);
ListView listView = (ListView) baseLayout.findViewById(R.id.selectable_items);
if (isImage) {
- displayImageHeader(baseLayout, params, context.getResources());
+ displayImageHeader(baseLayout, params, activity.getResources());
} else {
displayHeaderIfVisibleItems(params, baseLayout);
}
// Set the list adapter and get the height to display it appropriately in a dialog.
TabularContextMenuListAdapter listAdapter =
- new TabularContextMenuListAdapter(items, context);
+ new TabularContextMenuListAdapter(items, activity, mOnShareItemClicked);
ViewGroup.LayoutParams layoutParams = listView.getLayoutParams();
layoutParams.height = measureApproximateListViewHeight(listView, listAdapter, maxCount);
listView.setLayoutParams(layoutParams);
@@ -206,16 +211,16 @@ public class TabularContextMenuUi implements ContextMenuUi, AdapterView.OnItemCl
/**
* Creates a ViewPageAdapter based off the given list of views.
- * @param context Used to inflate the new ViewPager
+ * @param activity Used to inflate the new ViewPager
* @param params Used to get the header text.
* @param itemGroups The list of views to put into the ViewPager. The string is the title of the
* tab
* @return Returns a complete tabular context menu view.
*/
@VisibleForTesting
- View createPagerView(Context context, ContextMenuParams params,
+ View createPagerView(Activity activity, ContextMenuParams params,
List<Pair<Integer, List<ContextMenuItem>>> itemGroups) {
- View view = LayoutInflater.from(context).inflate(R.layout.tabular_context_menu, null);
+ View view = LayoutInflater.from(activity).inflate(R.layout.tabular_context_menu, null);
List<Pair<String, ViewGroup>> viewGroups = new ArrayList<>();
int maxCount = 0;
@@ -227,9 +232,9 @@ public class TabularContextMenuUi implements ContextMenuUi, AdapterView.OnItemCl
Pair<Integer, List<ContextMenuItem>> itemGroup = itemGroups.get(i);
// TODO(tedchoc): Pass the ContextMenuGroup identifier to determine if it's an image.
boolean isImageTab = itemGroup.first == R.string.contextmenu_image_title;
- viewGroups.add(new Pair<>(context.getString(itemGroup.first),
+ viewGroups.add(new Pair<>(activity.getString(itemGroup.first),
createContextMenuPageUi(
- context, params, itemGroup.second, isImageTab, maxCount)));
+ activity, params, itemGroup.second, isImageTab, maxCount)));
}
TabularContextMenuViewPager pager =
(TabularContextMenuViewPager) view.findViewById(R.id.custom_pager);

Powered by Google App Engine
This is Rietveld 408576698