summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Keith <javelinanddart@gmail.com>2017-07-06 16:12:12 -0500
committerDan Pasanen <dan.pasanen@gmail.com>2018-01-27 13:55:42 +0000
commitb28132bf1993233eee7aa5f4dc76473f581cb954 (patch)
tree1e27b986c192f02330f2ad31018f85547886f4db
parent25c63e8c2672f324ac46479db7226e0630927738 (diff)
downloadandroid_packages_services_Telecomm-staging/lineage-15.1.tar.gz
android_packages_services_Telecomm-staging/lineage-15.1.tar.bz2
android_packages_services_Telecomm-staging/lineage-15.1.zip
SensitivePhoneNumbers: Fix number comparisonstaging/lineage-15.1
* Currently, we just compare the strings for equality, which results in incorrect detection of sensitive nums a lot of the time, because adding (or removing) the country code is enough to make the detection fail, meaning the call to that phone number is logged * Use Android's PhoneNumberUtils comparison method to fix this, since it takes these factors into account Change-Id: I26ac180f8a6552cf87a4bada1d370f0ebb884ee1
-rw-r--r--src/com/android/server/telecom/SensitivePhoneNumbers.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/com/android/server/telecom/SensitivePhoneNumbers.java b/src/com/android/server/telecom/SensitivePhoneNumbers.java
index b5703b2c..eff6d6ee 100644
--- a/src/com/android/server/telecom/SensitivePhoneNumbers.java
+++ b/src/com/android/server/telecom/SensitivePhoneNumbers.java
@@ -19,6 +19,7 @@ package com.android.server.telecom;
import android.content.Context;
import android.os.Environment;
+import android.telephony.PhoneNumberUtils;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
@@ -111,8 +112,13 @@ public class SensitivePhoneNumbers {
String networkUsed = telephonyManager.getNetworkOperator(subIdInt);
if (!TextUtils.isEmpty(networkUsed)) {
String networkMCC = networkUsed.substring(0, 3);
- return mSensitiveNumbersMap.containsKey(networkMCC) &&
- mSensitiveNumbersMap.get(networkMCC).contains(numberToCheck);
+ if (mSensitiveNumbersMap.containsKey(networkMCC)) {
+ for (String num : mSensitiveNumbersMap.get(networkMCC)) {
+ if (PhoneNumberUtils.compare(numberToCheck, num)) {
+ return true;
+ }
+ }
+ }
}
return false;
}