diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java
index dce54329da8e8..088065d2f77df 100644
--- a/core/java/android/widget/Editor.java
+++ b/core/java/android/widget/Editor.java
@@ -3193,47 +3193,66 @@ public class Editor {
menuItemOrderPasteAsPlainText = 11;
}
+ final TypedArray a = mTextView.getContext().obtainStyledAttributes(new int[] {
+ // TODO: Make Undo/Redo be public attribute.
+ com.android.internal.R.attr.actionModeUndoDrawable,
+ com.android.internal.R.attr.actionModeRedoDrawable,
+ android.R.attr.actionModeCutDrawable,
+ android.R.attr.actionModeCopyDrawable,
+ android.R.attr.actionModePasteDrawable,
+ android.R.attr.actionModeSelectAllDrawable,
+ android.R.attr.actionModeShareDrawable,
+ });
+
menu.add(CONTEXT_MENU_GROUP_UNDO_REDO, TextView.ID_UNDO, menuItemOrderUndo,
com.android.internal.R.string.undo)
.setAlphabeticShortcut('z')
.setOnMenuItemClickListener(mOnContextMenuItemClickListener)
+ .setIcon(a.getDrawable(0))
.setEnabled(mTextView.canUndo());
menu.add(CONTEXT_MENU_GROUP_UNDO_REDO, TextView.ID_REDO, menuItemOrderRedo,
com.android.internal.R.string.redo)
.setAlphabeticShortcut('z', KeyEvent.META_CTRL_ON | KeyEvent.META_SHIFT_ON)
.setOnMenuItemClickListener(mOnContextMenuItemClickListener)
+ .setIcon(a.getDrawable(1))
.setEnabled(mTextView.canRedo());
menu.add(CONTEXT_MENU_GROUP_CLIPBOARD, TextView.ID_CUT, menuItemOrderCut,
com.android.internal.R.string.cut)
.setAlphabeticShortcut('x')
.setOnMenuItemClickListener(mOnContextMenuItemClickListener)
+ .setIcon(a.getDrawable(2))
.setEnabled(mTextView.canCut());
menu.add(CONTEXT_MENU_GROUP_CLIPBOARD, TextView.ID_COPY, menuItemOrderCopy,
com.android.internal.R.string.copy)
.setAlphabeticShortcut('c')
.setOnMenuItemClickListener(mOnContextMenuItemClickListener)
+ .setIcon(a.getDrawable(3))
.setEnabled(mTextView.canCopy());
menu.add(CONTEXT_MENU_GROUP_CLIPBOARD, TextView.ID_PASTE, menuItemOrderPaste,
com.android.internal.R.string.paste)
.setAlphabeticShortcut('v')
.setEnabled(mTextView.canPaste())
+ .setIcon(a.getDrawable(4))
.setOnMenuItemClickListener(mOnContextMenuItemClickListener);
menu.add(CONTEXT_MENU_GROUP_CLIPBOARD, TextView.ID_PASTE_AS_PLAIN_TEXT,
menuItemOrderPasteAsPlainText,
com.android.internal.R.string.paste_as_plain_text)
.setAlphabeticShortcut('v', KeyEvent.META_CTRL_ON | KeyEvent.META_SHIFT_ON)
.setEnabled(mTextView.canPasteAsPlainText())
+ .setIcon(a.getDrawable(4))
.setOnMenuItemClickListener(mOnContextMenuItemClickListener);
menu.add(CONTEXT_MENU_GROUP_CLIPBOARD, TextView.ID_SELECT_ALL,
menuItemOrderSelectAll, com.android.internal.R.string.selectAll)
.setAlphabeticShortcut('a')
.setEnabled(mTextView.canSelectAllText())
+ .setIcon(a.getDrawable(5))
.setOnMenuItemClickListener(mOnContextMenuItemClickListener);
menu.add(CONTEXT_MENU_GROUP_MISC, TextView.ID_SHARE, menuItemOrderShare,
com.android.internal.R.string.share)
.setEnabled(mTextView.canShare())
+ .setIcon(a.getDrawable(6))
.setOnMenuItemClickListener(mOnContextMenuItemClickListener);
menu.add(CONTEXT_MENU_GROUP_MISC, TextView.ID_AUTOFILL, menuItemOrderAutofill,
android.R.string.autofill)
@@ -3241,6 +3260,7 @@ public class Editor {
.setOnMenuItemClickListener(mOnContextMenuItemClickListener);
mPreserveSelection = true;
+ a.recycle();
// No-op for the old context menu because it doesn't have icons.
adjustIconSpacing(menu);
diff --git a/core/res/res/drawable/ic_menu_redo_material.xml b/core/res/res/drawable/ic_menu_redo_material.xml
new file mode 100644
index 0000000000000..28e6733b77c14
--- /dev/null
+++ b/core/res/res/drawable/ic_menu_redo_material.xml
@@ -0,0 +1,25 @@
+
+
+
+
diff --git a/core/res/res/drawable/ic_menu_undo_material.xml b/core/res/res/drawable/ic_menu_undo_material.xml
new file mode 100644
index 0000000000000..8e05a52d791e9
--- /dev/null
+++ b/core/res/res/drawable/ic_menu_undo_material.xml
@@ -0,0 +1,25 @@
+
+
+
+
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 56d25d780ba02..602f486fef65a 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -918,6 +918,10 @@
+
+
+
+
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 67fe42ff84a0c..59499ecf721d6 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -5036,4 +5036,6 @@
+
+
diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml
index e96de582022a8..bdbf96b97c1ec 100644
--- a/core/res/res/values/themes.xml
+++ b/core/res/res/values/themes.xml
@@ -358,6 +358,8 @@ please see themes_device_defaults.xml.
- @drawable/ic_menu_share_holo_dark
- @drawable/ic_menu_find_holo_dark
- @drawable/ic_menu_search
+ - @drawable/ic_menu_undo_material
+ - @drawable/ic_menu_redo_material
- @style/Widget.ActionBar.TabView
- @style/Widget.ActionBar.TabBar
- @style/Widget.ActionBar.TabText