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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuListAdapter.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/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;
}
}

Powered by Google App Engine
This is Rietveld 408576698