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