Loading api/current.xml +11 −0 Original line number Diff line number Diff line Loading @@ -198458,6 +198458,17 @@ visibility="public" > </field> <field name="SHOW_AS_ACTION_WITH_TEXT" type="int" transient="false" volatile="false" value="4" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> </interface> <interface name="MenuItem.OnMenuItemClickListener" abstract="true" core/java/android/view/MenuItem.java +6 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,12 @@ public interface MenuItem { */ public static final int SHOW_AS_ACTION_ALWAYS = 2; /** * When this item is in the action bar, always show it with a text label even if * it also has an icon specified. */ public static final int SHOW_AS_ACTION_WITH_TEXT = 4; /** * Interface definition for a callback to be invoked when a menu item is * clicked. Loading core/java/android/widget/TextView.java +12 −4 Original line number Diff line number Diff line Loading @@ -7708,28 +7708,36 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener if (canSelectText()) { menu.add(0, ID_SELECT_ALL, 0, com.android.internal.R.string.selectAll). setIcon(com.android.internal.R.drawable.ic_menu_select_all). setAlphabeticShortcut('a'); setAlphabeticShortcut('a'). setShowAsAction( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); atLeastOne = true; } if (canCut()) { menu.add(0, ID_CUT, 0, com.android.internal.R.string.cut). setIcon(styledAttributes.getResourceId(R.styleable.Theme_actionModeCutDrawable, 0)). setAlphabeticShortcut('x'); setAlphabeticShortcut('x'). setShowAsAction( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); atLeastOne = true; } if (canCopy()) { menu.add(0, ID_COPY, 0, com.android.internal.R.string.copy). setIcon(styledAttributes.getResourceId(R.styleable.Theme_actionModeCopyDrawable, 0)). setAlphabeticShortcut('c'); setAlphabeticShortcut('c'). setShowAsAction( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); atLeastOne = true; } if (canPaste()) { menu.add(0, ID_PASTE, 0, com.android.internal.R.string.paste). setIcon(styledAttributes.getResourceId(R.styleable.Theme_actionModePasteDrawable, 0)). setAlphabeticShortcut('v'); setAlphabeticShortcut('v'). setShowAsAction( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); atLeastOne = true; } Loading core/java/com/android/internal/view/menu/ActionMenuItemView.java +3 −5 Original line number Diff line number Diff line Loading @@ -21,13 +21,13 @@ import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.View; import android.widget.Button; import android.widget.FrameLayout; import android.widget.ImageButton; import android.widget.LinearLayout; /** * @hide */ public class ActionMenuItemView extends FrameLayout public class ActionMenuItemView extends LinearLayout implements MenuView.ItemView, View.OnClickListener { private static final String TAG = "ActionMenuItemView"; Loading Loading @@ -65,8 +65,6 @@ public class ActionMenuItemView extends FrameLayout public void initialize(MenuItemImpl itemData, int menuType) { mItemData = itemData; setClickable(true); setFocusable(true); setIcon(itemData.getIcon()); setTitle(itemData.getTitle()); // Title only takes effect if there is no icon setId(itemData.getItemId()); Loading Loading @@ -128,7 +126,7 @@ public class ActionMenuItemView extends FrameLayout // populate accessibility description with title setContentDescription(title); if (mImageButton.getDrawable() == null) { if (mImageButton.getDrawable() == null || mItemData.showsTextAsAction()) { mTextButton.setText(mTitle); mTextButton.setVisibility(VISIBLE); } Loading core/java/com/android/internal/view/menu/MenuItemImpl.java +22 −2 Original line number Diff line number Diff line Loading @@ -38,6 +38,10 @@ import com.android.internal.view.menu.MenuView.ItemView; public final class MenuItemImpl implements MenuItem { private static final String TAG = "MenuItemImpl"; private static final int SHOW_AS_ACTION_MASK = SHOW_AS_ACTION_NEVER | SHOW_AS_ACTION_IF_ROOM | SHOW_AS_ACTION_ALWAYS; private final int mId; private final int mGroup; private final int mCategoryOrder; Loading Loading @@ -649,11 +653,11 @@ public final class MenuItemImpl implements MenuItem { } public boolean requestsActionButton() { return mShowAsAction == SHOW_AS_ACTION_IF_ROOM; return (mShowAsAction & SHOW_AS_ACTION_IF_ROOM) == SHOW_AS_ACTION_IF_ROOM; } public boolean requiresActionButton() { return mShowAsAction == SHOW_AS_ACTION_ALWAYS; return (mShowAsAction & SHOW_AS_ACTION_ALWAYS) == SHOW_AS_ACTION_ALWAYS; } public void setIsActionButton(boolean isActionButton) { Loading @@ -664,7 +668,23 @@ public final class MenuItemImpl implements MenuItem { } } public boolean showsTextAsAction() { return (mShowAsAction & SHOW_AS_ACTION_WITH_TEXT) == SHOW_AS_ACTION_WITH_TEXT; } public void setShowAsAction(int actionEnum) { switch (actionEnum & SHOW_AS_ACTION_MASK) { case SHOW_AS_ACTION_ALWAYS: case SHOW_AS_ACTION_IF_ROOM: case SHOW_AS_ACTION_NEVER: // Looks good! break; default: // Mutually exclusive options selected! throw new IllegalArgumentException("SHOW_AS_ACTION_ALWAYS, SHOW_AS_ACTION_IF_ROOM," + " and SHOW_AS_ACTION_NEVER are mutually exclusive."); } mShowAsAction = actionEnum; mMenu.onItemActionRequestChanged(this); } Loading Loading
api/current.xml +11 −0 Original line number Diff line number Diff line Loading @@ -198458,6 +198458,17 @@ visibility="public" > </field> <field name="SHOW_AS_ACTION_WITH_TEXT" type="int" transient="false" volatile="false" value="4" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> </interface> <interface name="MenuItem.OnMenuItemClickListener" abstract="true"
core/java/android/view/MenuItem.java +6 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,12 @@ public interface MenuItem { */ public static final int SHOW_AS_ACTION_ALWAYS = 2; /** * When this item is in the action bar, always show it with a text label even if * it also has an icon specified. */ public static final int SHOW_AS_ACTION_WITH_TEXT = 4; /** * Interface definition for a callback to be invoked when a menu item is * clicked. Loading
core/java/android/widget/TextView.java +12 −4 Original line number Diff line number Diff line Loading @@ -7708,28 +7708,36 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener if (canSelectText()) { menu.add(0, ID_SELECT_ALL, 0, com.android.internal.R.string.selectAll). setIcon(com.android.internal.R.drawable.ic_menu_select_all). setAlphabeticShortcut('a'); setAlphabeticShortcut('a'). setShowAsAction( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); atLeastOne = true; } if (canCut()) { menu.add(0, ID_CUT, 0, com.android.internal.R.string.cut). setIcon(styledAttributes.getResourceId(R.styleable.Theme_actionModeCutDrawable, 0)). setAlphabeticShortcut('x'); setAlphabeticShortcut('x'). setShowAsAction( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); atLeastOne = true; } if (canCopy()) { menu.add(0, ID_COPY, 0, com.android.internal.R.string.copy). setIcon(styledAttributes.getResourceId(R.styleable.Theme_actionModeCopyDrawable, 0)). setAlphabeticShortcut('c'); setAlphabeticShortcut('c'). setShowAsAction( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); atLeastOne = true; } if (canPaste()) { menu.add(0, ID_PASTE, 0, com.android.internal.R.string.paste). setIcon(styledAttributes.getResourceId(R.styleable.Theme_actionModePasteDrawable, 0)). setAlphabeticShortcut('v'); setAlphabeticShortcut('v'). setShowAsAction( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); atLeastOne = true; } Loading
core/java/com/android/internal/view/menu/ActionMenuItemView.java +3 −5 Original line number Diff line number Diff line Loading @@ -21,13 +21,13 @@ import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.View; import android.widget.Button; import android.widget.FrameLayout; import android.widget.ImageButton; import android.widget.LinearLayout; /** * @hide */ public class ActionMenuItemView extends FrameLayout public class ActionMenuItemView extends LinearLayout implements MenuView.ItemView, View.OnClickListener { private static final String TAG = "ActionMenuItemView"; Loading Loading @@ -65,8 +65,6 @@ public class ActionMenuItemView extends FrameLayout public void initialize(MenuItemImpl itemData, int menuType) { mItemData = itemData; setClickable(true); setFocusable(true); setIcon(itemData.getIcon()); setTitle(itemData.getTitle()); // Title only takes effect if there is no icon setId(itemData.getItemId()); Loading Loading @@ -128,7 +126,7 @@ public class ActionMenuItemView extends FrameLayout // populate accessibility description with title setContentDescription(title); if (mImageButton.getDrawable() == null) { if (mImageButton.getDrawable() == null || mItemData.showsTextAsAction()) { mTextButton.setText(mTitle); mTextButton.setVisibility(VISIBLE); } Loading
core/java/com/android/internal/view/menu/MenuItemImpl.java +22 −2 Original line number Diff line number Diff line Loading @@ -38,6 +38,10 @@ import com.android.internal.view.menu.MenuView.ItemView; public final class MenuItemImpl implements MenuItem { private static final String TAG = "MenuItemImpl"; private static final int SHOW_AS_ACTION_MASK = SHOW_AS_ACTION_NEVER | SHOW_AS_ACTION_IF_ROOM | SHOW_AS_ACTION_ALWAYS; private final int mId; private final int mGroup; private final int mCategoryOrder; Loading Loading @@ -649,11 +653,11 @@ public final class MenuItemImpl implements MenuItem { } public boolean requestsActionButton() { return mShowAsAction == SHOW_AS_ACTION_IF_ROOM; return (mShowAsAction & SHOW_AS_ACTION_IF_ROOM) == SHOW_AS_ACTION_IF_ROOM; } public boolean requiresActionButton() { return mShowAsAction == SHOW_AS_ACTION_ALWAYS; return (mShowAsAction & SHOW_AS_ACTION_ALWAYS) == SHOW_AS_ACTION_ALWAYS; } public void setIsActionButton(boolean isActionButton) { Loading @@ -664,7 +668,23 @@ public final class MenuItemImpl implements MenuItem { } } public boolean showsTextAsAction() { return (mShowAsAction & SHOW_AS_ACTION_WITH_TEXT) == SHOW_AS_ACTION_WITH_TEXT; } public void setShowAsAction(int actionEnum) { switch (actionEnum & SHOW_AS_ACTION_MASK) { case SHOW_AS_ACTION_ALWAYS: case SHOW_AS_ACTION_IF_ROOM: case SHOW_AS_ACTION_NEVER: // Looks good! break; default: // Mutually exclusive options selected! throw new IllegalArgumentException("SHOW_AS_ACTION_ALWAYS, SHOW_AS_ACTION_IF_ROOM," + " and SHOW_AS_ACTION_NEVER are mutually exclusive."); } mShowAsAction = actionEnum; mMenu.onItemActionRequestChanged(this); } Loading