Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/contextmenu/SimpleContextMenuUi.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/SimpleContextMenuUi.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/SimpleContextMenuUi.java |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..efe65c28708b34bd062974d61cf76194e06dd5c8 |
| --- /dev/null |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/SimpleContextMenuUi.java |
| @@ -0,0 +1,62 @@ |
| +// 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 java.util.ArrayList; |
| +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 SimpleContextMenuUi implements ContextMenuUi { |
|
Ted C
2017/03/11 00:31:14
as mentioned offline, I think PlatformContextMenuU
JJ
2017/03/13 20:24:29
Done.
|
| + private ContextMenu mMenu; |
| + private OnMenuClickedListener mMenuClickedListener; |
| + |
| + SimpleContextMenuUi(ContextMenu menu, OnMenuClickedListener listener) { |
| + mMenu = menu; |
| + mMenuClickedListener = listener; |
| + } |
| + |
| + @Override |
| + public void displayMenu(Activity activity, ContextMenuParams params, |
| + List<Pair<Integer, List<ContextMenuItems>>> itemGroups) { |
| + setHeaderText(activity, mMenu, ChromeContextMenuPopulator.createHeaderText(params)); |
| + |
| + if (params.isFile()) return; |
|
Ted C
2017/03/11 00:31:14
yeah, since this is in two places, moving it to th
JJ
2017/03/13 23:39:32
Done.
|
| + |
| + List<ContextMenuItems> items = new ArrayList<>(); |
|
Ted C
2017/03/11 00:31:14
I wouldn't create this intermediate list. Just ha
JJ
2017/03/13 20:24:29
nested loops it is!
|
| + for (Pair<Integer, List<ContextMenuItems>> group : itemGroups) { |
|
Ted C
2017/03/11 00:31:14
same thing about using the for (int i = 0; i <...)
JJ
2017/03/13 20:24:29
Done.
|
| + items.addAll(group.second); |
| + } |
| + for (ContextMenuItems item : items) { |
| + mMenu.add(0, item.menuId, 0, item.getString(activity)); |
| + } |
| + |
| + for (int i = 0; i < mMenu.size(); i++) { |
|
Ted C
2017/03/11 00:31:14
can this just be part of the loop above?
JJ
2017/03/13 20:24:29
Done.
|
| + MenuItem menuItem = mMenu.getItem(i); |
| + if (menuItem.isVisible()) { |
|
Ted C
2017/03/11 00:31:14
they're all going to be visible at this point righ
JJ
2017/03/13 20:24:29
Yup
|
| + menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { |
| + @Override |
| + public boolean onMenuItemClick(MenuItem menuItem) { |
| + mMenuClickedListener.onItemClicked(menuItem.getItemId()); |
| + return true; |
| + } |
| + }); |
| + } |
| + } |
| + } |
| + |
| + private void setHeaderText(Context context, ContextMenu menu, String text) { |
| + ContextMenuTitleView title = new ContextMenuTitleView(context, text); |
| + menu.setHeaderView(title); |
| + } |
| +} |