From 6810b71896397c31ed9e4b0bb6b4fe487a0026cd Mon Sep 17 00:00:00 2001 From: Mark Finkle Date: Wed, 31 Dec 2014 01:37:37 -0500 Subject: [PATCH] Bug 1116615 - Only update the GeckoMenuItem View if property setter changes a value r=rnewman --- mobile/android/base/menu/GeckoMenuItem.java | 48 +++++++++++++-------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/mobile/android/base/menu/GeckoMenuItem.java b/mobile/android/base/menu/GeckoMenuItem.java index 935b130b1fe..a26cd323dd0 100644 --- a/mobile/android/base/menu/GeckoMenuItem.java +++ b/mobile/android/base/menu/GeckoMenuItem.java @@ -10,6 +10,7 @@ import org.mozilla.gecko.widget.GeckoActionProvider; import android.content.Intent; import android.graphics.drawable.Drawable; +import android.text.TextUtils; import android.view.ActionProvider; import android.view.ContextMenu; import android.view.MenuItem; @@ -244,36 +245,46 @@ public class GeckoMenuItem implements MenuItem { @Override public MenuItem setCheckable(boolean checkable) { - mCheckable = checkable; - mMenu.onItemChanged(this); + if (mCheckable != checkable) { + mCheckable = checkable; + mMenu.onItemChanged(this); + } return this; } @Override public MenuItem setChecked(boolean checked) { - mChecked = checked; - mMenu.onItemChanged(this); + if (mChecked != checked) { + mChecked = checked; + mMenu.onItemChanged(this); + } return this; } @Override public MenuItem setEnabled(boolean enabled) { - mEnabled = enabled; - mMenu.onItemChanged(this); + if (mEnabled != enabled) { + mEnabled = enabled; + mMenu.onItemChanged(this); + } return this; } @Override public MenuItem setIcon(Drawable icon) { - mIcon = icon; - mMenu.onItemChanged(this); + if (mIcon != icon) { + mIcon = icon; + mMenu.onItemChanged(this); + } return this; } @Override public MenuItem setIcon(int iconRes) { - mIconRes = iconRes; - mMenu.onItemChanged(this); + if (mIconRes != iconRes) { + mIconRes = iconRes; + mMenu.onItemChanged(this); + } return this; } @@ -354,16 +365,17 @@ public class GeckoMenuItem implements MenuItem { @Override public MenuItem setTitle(CharSequence title) { - mTitle = title; - mMenu.onItemChanged(this); + if (!TextUtils.equals(mTitle, title)) { + mTitle = title; + mMenu.onItemChanged(this); + } return this; } @Override public MenuItem setTitle(int title) { - mTitle = mMenu.getResources().getString(title); - mMenu.onItemChanged(this); - return this; + CharSequence newTitle = mMenu.getResources().getString(title); + return setTitle(newTitle); } @Override @@ -374,8 +386,10 @@ public class GeckoMenuItem implements MenuItem { @Override public MenuItem setVisible(boolean visible) { - mVisible = visible; - mMenu.onItemChanged(this); + if (mVisible != visible) { + mVisible = visible; + mMenu.onItemChanged(this); + } return this; }