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;