Merge "Don\'t show icons for top level menus unless forced." into nyc-dev am: 0967da3

am: bddf236

* commit 'bddf236208aa083cc1b29a1da6f8edc9ef3deec6':
  Don't show icons for top level menus unless forced.

Change-Id: I5e6fe8e0ed308cbdec7038111be4c3e7ca0e721a
This commit is contained in:
Oren Blasberg
2016-04-26 23:16:10 +00:00
committed by android-build-merger
2 changed files with 9 additions and 9 deletions

View File

@@ -349,21 +349,18 @@ final class CascadingMenuPopup extends MenuPopup implements MenuPresenter, OnKey
final LayoutInflater inflater = LayoutInflater.from(mContext);
final MenuAdapter adapter = new MenuAdapter(menu, inflater, mOverflowOnly);
// Apply "force show icon" setting. There are 4 cases:
// (1) This is the top level menu. Only add spacing for icons if forced.
// Apply "force show icon" setting. There are 3 cases:
// (1) This is the top level menu and icon spacing is forced. Add spacing.
// (2) This is a submenu. Add spacing if any of the visible menu items has an icon.
// (3) This is a top level menu that is not an overflow menu. Add spacing if any of the
// visible menu items has an icon.
// (4) This is an overflow menu or a top level menu that doesn't have "force" set.
// Don't allow spacing.
// (3) This is the top level menu and icon spacing isn't forced. Do not add spacing.
if (!isShowing() && mForceShowIcon) {
// Case 1
adapter.setForceShowIcon(true);
} else if (isShowing() || !isShowing() && !mForceShowIcon && !mOverflowOnly) {
// Case 2 or 3
} else if (isShowing()) {
// Case 2
adapter.setForceShowIcon(MenuPopup.shouldPreserveIconSpacing(menu));
}
// Case 4: Else, don't allow spacing for icons.
// Case 3: Else, don't allow spacing for icons (default behavior; do nothing).
final int menuWidth = measureIndividualMenuWidth(adapter, null, mContext, mMenuMaxWidth);
final MenuPopupWindow popupWindow = createPopupWindow();

View File

@@ -104,6 +104,9 @@ public class MenuPopupHelper implements MenuHelper {
*/
public void setForceShowIcon(boolean forceShowIcon) {
mForceShowIcon = forceShowIcon;
if (mPopup != null) {
mPopup.setForceShowIcon(forceShowIcon);
}
}
/**