diff options
author | Dmitri Plotnikov <dplotnikov@google.com> | 2009-10-05 14:51:49 -0700 |
---|---|---|
committer | Dmitri Plotnikov <dplotnikov@google.com> | 2009-10-05 14:51:55 -0700 |
commit | dd0e0f44fe403ff201d46d5534f7f1148e5ad729 (patch) | |
tree | 3a568cf70479288873cc4caead181a539259264b /src | |
parent | f8b937f62fb80445bf59b2e504d765bcab746557 (diff) | |
download | ContactsProvider-dd0e0f44fe403ff201d46d5534f7f1148e5ad729.tar.gz |
[Issue 2160728] Fixing full name update when parts of structured name are deleted
Change-Id: I3a206a4cfb09be590bf96476d128791129263742
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/providers/contacts/ContactsProvider2.java | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/com/android/providers/contacts/ContactsProvider2.java b/src/com/android/providers/contacts/ContactsProvider2.java index 74e680d5..3496a185 100644 --- a/src/com/android/providers/contacts/ContactsProvider2.java +++ b/src/com/android/providers/contacts/ContactsProvider2.java @@ -1068,12 +1068,12 @@ public class ContactsProvider2 extends SQLiteContentProvider implements OnAccoun * name. */ private void fixStructuredNameComponents(ContentValues augmented, ContentValues update) { - final String unstruct = update.getAsString(StructuredName.DISPLAY_NAME); - final boolean touchedUnstruct = !TextUtils.isEmpty(unstruct); - final boolean touchedStruct = !areAllEmpty(update, STRUCTURED_FIELDS); + final boolean touchedUnstruct = update.containsKey(StructuredName.DISPLAY_NAME); + final boolean touchedStruct = areAnySpecified(update, STRUCTURED_FIELDS); if (touchedUnstruct && !touchedStruct) { + final String unstruct = update.getAsString(StructuredName.DISPLAY_NAME); NameSplitter.Name name = new NameSplitter.Name(); mSplitter.split(name, unstruct); name.toValues(update); @@ -1125,14 +1125,13 @@ public class ContactsProvider2 extends SQLiteContentProvider implements OnAccoun * unstructured value is assigned to {@link StructuredPostal#STREET}. */ private void fixStructuredPostalComponents(ContentValues augmented, ContentValues update) { - final String unstruct = update.getAsString(StructuredPostal.FORMATTED_ADDRESS); - - final boolean touchedUnstruct = !TextUtils.isEmpty(unstruct); - final boolean touchedStruct = !areAllEmpty(update, STRUCTURED_FIELDS); + final boolean touchedUnstruct = update.containsKey(StructuredPostal.FORMATTED_ADDRESS); + final boolean touchedStruct = areAnySpecified(update, STRUCTURED_FIELDS); final PostalSplitter.Postal postal = new PostalSplitter.Postal(); if (touchedUnstruct && !touchedStruct) { + final String unstruct = update.getAsString(StructuredPostal.FORMATTED_ADDRESS); mSplitter.split(postal, unstruct); postal.toValues(update); } else if (!touchedUnstruct && touchedStruct) { @@ -3200,13 +3199,13 @@ public class ContactsProvider2 extends SQLiteContentProvider implements OnAccoun /** * Test all against {@link TextUtils#isEmpty(CharSequence)}. */ - private static boolean areAllEmpty(ContentValues values, String[] keys) { + private static boolean areAnySpecified(ContentValues values, String[] keys) { for (String key : keys) { - if (!TextUtils.isEmpty(values.getAsString(key))) { - return false; + if (values.containsKey(key)) { + return true; } } - return true; + return false; } @Override |