Loading tools/layoutlib/bridge/src/com/android/internal/view/menu/BridgeMenuItemImpl.java +22 −1 Original line number Original line Diff line number Diff line Loading @@ -16,6 +16,12 @@ package com.android.internal.view.menu; package com.android.internal.view.menu; import com.android.layoutlib.bridge.android.BridgeContext; import android.content.Context; import android.view.ContextThemeWrapper; import android.view.View; /** /** * An extension of the {@link MenuItemImpl} to store the view cookie also. * An extension of the {@link MenuItemImpl} to store the view cookie also. */ */ Loading @@ -27,6 +33,7 @@ public class BridgeMenuItemImpl extends MenuItemImpl { * at the time of rendering. * at the time of rendering. */ */ private Object viewCookie; private Object viewCookie; private BridgeContext mContext; /** /** * Instantiates this menu item. * Instantiates this menu item. Loading @@ -34,14 +41,28 @@ public class BridgeMenuItemImpl extends MenuItemImpl { BridgeMenuItemImpl(MenuBuilder menu, int group, int id, int categoryOrder, int ordering, BridgeMenuItemImpl(MenuBuilder menu, int group, int id, int categoryOrder, int ordering, CharSequence title, int showAsAction) { CharSequence title, int showAsAction) { super(menu, group, id, categoryOrder, ordering, title, showAsAction); super(menu, group, id, categoryOrder, ordering, title, showAsAction); Context context = menu.getContext(); if (context instanceof ContextThemeWrapper) { context = ((ContextThemeWrapper) context).getBaseContext(); } if (context instanceof BridgeContext) { mContext = ((BridgeContext) context); } } } public Object getViewCookie() { public Object getViewCookie() { return viewCookie; return viewCookie; } } public void setViewCookie(Object viewCookie) { public void setViewCookie(Object viewCookie) { // If the menu item has an associated action provider view, // directly set the cookie in the view to cookie map stored in BridgeContext. View actionView = getActionView(); if (actionView != null && mContext != null) { mContext.addViewKey(actionView, viewCookie); // We don't need to add the view cookie to the this item now. But there's no harm in // storing it, in case we need it in the future. } this.viewCookie = viewCookie; this.viewCookie = viewCookie; } } } } tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/ActionBarLayout.java +4 −2 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,7 @@ import com.android.ide.common.rendering.api.SystemViewCookie; import com.android.internal.R; import com.android.internal.R; import com.android.internal.app.ActionBarImpl; import com.android.internal.app.ActionBarImpl; import com.android.internal.util.Predicate; import com.android.internal.util.Predicate; import com.android.internal.view.menu.ActionMenuView; import com.android.internal.view.menu.MenuBuilder; import com.android.internal.view.menu.MenuBuilder; import com.android.internal.view.menu.MenuBuilderAccessor; import com.android.internal.view.menu.MenuBuilderAccessor; import com.android.internal.view.menu.MenuItemImpl; import com.android.internal.view.menu.MenuItemImpl; Loading Loading @@ -180,8 +181,9 @@ public class ActionBarLayout extends LinearLayout { Predicate<View> overflowMenuButtonTest = new Predicate<View>() { Predicate<View> overflowMenuButtonTest = new Predicate<View>() { @Override @Override public boolean apply(View view) { public boolean apply(View view) { return view.getClass().getName() ViewGroup.LayoutParams lp = view.getLayoutParams(); .equals("android.widget.ActionMenuPresenter$OverflowMenuButton"); return lp instanceof ActionMenuView.LayoutParams && ((ActionMenuView.LayoutParams) lp).isOverflowButton; } } }; }; View overflowMenu = null; View overflowMenu = null; Loading Loading
tools/layoutlib/bridge/src/com/android/internal/view/menu/BridgeMenuItemImpl.java +22 −1 Original line number Original line Diff line number Diff line Loading @@ -16,6 +16,12 @@ package com.android.internal.view.menu; package com.android.internal.view.menu; import com.android.layoutlib.bridge.android.BridgeContext; import android.content.Context; import android.view.ContextThemeWrapper; import android.view.View; /** /** * An extension of the {@link MenuItemImpl} to store the view cookie also. * An extension of the {@link MenuItemImpl} to store the view cookie also. */ */ Loading @@ -27,6 +33,7 @@ public class BridgeMenuItemImpl extends MenuItemImpl { * at the time of rendering. * at the time of rendering. */ */ private Object viewCookie; private Object viewCookie; private BridgeContext mContext; /** /** * Instantiates this menu item. * Instantiates this menu item. Loading @@ -34,14 +41,28 @@ public class BridgeMenuItemImpl extends MenuItemImpl { BridgeMenuItemImpl(MenuBuilder menu, int group, int id, int categoryOrder, int ordering, BridgeMenuItemImpl(MenuBuilder menu, int group, int id, int categoryOrder, int ordering, CharSequence title, int showAsAction) { CharSequence title, int showAsAction) { super(menu, group, id, categoryOrder, ordering, title, showAsAction); super(menu, group, id, categoryOrder, ordering, title, showAsAction); Context context = menu.getContext(); if (context instanceof ContextThemeWrapper) { context = ((ContextThemeWrapper) context).getBaseContext(); } if (context instanceof BridgeContext) { mContext = ((BridgeContext) context); } } } public Object getViewCookie() { public Object getViewCookie() { return viewCookie; return viewCookie; } } public void setViewCookie(Object viewCookie) { public void setViewCookie(Object viewCookie) { // If the menu item has an associated action provider view, // directly set the cookie in the view to cookie map stored in BridgeContext. View actionView = getActionView(); if (actionView != null && mContext != null) { mContext.addViewKey(actionView, viewCookie); // We don't need to add the view cookie to the this item now. But there's no harm in // storing it, in case we need it in the future. } this.viewCookie = viewCookie; this.viewCookie = viewCookie; } } } }
tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/ActionBarLayout.java +4 −2 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,7 @@ import com.android.ide.common.rendering.api.SystemViewCookie; import com.android.internal.R; import com.android.internal.R; import com.android.internal.app.ActionBarImpl; import com.android.internal.app.ActionBarImpl; import com.android.internal.util.Predicate; import com.android.internal.util.Predicate; import com.android.internal.view.menu.ActionMenuView; import com.android.internal.view.menu.MenuBuilder; import com.android.internal.view.menu.MenuBuilder; import com.android.internal.view.menu.MenuBuilderAccessor; import com.android.internal.view.menu.MenuBuilderAccessor; import com.android.internal.view.menu.MenuItemImpl; import com.android.internal.view.menu.MenuItemImpl; Loading Loading @@ -180,8 +181,9 @@ public class ActionBarLayout extends LinearLayout { Predicate<View> overflowMenuButtonTest = new Predicate<View>() { Predicate<View> overflowMenuButtonTest = new Predicate<View>() { @Override @Override public boolean apply(View view) { public boolean apply(View view) { return view.getClass().getName() ViewGroup.LayoutParams lp = view.getLayoutParams(); .equals("android.widget.ActionMenuPresenter$OverflowMenuButton"); return lp instanceof ActionMenuView.LayoutParams && ((ActionMenuView.LayoutParams) lp).isOverflowButton; } } }; }; View overflowMenu = null; View overflowMenu = null; Loading