am cc905070: am 8ab775e5: Merge "Fix IllegalStateException in Dialer" into lmp-dev

* commit 'cc905070716384be515de6f8410612ecb4495a4a':
  Fix IllegalStateException in Dialer
diff --git a/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java b/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java
index 9fb2239..da4f4a4 100644
--- a/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java
+++ b/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java
@@ -159,8 +159,13 @@
         v.setAdjustSelectionBoundsEnabled(false);
     }
 
-    public void setShortcutEnabled(int shortcutType, boolean visible) {
+    /**
+     * @return True if the shortcut state (disabled vs enabled) was changed by this operation
+     */
+    public boolean setShortcutEnabled(int shortcutType, boolean visible) {
+        final boolean changed = mShortcutEnabled[shortcutType] != visible;
         mShortcutEnabled[shortcutType] = visible;
+        return changed;
     }
 
     public String getFormattedQueryString() {
diff --git a/src/com/android/dialer/list/RegularSearchListAdapter.java b/src/com/android/dialer/list/RegularSearchListAdapter.java
index 3ce4bea..f1f2ae0 100644
--- a/src/com/android/dialer/list/RegularSearchListAdapter.java
+++ b/src/com/android/dialer/list/RegularSearchListAdapter.java
@@ -69,13 +69,17 @@
     @Override
     public void setQueryString(String queryString) {
         final boolean showNumberShortcuts = !TextUtils.isEmpty(getFormattedQueryString());
-        setShortcutEnabled(SHORTCUT_DIRECT_CALL, showNumberShortcuts);
+        boolean changed = false;
+        changed |= setShortcutEnabled(SHORTCUT_DIRECT_CALL, showNumberShortcuts);
         // Either one of the add contacts options should be enabled. If the user entered
         // a dialable number, then clicking add to contact should add it as a number.
         // Otherwise, it should add it to a new contact as a name.
-        setShortcutEnabled(SHORTCUT_ADD_NUMBER_TO_CONTACTS, showNumberShortcuts);
-        setShortcutEnabled(SHORTCUT_MAKE_VIDEO_CALL,
+        changed |= setShortcutEnabled(SHORTCUT_ADD_NUMBER_TO_CONTACTS, showNumberShortcuts);
+        changed |= setShortcutEnabled(SHORTCUT_MAKE_VIDEO_CALL,
                 showNumberShortcuts && CallUtil.isVideoEnabled(getContext()));
+        if (changed) {
+            notifyDataSetChanged();
+        }
         super.setQueryString(queryString);
     }
 }
diff --git a/src/com/android/dialer/list/SmartDialNumberListAdapter.java b/src/com/android/dialer/list/SmartDialNumberListAdapter.java
index b2e0310..04c0d62 100644
--- a/src/com/android/dialer/list/SmartDialNumberListAdapter.java
+++ b/src/com/android/dialer/list/SmartDialNumberListAdapter.java
@@ -118,9 +118,13 @@
     @Override
     public void setQueryString(String queryString) {
         final boolean showNumberShortcuts = !TextUtils.isEmpty(getFormattedQueryString());
-        setShortcutEnabled(SHORTCUT_ADD_NUMBER_TO_CONTACTS, showNumberShortcuts);
-        setShortcutEnabled(SHORTCUT_MAKE_VIDEO_CALL,
+        boolean changed = false;
+        changed |= setShortcutEnabled(SHORTCUT_ADD_NUMBER_TO_CONTACTS, showNumberShortcuts);
+        changed |= setShortcutEnabled(SHORTCUT_MAKE_VIDEO_CALL,
                 showNumberShortcuts && CallUtil.isVideoEnabled(getContext()));
+        if (changed) {
+            notifyDataSetChanged();
+        }
         super.setQueryString(queryString);
     }
 }