| Index: chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuListAdapter.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuListAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuListAdapter.java
|
| index 3832dbbb9e476c4c4c16cbb3ea92731b3da31e9a..ef2f4045d44f2e15830f6edfdb156473718425eb 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuListAdapter.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuListAdapter.java
|
| @@ -4,8 +4,9 @@
|
|
|
| package org.chromium.chrome.browser.contextmenu;
|
|
|
| -import android.content.Context;
|
| +import android.app.Activity;
|
| import android.graphics.drawable.Drawable;
|
| +import android.util.Pair;
|
| import android.view.LayoutInflater;
|
| import android.view.View;
|
| import android.view.ViewGroup;
|
| @@ -14,6 +15,7 @@ import android.widget.ImageView;
|
| import android.widget.TextView;
|
|
|
| import org.chromium.chrome.R;
|
| +import org.chromium.chrome.browser.share.ShareHelper;
|
|
|
| import java.util.List;
|
|
|
| @@ -23,16 +25,19 @@ import java.util.List;
|
| */
|
| class TabularContextMenuListAdapter extends BaseAdapter {
|
| private final List<ContextMenuItem> mMenuItems;
|
| - private final Context mContext;
|
| + private final Activity mActivity;
|
| + private final Runnable mOnShareItemClicked;
|
|
|
| /**
|
| * Adapter for the tabular context menu UI
|
| * @param menuItems The list of items to display in the view.
|
| - * @param context Used to inflate the layout.
|
| + * @param activity Used to inflate the layout.
|
| */
|
| - TabularContextMenuListAdapter(List<ContextMenuItem> menuItems, Context context) {
|
| + TabularContextMenuListAdapter(
|
| + List<ContextMenuItem> menuItems, Activity activity, Runnable onShareItemClicked) {
|
| mMenuItems = menuItems;
|
| - mContext = context;
|
| + mActivity = activity;
|
| + mOnShareItemClicked = onShareItemClicked;
|
| }
|
|
|
| @Override
|
| @@ -56,27 +61,50 @@ class TabularContextMenuListAdapter extends BaseAdapter {
|
| ViewHolderItem viewHolder;
|
|
|
| if (convertView == null) {
|
| - LayoutInflater inflater = LayoutInflater.from(mContext);
|
| + LayoutInflater inflater = LayoutInflater.from(mActivity);
|
| convertView = inflater.inflate(R.layout.tabular_context_menu_row, null);
|
|
|
| viewHolder = new ViewHolderItem();
|
| viewHolder.mIcon = (ImageView) convertView.findViewById(R.id.context_menu_icon);
|
| viewHolder.mText = (TextView) convertView.findViewById(R.id.context_text);
|
| + viewHolder.mShareIcon =
|
| + (ImageView) convertView.findViewById(R.id.context_menu_share_icon);
|
|
|
| convertView.setTag(viewHolder);
|
| } else {
|
| viewHolder = (ViewHolderItem) convertView.getTag();
|
| }
|
|
|
| - viewHolder.mText.setText(menuItem.getString(mContext));
|
| - Drawable icon = menuItem.getDrawableAndDescription(mContext);
|
| + viewHolder.mText.setText(menuItem.getString(mActivity));
|
| + Drawable icon = menuItem.getDrawableAndDescription(mActivity);
|
| viewHolder.mIcon.setImageDrawable(icon);
|
| viewHolder.mIcon.setVisibility(icon != null ? View.VISIBLE : View.INVISIBLE);
|
| +
|
| + if (menuItem == ContextMenuItem.SHARE_IMAGE) {
|
| + final Pair<Drawable, CharSequence> shareInfo =
|
| + ShareHelper.getShareableIconAndName(mActivity);
|
| + if (shareInfo.first != null) {
|
| + viewHolder.mShareIcon.setImageDrawable(shareInfo.first);
|
| + viewHolder.mShareIcon.setVisibility(View.VISIBLE);
|
| + viewHolder.mShareIcon.setContentDescription(mActivity.getString(
|
| + R.string.accessibility_menu_share_via, shareInfo.second));
|
| + viewHolder.mShareIcon.setOnClickListener(new View.OnClickListener() {
|
| + @Override
|
| + public void onClick(View view) {
|
| + mOnShareItemClicked.run();
|
| + }
|
| + });
|
| + }
|
| + } else {
|
| + viewHolder.mShareIcon.setVisibility(View.GONE);
|
| + }
|
| +
|
| return convertView;
|
| }
|
|
|
| private static class ViewHolderItem {
|
| ImageView mIcon;
|
| TextView mText;
|
| + ImageView mShareIcon;
|
| }
|
| }
|
|
|