aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDmitri Plotnikov <dplotnikov@google.com>2009-10-05 14:51:49 -0700
committerDmitri Plotnikov <dplotnikov@google.com>2009-10-05 14:51:55 -0700
commitdd0e0f44fe403ff201d46d5534f7f1148e5ad729 (patch)
tree3a568cf70479288873cc4caead181a539259264b /src
parentf8b937f62fb80445bf59b2e504d765bcab746557 (diff)
downloadContactsProvider-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.java21
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