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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/contextmenu/PlatformContextMenuUi.java

Issue 2747453002: Split context menu display and population/handling (Closed)
Patch Set: I'm genuinely confused on why some code did not upload 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/PlatformContextMenuUi.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/PlatformContextMenuUi.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/PlatformContextMenuUi.java
new file mode 100644
index 0000000000000000000000000000000000000000..b2d849c9532d54de4ee043d8e35dcad4aad546a6
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/PlatformContextMenuUi.java
@@ -0,0 +1,55 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.contextmenu;
+
+import android.app.Activity;
+import android.content.Context;
+import android.util.Pair;
+import android.view.ContextMenu;
+import android.view.MenuItem;
+
+import org.chromium.base.Callback;
+
+import java.util.List;
+
+/**
+ * A context menu that displays the Android Standard Context Menu. Comes the Item Groups into one
+ * list displayed in the order received.
+ */
+public class PlatformContextMenuUi implements ContextMenuUi {
+ private ContextMenu mMenu;
+
+ PlatformContextMenuUi(ContextMenu menu) {
+ mMenu = menu;
+ }
+
+ @Override
+ public void displayMenu(Activity activity, ContextMenuParams params,
+ List<Pair<Integer, List<ContextMenuItem>>> itemGroups,
+ final Callback<Integer> listener) {
+ setHeaderText(activity, mMenu, ChromeContextMenuPopulator.createHeaderText(params));
+
+ MenuItem.OnMenuItemClickListener menuListener = new MenuItem.OnMenuItemClickListener() {
+ @Override
+ public boolean onMenuItemClick(MenuItem menuItem) {
+ listener.onResult(menuItem.getItemId());
+ return true;
+ }
+ };
+ for (int groupIndex = 0; groupIndex < itemGroups.size(); groupIndex++) {
+ List<ContextMenuItem> group = itemGroups.get(groupIndex).second;
+ for (int itemIndex = 0; itemIndex < group.size(); itemIndex++) {
+ ContextMenuItem item = group.get(itemIndex);
+ MenuItem menuItem = mMenu.add(0, item.menuId, 0, item.getString(activity));
+ menuItem.setOnMenuItemClickListener(menuListener);
+ }
+ }
+ }
+
+ private void setHeaderText(Context context, ContextMenu menu, String text) {
+ ContextMenuTitleView title = new ContextMenuTitleView(context, text);
+ menu.setHeaderView(title);
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698