Index: chrome/android/java/src/org/chromium/chrome/browser/browseractions/BrowserActionActivity.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browseractions/BrowserActionActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/browseractions/BrowserActionActivity.java |
index f7124b42a4bff290732f39ad69e4f8a8b3d4c724..fe19a3e154bd00c750dc99b35a60bfad0eb1a3f5 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/browseractions/BrowserActionActivity.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browseractions/BrowserActionActivity.java |
@@ -11,19 +11,23 @@ import android.net.Uri; |
import android.os.Bundle; |
import android.support.customtabs.browseractions.BrowserActionItem; |
import android.support.customtabs.browseractions.BrowserActionsIntent; |
+import android.view.Menu; |
+import android.view.View; |
import org.chromium.base.Log; |
import org.chromium.base.annotations.SuppressFBWarnings; |
import org.chromium.chrome.browser.IntentHandler; |
import org.chromium.chrome.browser.UrlConstants; |
+import org.chromium.chrome.browser.contextmenu.ContextMenuParams; |
import org.chromium.chrome.browser.init.AsyncInitializationActivity; |
import org.chromium.chrome.browser.util.IntentUtils; |
+import org.chromium.content_public.common.Referrer; |
import java.util.ArrayList; |
import java.util.List; |
/** |
- * A transparent {@link AsyncInitializationActivity} that displays the browser action context menu. |
+ * A transparent {@link AsyncInitializationActivity} that displays the Browser Actions context menu. |
*/ |
public class BrowserActionActivity extends AsyncInitializationActivity { |
private static final String TAG = "BrowserActions"; |
@@ -32,10 +36,13 @@ public class BrowserActionActivity extends AsyncInitializationActivity { |
private Uri mUri; |
private String mCreatorPackageName; |
private List<BrowserActionItem> mActions = new ArrayList<>(); |
+ private BrowserActionsContextMenuHelper mHelper; |
@Override |
protected void setContentView() { |
- openContextMenu(); |
+ View view = new View(this); |
+ setContentView(view); |
+ openContextMenu(view); |
} |
@Override |
@@ -78,10 +85,25 @@ public class BrowserActionActivity extends AsyncInitializationActivity { |
/** |
* Opens a Browser Actions context menu based on the parsed data. |
*/ |
- public void openContextMenu() { |
+ @Override |
+ public void openContextMenu(View view) { |
+ ContextMenuParams params = createContextMenuParams(); |
+ mHelper = new BrowserActionsContextMenuHelper(this, params, mActions); |
+ mHelper.displayBrowserActionsMenu(view); |
return; |
} |
+ /** |
+ * Creates a {@link ContextMenuParams} with given Uri and type. |
+ * @return The ContextMenuParams used to construct context menu. |
+ */ |
+ private ContextMenuParams createContextMenuParams() { |
+ Referrer referrer = IntentHandler.constructValidReferrerForAuthority(mCreatorPackageName); |
+ return new ContextMenuParams(mType, mUri.toString(), mUri.toString(), mUri.toString(), |
+ mUri.toString(), mUri.toString(), mUri.toString(), false /* imageWasFetchedLoFi */, |
+ referrer, false /* canSaveMedia */); |
+ } |
+ |
@Override |
protected boolean shouldDelayBrowserStartup() { |
return true; |
@@ -122,7 +144,15 @@ public class BrowserActionActivity extends AsyncInitializationActivity { |
/** |
* Callback when Browser Actions menu dialog is shown. |
*/ |
- private void onMenuShown() { |
+ public void onMenuShown() { |
startDelayedNativeInitialization(); |
} |
+ |
+ @Override |
+ public void onContextMenuClosed(Menu menu) { |
+ super.onContextMenuClosed(menu); |
+ if (mHelper != null) { |
+ mHelper.onContextMenuClosed(); |
+ } |
+ } |
} |