Fixing name editing for Exchange contacts

Change-Id: Ic5ea1fcc59e116050d41957e711fdfe31559e931
diff --git a/src/com/android/contacts/ui/widget/GenericEditorView.java b/src/com/android/contacts/ui/widget/GenericEditorView.java
index 6be238f..92c815c 100644
--- a/src/com/android/contacts/ui/widget/GenericEditorView.java
+++ b/src/com/android/contacts/ui/widget/GenericEditorView.java
@@ -83,6 +83,7 @@
     private boolean mReadOnly;
     private EditText[] mFieldEditTexts = null;
 
+    private boolean mHasShortAndLongForms;
     private boolean mHideOptional = true;
 
     private EditType mType;
@@ -94,6 +95,7 @@
     private EditorListener mListener;
 
 
+
     public GenericEditorView(Context context) {
         super(context);
     }
@@ -343,6 +345,10 @@
         return !mHideOptional;
     }
 
+    public boolean hasShortAndLongForms() {
+        return mHasShortAndLongForms;
+    }
+
     /**
      * Build the current label state based on selected {@link EditType} and
      * possible custom label string.
@@ -465,9 +471,11 @@
 
             if (field.shortForm) {
                 hidePossible = true;
+                mHasShortAndLongForms = true;
                 fieldView.setVisibility(mHideOptional ? View.VISIBLE : View.GONE);
             } else if (field.longForm) {
                 hidePossible = true;
+                mHasShortAndLongForms = true;
                 fieldView.setVisibility(mHideOptional ? View.GONE : View.VISIBLE);
             } else {
                 // Hide field when empty and optional value
diff --git a/src/com/android/contacts/views/editor/ContactEditorFragment.java b/src/com/android/contacts/views/editor/ContactEditorFragment.java
index 2d4af4f..4070ca9 100644
--- a/src/com/android/contacts/views/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/views/editor/ContactEditorFragment.java
@@ -1014,10 +1014,12 @@
                 break;
 
             case EditorListener.FIELD_CHANGED:
-                if (nameEditor.areOptionalFieldsVisible()) {
-                    eraseFullName(nameEditor.getValues());
-                } else {
-                    eraseStructuredName(nameEditor.getValues());
+                if (nameEditor.hasShortAndLongForms()) {
+                    if (nameEditor.areOptionalFieldsVisible()) {
+                        eraseFullName(nameEditor.getValues());
+                    } else {
+                        eraseStructuredName(nameEditor.getValues());
+                    }
                 }
                 acquireAggregationSuggestions(rawContactEditor);
                 break;