Index: chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuHelper.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuHelper.java |
index add1beea26b99973b26161438dc23c41689de6b0..95c47d8775ed819f3e3912cbef5d539021888d12 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuHelper.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuHelper.java |
@@ -5,6 +5,8 @@ |
package org.chromium.chrome.browser.contextmenu; |
import android.app.Activity; |
+import android.graphics.Bitmap; |
+import android.graphics.BitmapFactory; |
import android.util.Pair; |
import android.view.ContextMenu; |
import android.view.ContextMenu.ContextMenuInfo; |
@@ -36,6 +38,11 @@ public class ContextMenuHelper implements OnCreateContextMenuListener { |
private Callback<Integer> mCallback; |
private Runnable mOnMenuShown; |
private Runnable mOnMenuClosed; |
+ private OnThumbnailReceivedListener mOnThumbnailReceivedListener; |
+ |
+ interface OnThumbnailReceivedListener { |
Theresa
2017/03/28 17:23:08
nit: This should probably have a JavaDoc too
JJ
2017/03/28 23:19:20
Done.
|
+ void onThumbnailReceived(Bitmap bitmap); |
+ } |
private ContextMenuHelper(long nativeContextMenuHelper) { |
mNativeContextMenuHelper = nativeContextMenuHelper; |
@@ -107,7 +114,7 @@ public class ContextMenuHelper implements OnCreateContextMenuListener { |
List<Pair<Integer, List<ContextMenuItem>>> items = |
mPopulator.buildContextMenu(null, mActivity, mCurrentContextMenuParams); |
- ContextMenuUi menuUi = new TabularContextMenuUi(); |
+ ContextMenuUi menuUi = new TabularContextMenuUi(this); |
menuUi.displayMenu(mActivity, mCurrentContextMenuParams, items, mCallback, mOnMenuShown, |
mOnMenuClosed); |
return; |
@@ -163,6 +170,22 @@ public class ContextMenuHelper implements OnCreateContextMenuListener { |
ShareHelper.shareImage(activity, jpegImageData); |
} |
+ /** |
+ * This gets the thumbnail of the current image that triggered the context menu. |
Theresa
2017/03/28 17:23:08
nit: s/This gets/Gets
JJ
2017/03/28 23:19:20
Done.
|
+ */ |
+ public void getThumbnail() { |
+ if (mNativeContextMenuHelper == 0) return; |
+ nativeRetrieveHeaderThumbnail(mNativeContextMenuHelper); |
+ } |
+ |
+ @CalledByNative |
+ private void onHeaderThumbnailReceived(WindowAndroid windowAndroid, byte[] jpegImageData) { |
+ Bitmap bitmap = BitmapFactory.decodeByteArray(jpegImageData, 0, jpegImageData.length); |
+ if (mOnThumbnailReceivedListener != null) { |
+ mOnThumbnailReceivedListener.onThumbnailReceived(bitmap); |
+ } |
+ } |
+ |
@Override |
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { |
List<Pair<Integer, List<ContextMenuItem>>> items = |
@@ -172,6 +195,10 @@ public class ContextMenuHelper implements OnCreateContextMenuListener { |
mOnMenuClosed); |
} |
+ public void setOnThumbnailReceivedListener(OnThumbnailReceivedListener listener) { |
Theresa
2017/03/28 17:23:08
nit: JavaDoc here too
JJ
2017/03/28 23:19:20
Done.
|
+ mOnThumbnailReceivedListener = listener; |
+ } |
+ |
/** |
* @return The {@link ContextMenuPopulator} responsible for populating the context menu. |
*/ |
@@ -185,4 +212,5 @@ public class ContextMenuHelper implements OnCreateContextMenuListener { |
private native void nativeSearchForImage(long nativeContextMenuHelper); |
private native void nativeShareImage(long nativeContextMenuHelper); |
private native void nativeOnContextMenuClosed(long nativeContextMenuHelper); |
+ private native void nativeRetrieveHeaderThumbnail(long nativeContextMenuHelper); |
} |