Treat empty and null strings equally. Fixes a data loss on e.g. rotation

Additionally, this will prevent the editor from going into a dirty state
on open, so pressing "Done" will not cause a save anymore if nothing has
changed

Bug:4027153
Change-Id: I0f55b75356b498588a53ad0bc91afaec3ed9434c
diff --git a/src/com/android/contacts/editor/LabeledEditorView.java b/src/com/android/contacts/editor/LabeledEditorView.java
index ebd35f9..a6815a7 100644
--- a/src/com/android/contacts/editor/LabeledEditorView.java
+++ b/src/com/android/contacts/editor/LabeledEditorView.java
@@ -341,8 +341,12 @@
     }
 
     protected boolean isFieldChanged(String column, String value) {
-        String oldValue = mEntry.getAsString(column);
-        return !TextUtils.equals(oldValue, value);
+        final String dbValue = mEntry.getAsString(column);
+        // nullable fields (e.g. Middle Name) are usually represented as empty columns,
+        // so lets treat null and empty space equivalently here
+        final String dbValueNoNull = dbValue == null ? "" : dbValue;
+        final String valueNoNull = value == null ? "" : value;
+        return !TextUtils.equals(dbValueNoNull, valueNoNull);
     }
 
     protected void rebuildValues() {