Loading api/current.txt +15 −0 Original line number Diff line number Diff line Loading @@ -31404,6 +31404,21 @@ package android.widget { field public int y; } public class ActionMenuView extends android.widget.LinearLayout { ctor public ActionMenuView(android.content.Context); ctor public ActionMenuView(android.content.Context, android.util.AttributeSet); method public android.view.Menu getMenu(); method public void onConfigurationChanged(android.content.res.Configuration); method public void onDetachedFromWindow(); } public static class ActionMenuView.LayoutParams extends android.widget.LinearLayout.LayoutParams { ctor public ActionMenuView.LayoutParams(android.content.Context, android.util.AttributeSet); ctor public ActionMenuView.LayoutParams(android.view.ViewGroup.LayoutParams); ctor public ActionMenuView.LayoutParams(android.widget.ActionMenuView.LayoutParams); ctor public ActionMenuView.LayoutParams(int, int); } public abstract interface Adapter { method public abstract int getCount(); method public abstract java.lang.Object getItem(int); core/java/com/android/internal/view/menu/ActionMenuPresenter.java→core/java/android/widget/ActionMenuPresenter.java +18 −8 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ * limitations under the License. */ package com.android.internal.view.menu; package android.widget; import android.content.Context; import android.content.res.Configuration; Loading @@ -30,17 +30,23 @@ import android.view.View; import android.view.View.MeasureSpec; import android.view.ViewGroup; import android.view.accessibility.AccessibilityNodeInfo; import android.widget.ImageButton; import android.widget.ListPopupWindow; import android.widget.ListPopupWindow.ForwardingListener; import com.android.internal.transition.ActionBarTransition; import com.android.internal.view.ActionBarPolicy; import com.android.internal.view.menu.ActionMenuView.ActionMenuChildView; import com.android.internal.view.menu.ActionMenuItemView; import com.android.internal.view.menu.BaseMenuPresenter; import com.android.internal.view.menu.MenuBuilder; import com.android.internal.view.menu.MenuItemImpl; import com.android.internal.view.menu.MenuPopupHelper; import com.android.internal.view.menu.MenuView; import com.android.internal.view.menu.SubMenuBuilder; import java.util.ArrayList; /** * MenuPresenter for building action menus as seen in the action bar and action modes. * * @hide */ public class ActionMenuPresenter extends BaseMenuPresenter implements ActionProvider.SubUiVisibilityListener { Loading Loading @@ -551,6 +557,10 @@ public class ActionMenuPresenter extends BaseMenuPresenter } } public void setMenuView(ActionMenuView menuView) { mMenuView = menuView; } private static class SavedState implements Parcelable { public int openSubMenuId; Loading Loading @@ -583,7 +593,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter }; } private class OverflowMenuButton extends ImageButton implements ActionMenuChildView { private class OverflowMenuButton extends ImageButton implements ActionMenuView.ActionMenuChildView { public OverflowMenuButton(Context context) { super(context, null, com.android.internal.R.attr.actionOverflowButtonStyle); Loading Loading @@ -712,14 +722,14 @@ public class ActionMenuPresenter extends BaseMenuPresenter } } private class PopupPresenterCallback implements MenuPresenter.Callback { private class PopupPresenterCallback implements Callback { @Override public boolean onOpenSubMenu(MenuBuilder subMenu) { if (subMenu == null) return false; mOpenSubMenuId = ((SubMenuBuilder) subMenu).getItem().getItemId(); final MenuPresenter.Callback cb = getCallback(); final Callback cb = getCallback(); return cb != null ? cb.onOpenSubMenu(subMenu) : false; } Loading @@ -728,7 +738,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter if (menu instanceof SubMenuBuilder) { ((SubMenuBuilder) menu).getRootMenu().close(false); } final MenuPresenter.Callback cb = getCallback(); final Callback cb = getCallback(); if (cb != null) { cb.onCloseMenu(menu, allMenusAreClosing); } Loading core/java/com/android/internal/view/menu/ActionMenuView.java→core/java/android/widget/ActionMenuView.java +55 −27 Original line number Diff line number Diff line Loading @@ -13,22 +13,27 @@ * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.view.menu; package android.widget; import android.content.Context; import android.content.res.Configuration; import android.content.res.TypedArray; import android.util.AttributeSet; import android.view.Gravity; import android.view.Menu; import android.view.View; import android.view.ViewDebug; import android.view.ViewGroup; import android.view.accessibility.AccessibilityEvent; import android.widget.LinearLayout; import com.android.internal.R; import com.android.internal.view.menu.ActionMenuItemView; import com.android.internal.view.menu.MenuBuilder; import com.android.internal.view.menu.MenuItemImpl; import com.android.internal.view.menu.MenuView; /** * @hide * ActionMenuView is a presentation of a series of menu options as a View. It provides * several top level options as action buttons while spilling remaining options over as * items in an overflow menu. This allows applications to present packs of actions inline with * specific or repeating content. */ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvoker, MenuView { private static final String TAG = "ActionMenuView"; Loading @@ -44,8 +49,6 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo private int mFormatItemsWidth; private int mMinCellSize; private int mGeneratedItemPadding; private int mMeasuredExtraWidth; private int mMaxItemHeight; public ActionMenuView(Context context) { this(context, null); Loading @@ -57,26 +60,13 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo final float density = context.getResources().getDisplayMetrics().density; mMinCellSize = (int) (MIN_CELL_SIZE * density); mGeneratedItemPadding = (int) (GENERATED_ITEM_PADDING * density); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ActionBar, R.attr.actionBarStyle, 0); mMaxItemHeight = a.getDimensionPixelSize(R.styleable.ActionBar_height, 0); a.recycle(); } /** @hide */ public void setPresenter(ActionMenuPresenter presenter) { mPresenter = presenter; } public boolean isExpandedFormat() { return mFormatItems; } public void setMaxItemHeight(int maxItemHeight) { mMaxItemHeight = maxItemHeight; requestLayout(); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); Loading Loading @@ -129,10 +119,8 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo final int widthPadding = getPaddingLeft() + getPaddingRight(); final int heightPadding = getPaddingTop() + getPaddingBottom(); final int itemHeightSpec = heightMode == MeasureSpec.EXACTLY ? MeasureSpec.makeMeasureSpec(heightSize - heightPadding, MeasureSpec.EXACTLY) : MeasureSpec.makeMeasureSpec( Math.min(mMaxItemHeight, heightSize - heightPadding), MeasureSpec.AT_MOST); final int itemHeightSpec = getChildMeasureSpec(heightMeasureSpec, heightPadding, ViewGroup.LayoutParams.WRAP_CONTENT); widthSize -= widthPadding; Loading Loading @@ -333,7 +321,6 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo } setMeasuredDimension(widthSize, heightSize); mMeasuredExtraWidth = cellsRemaining * cellSize; } /** Loading Loading @@ -496,10 +483,12 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo mPresenter.dismissPopupMenus(); } /** @hide */ public boolean isOverflowReserved() { return mReserveOverflow; } /** @hide */ public void setOverflowReserved(boolean reserveOverflow) { mReserveOverflow = reserveOverflow; } Loading Loading @@ -536,24 +525,51 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo return p != null && p instanceof LayoutParams; } /** @hide */ public LayoutParams generateOverflowButtonLayoutParams() { LayoutParams result = generateDefaultLayoutParams(); result.isOverflowButton = true; return result; } /** @hide */ public boolean invokeItem(MenuItemImpl item) { return mMenu.performItemAction(item, 0); } /** @hide */ public int getWindowAnimations() { return 0; } /** @hide */ public void initialize(MenuBuilder menu) { mMenu = menu; } /** * Returns the Menu object that this ActionMenuView is currently presenting. * * <p>Applications should use this method to obtain the ActionMenuView's Menu object * and inflate or add content to it as necessary.</p> * * @return the Menu presented by this view */ public Menu getMenu() { if (mMenu == null) { final Context context = getContext(); mMenu = new MenuBuilder(context); mPresenter = new ActionMenuPresenter(context); mPresenter.initForMenu(context, mMenu); mPresenter.setMenuView(this); } return mMenu; } /** * @hide Private LinearLayout (superclass) API. Un-hide if LinearLayout API is made public. */ @Override protected boolean hasDividerBeforeChildAt(int childIndex) { if (childIndex == 0) { Loading @@ -575,23 +591,34 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo return false; } /** @hide */ public interface ActionMenuChildView { public boolean needsDividerBefore(); public boolean needsDividerAfter(); } public static class LayoutParams extends LinearLayout.LayoutParams { /** @hide */ @ViewDebug.ExportedProperty(category = "layout") public boolean isOverflowButton; /** @hide */ @ViewDebug.ExportedProperty(category = "layout") public int cellsUsed; /** @hide */ @ViewDebug.ExportedProperty(category = "layout") public int extraPixels; /** @hide */ @ViewDebug.ExportedProperty(category = "layout") public boolean expandable; /** @hide */ @ViewDebug.ExportedProperty(category = "layout") public boolean preventEdgeOffset; /** @hide */ public boolean expanded; public LayoutParams(Context c, AttributeSet attrs) { Loading @@ -612,6 +639,7 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo isOverflowButton = false; } /** @hide */ public LayoutParams(int width, int height, boolean isOverflowButton) { super(width, height); this.isOverflowButton = isOverflowButton; Loading core/java/com/android/internal/view/menu/ActionMenuItemView.java +1 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.accessibility.AccessibilityEvent; import android.widget.ActionMenuView; import android.widget.TextView; import android.widget.Toast; Loading core/java/com/android/internal/view/menu/MenuBuilder.java +5 −5 Original line number Diff line number Diff line Loading @@ -919,7 +919,7 @@ public class MenuBuilder implements Menu { * sub menu is about to be shown, <var>allMenusAreClosing</var> * is false. */ final void close(boolean allMenusAreClosing) { public final void close(boolean allMenusAreClosing) { if (mIsClosing) return; mIsClosing = true; Loading @@ -946,7 +946,7 @@ public class MenuBuilder implements Menu { * false if only item properties changed. * (Visibility is a structural property since it affects layout.) */ void onItemsChanged(boolean structureChanged) { public void onItemsChanged(boolean structureChanged) { if (!mPreventDispatchingItemsChanged) { if (structureChanged) { mIsVisibleItemsStale = true; Loading Loading @@ -1000,7 +1000,7 @@ public class MenuBuilder implements Menu { onItemsChanged(true); } ArrayList<MenuItemImpl> getVisibleItems() { public ArrayList<MenuItemImpl> getVisibleItems() { if (!mIsVisibleItemsStale) return mVisibleItems; // Refresh the visible items Loading Loading @@ -1085,12 +1085,12 @@ public class MenuBuilder implements Menu { mIsActionItemsStale = false; } ArrayList<MenuItemImpl> getActionItems() { public ArrayList<MenuItemImpl> getActionItems() { flagActionItems(); return mActionItems; } ArrayList<MenuItemImpl> getNonActionItems() { public ArrayList<MenuItemImpl> getNonActionItems() { flagActionItems(); return mNonActionItems; } Loading Loading
api/current.txt +15 −0 Original line number Diff line number Diff line Loading @@ -31404,6 +31404,21 @@ package android.widget { field public int y; } public class ActionMenuView extends android.widget.LinearLayout { ctor public ActionMenuView(android.content.Context); ctor public ActionMenuView(android.content.Context, android.util.AttributeSet); method public android.view.Menu getMenu(); method public void onConfigurationChanged(android.content.res.Configuration); method public void onDetachedFromWindow(); } public static class ActionMenuView.LayoutParams extends android.widget.LinearLayout.LayoutParams { ctor public ActionMenuView.LayoutParams(android.content.Context, android.util.AttributeSet); ctor public ActionMenuView.LayoutParams(android.view.ViewGroup.LayoutParams); ctor public ActionMenuView.LayoutParams(android.widget.ActionMenuView.LayoutParams); ctor public ActionMenuView.LayoutParams(int, int); } public abstract interface Adapter { method public abstract int getCount(); method public abstract java.lang.Object getItem(int);
core/java/com/android/internal/view/menu/ActionMenuPresenter.java→core/java/android/widget/ActionMenuPresenter.java +18 −8 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ * limitations under the License. */ package com.android.internal.view.menu; package android.widget; import android.content.Context; import android.content.res.Configuration; Loading @@ -30,17 +30,23 @@ import android.view.View; import android.view.View.MeasureSpec; import android.view.ViewGroup; import android.view.accessibility.AccessibilityNodeInfo; import android.widget.ImageButton; import android.widget.ListPopupWindow; import android.widget.ListPopupWindow.ForwardingListener; import com.android.internal.transition.ActionBarTransition; import com.android.internal.view.ActionBarPolicy; import com.android.internal.view.menu.ActionMenuView.ActionMenuChildView; import com.android.internal.view.menu.ActionMenuItemView; import com.android.internal.view.menu.BaseMenuPresenter; import com.android.internal.view.menu.MenuBuilder; import com.android.internal.view.menu.MenuItemImpl; import com.android.internal.view.menu.MenuPopupHelper; import com.android.internal.view.menu.MenuView; import com.android.internal.view.menu.SubMenuBuilder; import java.util.ArrayList; /** * MenuPresenter for building action menus as seen in the action bar and action modes. * * @hide */ public class ActionMenuPresenter extends BaseMenuPresenter implements ActionProvider.SubUiVisibilityListener { Loading Loading @@ -551,6 +557,10 @@ public class ActionMenuPresenter extends BaseMenuPresenter } } public void setMenuView(ActionMenuView menuView) { mMenuView = menuView; } private static class SavedState implements Parcelable { public int openSubMenuId; Loading Loading @@ -583,7 +593,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter }; } private class OverflowMenuButton extends ImageButton implements ActionMenuChildView { private class OverflowMenuButton extends ImageButton implements ActionMenuView.ActionMenuChildView { public OverflowMenuButton(Context context) { super(context, null, com.android.internal.R.attr.actionOverflowButtonStyle); Loading Loading @@ -712,14 +722,14 @@ public class ActionMenuPresenter extends BaseMenuPresenter } } private class PopupPresenterCallback implements MenuPresenter.Callback { private class PopupPresenterCallback implements Callback { @Override public boolean onOpenSubMenu(MenuBuilder subMenu) { if (subMenu == null) return false; mOpenSubMenuId = ((SubMenuBuilder) subMenu).getItem().getItemId(); final MenuPresenter.Callback cb = getCallback(); final Callback cb = getCallback(); return cb != null ? cb.onOpenSubMenu(subMenu) : false; } Loading @@ -728,7 +738,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter if (menu instanceof SubMenuBuilder) { ((SubMenuBuilder) menu).getRootMenu().close(false); } final MenuPresenter.Callback cb = getCallback(); final Callback cb = getCallback(); if (cb != null) { cb.onCloseMenu(menu, allMenusAreClosing); } Loading
core/java/com/android/internal/view/menu/ActionMenuView.java→core/java/android/widget/ActionMenuView.java +55 −27 Original line number Diff line number Diff line Loading @@ -13,22 +13,27 @@ * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.view.menu; package android.widget; import android.content.Context; import android.content.res.Configuration; import android.content.res.TypedArray; import android.util.AttributeSet; import android.view.Gravity; import android.view.Menu; import android.view.View; import android.view.ViewDebug; import android.view.ViewGroup; import android.view.accessibility.AccessibilityEvent; import android.widget.LinearLayout; import com.android.internal.R; import com.android.internal.view.menu.ActionMenuItemView; import com.android.internal.view.menu.MenuBuilder; import com.android.internal.view.menu.MenuItemImpl; import com.android.internal.view.menu.MenuView; /** * @hide * ActionMenuView is a presentation of a series of menu options as a View. It provides * several top level options as action buttons while spilling remaining options over as * items in an overflow menu. This allows applications to present packs of actions inline with * specific or repeating content. */ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvoker, MenuView { private static final String TAG = "ActionMenuView"; Loading @@ -44,8 +49,6 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo private int mFormatItemsWidth; private int mMinCellSize; private int mGeneratedItemPadding; private int mMeasuredExtraWidth; private int mMaxItemHeight; public ActionMenuView(Context context) { this(context, null); Loading @@ -57,26 +60,13 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo final float density = context.getResources().getDisplayMetrics().density; mMinCellSize = (int) (MIN_CELL_SIZE * density); mGeneratedItemPadding = (int) (GENERATED_ITEM_PADDING * density); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ActionBar, R.attr.actionBarStyle, 0); mMaxItemHeight = a.getDimensionPixelSize(R.styleable.ActionBar_height, 0); a.recycle(); } /** @hide */ public void setPresenter(ActionMenuPresenter presenter) { mPresenter = presenter; } public boolean isExpandedFormat() { return mFormatItems; } public void setMaxItemHeight(int maxItemHeight) { mMaxItemHeight = maxItemHeight; requestLayout(); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); Loading Loading @@ -129,10 +119,8 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo final int widthPadding = getPaddingLeft() + getPaddingRight(); final int heightPadding = getPaddingTop() + getPaddingBottom(); final int itemHeightSpec = heightMode == MeasureSpec.EXACTLY ? MeasureSpec.makeMeasureSpec(heightSize - heightPadding, MeasureSpec.EXACTLY) : MeasureSpec.makeMeasureSpec( Math.min(mMaxItemHeight, heightSize - heightPadding), MeasureSpec.AT_MOST); final int itemHeightSpec = getChildMeasureSpec(heightMeasureSpec, heightPadding, ViewGroup.LayoutParams.WRAP_CONTENT); widthSize -= widthPadding; Loading Loading @@ -333,7 +321,6 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo } setMeasuredDimension(widthSize, heightSize); mMeasuredExtraWidth = cellsRemaining * cellSize; } /** Loading Loading @@ -496,10 +483,12 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo mPresenter.dismissPopupMenus(); } /** @hide */ public boolean isOverflowReserved() { return mReserveOverflow; } /** @hide */ public void setOverflowReserved(boolean reserveOverflow) { mReserveOverflow = reserveOverflow; } Loading Loading @@ -536,24 +525,51 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo return p != null && p instanceof LayoutParams; } /** @hide */ public LayoutParams generateOverflowButtonLayoutParams() { LayoutParams result = generateDefaultLayoutParams(); result.isOverflowButton = true; return result; } /** @hide */ public boolean invokeItem(MenuItemImpl item) { return mMenu.performItemAction(item, 0); } /** @hide */ public int getWindowAnimations() { return 0; } /** @hide */ public void initialize(MenuBuilder menu) { mMenu = menu; } /** * Returns the Menu object that this ActionMenuView is currently presenting. * * <p>Applications should use this method to obtain the ActionMenuView's Menu object * and inflate or add content to it as necessary.</p> * * @return the Menu presented by this view */ public Menu getMenu() { if (mMenu == null) { final Context context = getContext(); mMenu = new MenuBuilder(context); mPresenter = new ActionMenuPresenter(context); mPresenter.initForMenu(context, mMenu); mPresenter.setMenuView(this); } return mMenu; } /** * @hide Private LinearLayout (superclass) API. Un-hide if LinearLayout API is made public. */ @Override protected boolean hasDividerBeforeChildAt(int childIndex) { if (childIndex == 0) { Loading @@ -575,23 +591,34 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo return false; } /** @hide */ public interface ActionMenuChildView { public boolean needsDividerBefore(); public boolean needsDividerAfter(); } public static class LayoutParams extends LinearLayout.LayoutParams { /** @hide */ @ViewDebug.ExportedProperty(category = "layout") public boolean isOverflowButton; /** @hide */ @ViewDebug.ExportedProperty(category = "layout") public int cellsUsed; /** @hide */ @ViewDebug.ExportedProperty(category = "layout") public int extraPixels; /** @hide */ @ViewDebug.ExportedProperty(category = "layout") public boolean expandable; /** @hide */ @ViewDebug.ExportedProperty(category = "layout") public boolean preventEdgeOffset; /** @hide */ public boolean expanded; public LayoutParams(Context c, AttributeSet attrs) { Loading @@ -612,6 +639,7 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo isOverflowButton = false; } /** @hide */ public LayoutParams(int width, int height, boolean isOverflowButton) { super(width, height); this.isOverflowButton = isOverflowButton; Loading
core/java/com/android/internal/view/menu/ActionMenuItemView.java +1 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.accessibility.AccessibilityEvent; import android.widget.ActionMenuView; import android.widget.TextView; import android.widget.Toast; Loading
core/java/com/android/internal/view/menu/MenuBuilder.java +5 −5 Original line number Diff line number Diff line Loading @@ -919,7 +919,7 @@ public class MenuBuilder implements Menu { * sub menu is about to be shown, <var>allMenusAreClosing</var> * is false. */ final void close(boolean allMenusAreClosing) { public final void close(boolean allMenusAreClosing) { if (mIsClosing) return; mIsClosing = true; Loading @@ -946,7 +946,7 @@ public class MenuBuilder implements Menu { * false if only item properties changed. * (Visibility is a structural property since it affects layout.) */ void onItemsChanged(boolean structureChanged) { public void onItemsChanged(boolean structureChanged) { if (!mPreventDispatchingItemsChanged) { if (structureChanged) { mIsVisibleItemsStale = true; Loading Loading @@ -1000,7 +1000,7 @@ public class MenuBuilder implements Menu { onItemsChanged(true); } ArrayList<MenuItemImpl> getVisibleItems() { public ArrayList<MenuItemImpl> getVisibleItems() { if (!mIsVisibleItemsStale) return mVisibleItems; // Refresh the visible items Loading Loading @@ -1085,12 +1085,12 @@ public class MenuBuilder implements Menu { mIsActionItemsStale = false; } ArrayList<MenuItemImpl> getActionItems() { public ArrayList<MenuItemImpl> getActionItems() { flagActionItems(); return mActionItems; } ArrayList<MenuItemImpl> getNonActionItems() { public ArrayList<MenuItemImpl> getNonActionItems() { flagActionItems(); return mNonActionItems; } Loading