Index: content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java |
diff --git a/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java b/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java |
index 21dcbd2e4b5cae4299f967b284192fe3a6e3c668..374e6802a924812a3af1480e4e5dfe9a20073d60 100644 |
--- a/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java |
+++ b/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java |
@@ -10,7 +10,6 @@ import android.content.ClipboardManager; |
import android.content.Context; |
import android.content.Intent; |
import android.content.pm.PackageManager; |
-import android.content.res.TypedArray; |
import android.provider.Browser; |
import android.text.TextUtils; |
import android.view.ActionMode; |
@@ -24,28 +23,6 @@ import org.chromium.content.R; |
* non-editable cases. |
*/ |
public class SelectActionModeCallback implements ActionMode.Callback { |
- private static final int SELECT_ALL_ATTR_INDEX = 0; |
- private static final int CUT_ATTR_INDEX = 1; |
- private static final int COPY_ATTR_INDEX = 2; |
- private static final int PASTE_ATTR_INDEX = 3; |
- private static final int SHARE_ATTR_INDEX = 4; |
- private static final int WEB_SEARCH_ATTR_INDEX = 5; |
- private static final int[] ACTION_MODE_ATTRS = { |
- android.R.attr.actionModeSelectAllDrawable, |
- android.R.attr.actionModeCutDrawable, |
- android.R.attr.actionModeCopyDrawable, |
- android.R.attr.actionModePasteDrawable, |
- R.attr.action_mode_share_drawable, |
- R.attr.action_mode_web_search_drawable |
- }; |
- |
- private static final int ID_SELECTALL = 0; |
- private static final int ID_COPY = 1; |
- private static final int ID_SHARE = 2; |
- private static final int ID_SEARCH = 3; |
- private static final int ID_CUT = 4; |
- private static final int ID_PASTE = 5; |
- |
/** |
* An interface to retrieve information about the current selection, and also to perform |
* actions based on the selection or when the action bar is dismissed. |
@@ -140,82 +117,45 @@ public class SelectActionModeCallback implements ActionMode.Callback { |
} |
private void createActionMenu(ActionMode mode, Menu menu) { |
- TypedArray styledAttributes = getContext().obtainStyledAttributes( |
- R.style.ContentActionBar, ACTION_MODE_ATTRS); |
- |
- menu.add(Menu.NONE, ID_SELECTALL, Menu.NONE, android.R.string.selectAll). |
- setAlphabeticShortcut('a'). |
- setIcon(styledAttributes.getResourceId(SELECT_ALL_ATTR_INDEX, 0)). |
- setShowAsAction( |
- MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); |
- |
- if (mEditable) { |
- menu.add(Menu.NONE, ID_CUT, Menu.NONE, android.R.string.cut). |
- setIcon(styledAttributes.getResourceId(CUT_ATTR_INDEX, 0)). |
- setAlphabeticShortcut('x'). |
- setShowAsAction( |
- MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); |
+ mode.getMenuInflater().inflate(R.menu.select_action_menu, menu); |
+ if (!mEditable || !canPaste()) { |
+ menu.removeItem(R.id.select_action_menu_paste); |
} |
- menu.add(Menu.NONE, ID_COPY, Menu.NONE, android.R.string.copy). |
- setIcon(styledAttributes.getResourceId(COPY_ATTR_INDEX, 0)). |
- setAlphabeticShortcut('c'). |
- setShowAsAction( |
- MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); |
- |
- if (mEditable && canPaste()) { |
- menu.add(Menu.NONE, ID_PASTE, Menu.NONE, android.R.string.paste). |
- setIcon(styledAttributes.getResourceId(PASTE_ATTR_INDEX, 0)). |
- setAlphabeticShortcut('v'). |
- setShowAsAction( |
- MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); |
+ if (!mEditable) { |
+ menu.removeItem(R.id.select_action_menu_cut); |
} |
- if (!mEditable) { |
- if (mActionHandler.isShareAvailable()) { |
- menu.add(Menu.NONE, ID_SHARE, Menu.NONE, R.string.actionbar_share). |
- setIcon(styledAttributes.getResourceId(SHARE_ATTR_INDEX, 0)). |
- setShowAsAction( |
- MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); |
- } |
- |
- if (!mIncognito && mActionHandler.isWebSearchAvailable()) { |
- menu.add(Menu.NONE, ID_SEARCH, Menu.NONE, R.string.actionbar_web_search). |
- setIcon(styledAttributes.getResourceId(WEB_SEARCH_ATTR_INDEX, 0)). |
- setShowAsAction( |
- MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); |
- } |
+ if (mEditable || !mActionHandler.isShareAvailable()) { |
+ menu.removeItem(R.id.select_action_menu_share); |
} |
- styledAttributes.recycle(); |
+ if (mEditable || mIncognito || !mActionHandler.isWebSearchAvailable()) { |
+ menu.removeItem(R.id.select_action_menu_web_search); |
+ } |
} |
@Override |
public boolean onActionItemClicked(ActionMode mode, MenuItem item) { |
- switch(item.getItemId()) { |
- case ID_SELECTALL: |
- mActionHandler.selectAll(); |
- break; |
- case ID_CUT: |
- mActionHandler.cut(); |
- break; |
- case ID_COPY: |
- mActionHandler.copy(); |
- mode.finish(); |
- break; |
- case ID_PASTE: |
- mActionHandler.paste(); |
- break; |
- case ID_SHARE: |
- mActionHandler.share(); |
- mode.finish(); |
- break; |
- case ID_SEARCH: |
- mActionHandler.search(); |
- mode.finish(); |
- break; |
- default: |
- return false; |
+ int id = item.getItemId(); |
+ |
+ if (id == R.id.select_action_menu_select_all) { |
+ mActionHandler.selectAll(); |
+ } else if (id == R.id.select_action_menu_cut) { |
+ mActionHandler.cut(); |
+ } else if (id == R.id.select_action_menu_copy) { |
+ mActionHandler.copy(); |
+ mode.finish(); |
+ } else if (id == R.id.select_action_menu_paste) { |
+ mActionHandler.paste(); |
+ } else if (id == R.id.select_action_menu_share) { |
+ mActionHandler.share(); |
+ mode.finish(); |
+ } else if (id == R.id.select_action_menu_web_search) { |
+ mActionHandler.search(); |
+ mode.finish(); |
+ } else { |
+ return false; |
} |
return true; |
} |