Merge "Fix bug when adding an empty editor type in Editor UI." into ub-contactsdialer-b-dev
diff --git a/src/com/android/contacts/editor/CompactKindSectionView.java b/src/com/android/contacts/editor/CompactKindSectionView.java
index bab6fe3..7e5ff11 100644
--- a/src/com/android/contacts/editor/CompactKindSectionView.java
+++ b/src/com/android/contacts/editor/CompactKindSectionView.java
@@ -542,10 +542,11 @@
         }
         // Determine if we should add a new empty editor
         final DataKind dataKind = mKindSectionDataList.get(0).getDataKind();
+        final RawContactDelta rawContactDelta =
+                mKindSectionDataList.get(0).getRawContactDelta();
         if (dataKind == null // There is nothing we can do.
                 // We have already reached the maximum number of editors, don't add any more.
-                || (dataKind.typeOverallMax == mEditors.getChildCount()
-                        && dataKind.typeOverallMax != 0)
+                || !RawContactModifier.canInsert(rawContactDelta, dataKind)
                 // We have already reached the maximum number of empty editors, don't add any more.
                 || emptyEditors.size() == 1) {
             return;
@@ -556,8 +557,6 @@
             if (Nickname.CONTENT_ITEM_TYPE.equals(mimeType) && mEditors.getChildCount() > 0) {
                 return;
             }
-            final RawContactDelta rawContactDelta =
-                    mKindSectionDataList.get(0).getRawContactDelta();
             final ValuesDelta values = RawContactModifier.insertChild(rawContactDelta, dataKind);
             final Editor.EditorListener editorListener = Event.CONTENT_ITEM_TYPE.equals(mimeType)
                     ? new EventEditorListener() : new NonNameEditorListener();
diff --git a/src/com/android/contacts/editor/KindSectionView.java b/src/com/android/contacts/editor/KindSectionView.java
index ee11645..e612361 100644
--- a/src/com/android/contacts/editor/KindSectionView.java
+++ b/src/com/android/contacts/editor/KindSectionView.java
@@ -249,7 +249,7 @@
         } else if (isReadOnly()) {
             // We don't show empty editors for read only data kinds.
             return;
-        } else if (mKind.typeOverallMax == getEditorCount() && mKind.typeOverallMax != 0) {
+        } else if (!RawContactModifier.canInsert(mState, mKind)) {
             // We have already reached the maximum number of editors. Lets not add any more.
             return;
         } else if (emptyEditors.size() == 1) {