Use strict phone number comparation algorithm if the config tells the package to do so.
This change must come after the change 25941.
Internal issue id: 1892808
diff --git a/src/com/android/providers/telephony/MmsSmsProvider.java b/src/com/android/providers/telephony/MmsSmsProvider.java
index a6a6e8e..7830b66 100644
--- a/src/com/android/providers/telephony/MmsSmsProvider.java
+++ b/src/com/android/providers/telephony/MmsSmsProvider.java
@@ -227,9 +227,14 @@
private SQLiteOpenHelper mOpenHelper;
+ private boolean mUseStrictPhoneNumberComparation;
+
@Override
public boolean onCreate() {
mOpenHelper = MmsSmsDatabaseHelper.getInstance(getContext());
+ mUseStrictPhoneNumberComparation =
+ getContext().getResources().getBoolean(
+ com.android.internal.R.bool.config_use_strict_phone_number_comparation);
return true;
}
@@ -406,7 +411,8 @@
String selection =
isEmail
? "address = ?"
- : "PHONE_NUMBERS_EQUAL(address, ?)";
+ : String.format("PHONE_NUMBERS_EQUAL(address, ?, %d)",
+ (mUseStrictPhoneNumberComparation ? 1 : 0));
String[] selectionArgs = new String[] { refinedAddress };
Cursor cursor = null;
@@ -835,7 +841,8 @@
concatSelections(
selection,
"PHONE_NUMBERS_EQUAL(address, " +
- escapedPhoneNumber + ")");
+ escapedPhoneNumber +
+ (mUseStrictPhoneNumberComparation ? ", 1)" : ", 0)"));
SQLiteQueryBuilder mmsQueryBuilder = new SQLiteQueryBuilder();
SQLiteQueryBuilder smsQueryBuilder = new SQLiteQueryBuilder();
@@ -845,7 +852,8 @@
MmsProvider.TABLE_PDU +
", (SELECT _id AS address_id " +
"FROM addr WHERE PHONE_NUMBERS_EQUAL(addr.address, " +
- escapedPhoneNumber + ")) " +
+ escapedPhoneNumber +
+ (mUseStrictPhoneNumberComparation ? ", 1)) " : ", 0)) ") +
"AS matching_addresses");
smsQueryBuilder.setTables(SmsProvider.TABLE_SMS);