diff options
author | Paul Keith <javelinanddart@gmail.com> | 2017-07-06 16:12:12 -0500 |
---|---|---|
committer | Dan Pasanen <dan.pasanen@gmail.com> | 2018-01-27 13:55:42 +0000 |
commit | b28132bf1993233eee7aa5f4dc76473f581cb954 (patch) | |
tree | 1e27b986c192f02330f2ad31018f85547886f4db | |
parent | 25c63e8c2672f324ac46479db7226e0630927738 (diff) | |
download | android_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.java | 10 |
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; } |