am d7deaae1: am 01ac5bb9: am 8f9d84ff: Remove field when removing the only char

* commit 'd7deaae13c41bbe728bf40d5f08e8ae233458e0a':
  Remove field when removing the only char
diff --git a/src/com/android/contacts/editor/EventFieldEditorView.java b/src/com/android/contacts/editor/EventFieldEditorView.java
index 4d9411f..34a10cd 100644
--- a/src/com/android/contacts/editor/EventFieldEditorView.java
+++ b/src/com/android/contacts/editor/EventFieldEditorView.java
@@ -113,6 +113,7 @@
         mDateView.setEnabled(isEnabled() && !readOnly);
 
         rebuildDateView();
+        updateEmptiness();
     }
 
     private void rebuildDateView() {
diff --git a/src/com/android/contacts/editor/LabeledEditorView.java b/src/com/android/contacts/editor/LabeledEditorView.java
index 0a33b6d..e0524ce 100644
--- a/src/com/android/contacts/editor/LabeledEditorView.java
+++ b/src/com/android/contacts/editor/LabeledEditorView.java
@@ -301,6 +301,14 @@
         mEntry.put(column, value);
     }
 
+    /**
+     * Sub classes should call this at the end of {@link #setValues} once they finish changing
+     * isEmpty(). This is needed to fix b/18194655.
+     */
+    protected final void updateEmptiness() {
+        mWasEmpty = isEmpty();
+    }
+
     protected void notifyEditorListener() {
         if (mListener != null) {
             mListener.onRequest(EditorListener.FIELD_CHANGED);
@@ -337,8 +345,9 @@
     }
 
     /**
-     * Prepare this editor using the given {@link DataKind} for defining
-     * structure and {@link ValuesDelta} describing the content to edit.
+     * Prepare this editor using the given {@link DataKind} for defining structure and
+     * {@link ValuesDelta} describing the content to edit. When overriding this, be careful
+     * to call {@link #updateEmptiness} at the end.
      */
     @Override
     public void setValues(DataKind kind, ValuesDelta entry, RawContactDelta state, boolean readOnly,
diff --git a/src/com/android/contacts/editor/PhoneticNameEditorView.java b/src/com/android/contacts/editor/PhoneticNameEditorView.java
index 69e0719..420575c 100644
--- a/src/com/android/contacts/editor/PhoneticNameEditorView.java
+++ b/src/com/android/contacts/editor/PhoneticNameEditorView.java
@@ -108,6 +108,7 @@
             entry = new PhoneticValuesDelta(entry);
         }
         super.setValues(kind, entry, state, readOnly, vig);
+        updateEmptiness();
     }
 
     @Override
diff --git a/src/com/android/contacts/editor/StructuredNameEditorView.java b/src/com/android/contacts/editor/StructuredNameEditorView.java
index 3408435..a607cca 100644
--- a/src/com/android/contacts/editor/StructuredNameEditorView.java
+++ b/src/com/android/contacts/editor/StructuredNameEditorView.java
@@ -73,6 +73,7 @@
         } else {
             mChanged = false;
         }
+        updateEmptiness();
     }
 
     @Override
diff --git a/src/com/android/contacts/editor/TextFieldsEditorView.java b/src/com/android/contacts/editor/TextFieldsEditorView.java
index e658f53..841e2fa 100644
--- a/src/com/android/contacts/editor/TextFieldsEditorView.java
+++ b/src/com/android/contacts/editor/TextFieldsEditorView.java
@@ -281,6 +281,8 @@
         // When hiding fields, place expandable
         setupExpansionView(hidePossible, mHideOptional);
         mExpansionView.setEnabled(!readOnly && isEnabled());
+
+        updateEmptiness();
     }
 
     @Override