diff options
author | Kunal Malhotra <malhk@google.com> | 2023-01-13 23:07:30 +0000 |
---|---|---|
committer | Kunal Malhotra <malhk@google.com> | 2023-04-03 12:42:32 +0000 |
commit | 4480a86810cc73a198fbe967685dd8980b375887 (patch) | |
tree | 77d3f74501b428a575d208b456ee362741d8e373 | |
parent | e8caf207c2e7c08f550daaee3a5e2331848ffd01 (diff) | |
download | ContactsProvider-4480a86810cc73a198fbe967685dd8980b375887.tar.gz |
Adding a fix for trimming any large fields before they are inserted into
the DB
Test: manual testing done by attempting to add an imported contact with
a very large field in it
Change-Id: I52814fee6c5e137809020f16f332800ef9d79099
Bug: b/262595156 b/262594744
(cherry picked from commit b915bb73ad6905bf339f5fcf8d47a8f487b0f889)
Merged-In: I52814fee6c5e137809020f16f332800ef9d79099
-rw-r--r-- | src/com/android/providers/contacts/DataRowHandlerForNickname.java | 6 | ||||
-rw-r--r-- | src/com/android/providers/contacts/DataRowHandlerForOrganization.java | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/com/android/providers/contacts/DataRowHandlerForNickname.java b/src/com/android/providers/contacts/DataRowHandlerForNickname.java index 03b96a3a..2806cf34 100644 --- a/src/com/android/providers/contacts/DataRowHandlerForNickname.java +++ b/src/com/android/providers/contacts/DataRowHandlerForNickname.java @@ -35,9 +35,14 @@ public class DataRowHandlerForNickname extends DataRowHandlerForCommonDataKind { Nickname.LABEL); } + private void applySimpleFieldMaxSize(ContentValues cv) { + applySimpleFieldMaxSize(cv, Nickname.NAME); + } + @Override public long insert(SQLiteDatabase db, TransactionContext txContext, long rawContactId, ContentValues values) { + applySimpleFieldMaxSize(values); String nickname = values.getAsString(Nickname.NAME); long dataId = super.insert(db, txContext, rawContactId, values); @@ -53,6 +58,7 @@ public class DataRowHandlerForNickname extends DataRowHandlerForCommonDataKind { @Override public boolean update(SQLiteDatabase db, TransactionContext txContext, ContentValues values, Cursor c, boolean callerIsSyncAdapter) { + applySimpleFieldMaxSize(values); long dataId = c.getLong(DataUpdateQuery._ID); long rawContactId = c.getLong(DataUpdateQuery.RAW_CONTACT_ID); diff --git a/src/com/android/providers/contacts/DataRowHandlerForOrganization.java b/src/com/android/providers/contacts/DataRowHandlerForOrganization.java index 66a3b1bd..74f22595 100644 --- a/src/com/android/providers/contacts/DataRowHandlerForOrganization.java +++ b/src/com/android/providers/contacts/DataRowHandlerForOrganization.java @@ -22,6 +22,7 @@ import android.database.DatabaseUtils; import android.database.sqlite.SQLiteDatabase; import android.provider.ContactsContract.CommonDataKinds.Organization; import android.provider.ContactsContract.Data; + import com.android.providers.contacts.ContactsDatabaseHelper.Tables; import com.android.providers.contacts.SearchIndexManager.IndexBuilder; import com.android.providers.contacts.aggregation.AbstractContactAggregator; @@ -37,9 +38,15 @@ public class DataRowHandlerForOrganization extends DataRowHandlerForCommonDataKi Organization.CONTENT_ITEM_TYPE, Organization.TYPE, Organization.LABEL); } + private void applySimpleFieldMaxSize(ContentValues cv) { + applySimpleFieldMaxSize(cv, Organization.COMPANY); + applySimpleFieldMaxSize(cv, Organization.TITLE); + } + @Override public long insert(SQLiteDatabase db, TransactionContext txContext, long rawContactId, ContentValues values) { + applySimpleFieldMaxSize(values); String company = values.getAsString(Organization.COMPANY); String title = values.getAsString(Organization.TITLE); @@ -52,6 +59,7 @@ public class DataRowHandlerForOrganization extends DataRowHandlerForCommonDataKi @Override public boolean update(SQLiteDatabase db, TransactionContext txContext, ContentValues values, Cursor c, boolean callerIsSyncAdapter) { + applySimpleFieldMaxSize(values); if (!super.update(db, txContext, values, c, callerIsSyncAdapter)) { return false; } |