Chromium Code Reviews| 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); |
| } |