aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKunal Malhotra <malhk@google.com>2023-01-13 23:07:30 +0000
committerKunal Malhotra <malhk@google.com>2023-04-03 12:42:32 +0000
commit4480a86810cc73a198fbe967685dd8980b375887 (patch)
tree77d3f74501b428a575d208b456ee362741d8e373 /src
parente8caf207c2e7c08f550daaee3a5e2331848ffd01 (diff)
downloadContactsProvider-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
Diffstat (limited to 'src')
-rw-r--r--src/com/android/providers/contacts/DataRowHandlerForNickname.java6
-rw-r--r--src/com/android/providers/contacts/DataRowHandlerForOrganization.java8
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;
}