summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2021-10-06 22:54:09 +0000
committerXin Li <delphij@google.com>2021-10-06 22:54:09 +0000
commit091917e0fa3499659ddb41985fc900384a294a63 (patch)
treeb0b928a9c8b07371c67f14c5fb00d6b25fe9166b
parenta806fdcf0c3bfe5cc224563986226e3cfeb15e00 (diff)
parenta6741bc34daa22bd742c020608720eb185d23f96 (diff)
downloadBlockedNumberProvider-091917e0fa3499659ddb41985fc900384a294a63.tar.gz
Bug: 202323961 Merged-In: I9485983135ab1e4b8bbb75e9ede620afd7b5a605 Change-Id: I1cbb7ec88e77aae179f3c9340b3c6c0de0a184a5
-rw-r--r--AndroidManifest.xml2
-rw-r--r--res/values-km/strings.xml2
-rw-r--r--src/com/android/providers/blockednumber/BlockedNumberProvider.java17
-rw-r--r--tests/src/com/android/providers/blockednumber/BlockedNumberProviderTest.java1
4 files changed, 15 insertions, 7 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 595052e..3493527 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -18,6 +18,8 @@
package="com.android.providers.blockednumber"
android:sharedUserId="android.uid.shared">
+ <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
+
<application
android:process="android.process.acore"
android:label="@string/app_label"
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 515bd9e..d4918cf 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -16,5 +16,5 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_label" msgid="3836152623003881586">"កន្លែង​​ផ្ទុក​លេខ​​ដែលបាន​ទប់ស្កាត់"</string>
+ <string name="app_label" msgid="3836152623003881586">"កន្លែង​​ផ្ទុក​លេខ​​បាន​ទប់ស្កាត់"</string>
</resources>
diff --git a/src/com/android/providers/blockednumber/BlockedNumberProvider.java b/src/com/android/providers/blockednumber/BlockedNumberProvider.java
index 1458c1c..50dfcb2 100644
--- a/src/com/android/providers/blockednumber/BlockedNumberProvider.java
+++ b/src/com/android/providers/blockednumber/BlockedNumberProvider.java
@@ -45,7 +45,6 @@ import android.provider.BlockedNumberContract;
import android.provider.BlockedNumberContract.SystemContract;
import android.telecom.TelecomManager;
import android.telephony.CarrierConfigManager;
-import android.telephony.PhoneNumberUtils;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
@@ -407,9 +406,10 @@ public class BlockedNumberProvider extends ContentProvider {
return false;
}
- final String e164Number = Utils.getE164Number(getContext(), phoneNumber, null);
- return PhoneNumberUtils.isEmergencyNumber(phoneNumber)
- || PhoneNumberUtils.isEmergencyNumber(e164Number);
+ Context context = getContext();
+ final String e164Number = Utils.getE164Number(context, phoneNumber, null);
+ TelephonyManager tm = context.getSystemService(TelephonyManager.class);
+ return tm.isEmergencyNumber(phoneNumber) || tm.isEmergencyNumber(e164Number);
}
private boolean isBlocked(String phoneNumber) {
@@ -632,8 +632,13 @@ public class BlockedNumberProvider extends ContentProvider {
final TelephonyManager telephonyManager =
getContext().getSystemService(TelephonyManager.class);
- return telephonyManager.checkCarrierPrivilegesForPackageAnyPhone(callingPackage) ==
- TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS;
+ final long token = Binder.clearCallingIdentity();
+ try {
+ return telephonyManager.checkCarrierPrivilegesForPackageAnyPhone(callingPackage) ==
+ TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS;
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
}
return false;
}
diff --git a/tests/src/com/android/providers/blockednumber/BlockedNumberProviderTest.java b/tests/src/com/android/providers/blockednumber/BlockedNumberProviderTest.java
index c8204c3..9f9301f 100644
--- a/tests/src/com/android/providers/blockednumber/BlockedNumberProviderTest.java
+++ b/tests/src/com/android/providers/blockednumber/BlockedNumberProviderTest.java
@@ -612,6 +612,7 @@ public class BlockedNumberProviderTest extends AndroidTestCase {
public void testEmergencyNumbersAreNotBlockedBySystem() {
String emergencyNumber = getEmergencyNumberFromSystemPropertiesOrDefault();
+ doReturn(true).when(mMockContext.mTelephonyManager).isEmergencyNumber(emergencyNumber);
insert(cv(BlockedNumbers.COLUMN_ORIGINAL_NUMBER, emergencyNumber));
assertIsBlocked(true, emergencyNumber);