summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Oren Blasberg <orenb@google.com> 2016-04-19 15:44:46 -0700
committer Oren Blasberg <orenb@google.com> 2016-04-25 16:17:18 -0700
commit7b457455c40a6f159d9d82b2fe2e03bc26e9c55e (patch)
tree72a7600b15325b26bbba0f2377e63f51dfe3310b
parent6ed4e35e49fb9d1e485f53b4ce309865d98a6058 (diff)
Don't show icons for top level menus unless forced.
Prior to this CL, the cascading implementation would evaluate the contents of the menu to determine whether to show an icon for this case. However, the policy we have upheld is that top level menus should never show an icon for this case. (Unless setForceShowIcon(true) was called.) Bug: 28275346 Change-Id: I09423596d49742aa7a9ba7245702c099581c0b48
-rw-r--r--core/java/com/android/internal/view/menu/CascadingMenuPopup.java15
-rw-r--r--core/java/com/android/internal/view/menu/MenuPopupHelper.java3
2 files changed, 9 insertions, 9 deletions
diff --git a/core/java/com/android/internal/view/menu/CascadingMenuPopup.java b/core/java/com/android/internal/view/menu/CascadingMenuPopup.java
index 5cb307fec697..4c0907ce878e 100644
--- a/core/java/com/android/internal/view/menu/CascadingMenuPopup.java
+++ b/core/java/com/android/internal/view/menu/CascadingMenuPopup.java
@@ -347,21 +347,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();
diff --git a/core/java/com/android/internal/view/menu/MenuPopupHelper.java b/core/java/com/android/internal/view/menu/MenuPopupHelper.java
index 1f1e594e755b..9f029ad2e507 100644
--- a/core/java/com/android/internal/view/menu/MenuPopupHelper.java
+++ b/core/java/com/android/internal/view/menu/MenuPopupHelper.java
@@ -104,6 +104,9 @@ public class MenuPopupHelper implements MenuHelper {
*/
public void setForceShowIcon(boolean forceShowIcon) {
mForceShowIcon = forceShowIcon;
+ if (mPopup != null) {
+ mPopup.setForceShowIcon(forceShowIcon);
+ }
}
/**