From 597dfe177e7e26baf989641a770a52f832f21e82 Mon Sep 17 00:00:00 2001 From: Grace Jia Date: Mon, 16 Aug 2021 20:26:52 -0700 Subject: Add new API for unavailable display name. Bug: 181383364 Test: BlockedNumberProvider test Change-Id: I685f454db0b57fee9db840cf6796468ebcf6faec --- .../providers/blockednumber/BlockedNumberProvider.java | 10 ++++++++-- .../blockednumber/BlockedNumberProviderTest.java | 15 +++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/com/android/providers/blockednumber/BlockedNumberProvider.java b/src/com/android/providers/blockednumber/BlockedNumberProvider.java index 50dfcb2..830847c 100644 --- a/src/com/android/providers/blockednumber/BlockedNumberProvider.java +++ b/src/com/android/providers/blockednumber/BlockedNumberProvider.java @@ -40,7 +40,6 @@ import android.os.CancellationSignal; import android.os.PersistableBundle; import android.os.Process; import android.os.UserHandle; -import android.os.UserManager; import android.provider.BlockedNumberContract; import android.provider.BlockedNumberContract.SystemContract; import android.telecom.TelecomManager; @@ -106,11 +105,13 @@ public class BlockedNumberProvider extends ContentProvider { protected BlockedNumberDatabaseHelper mDbHelper; @VisibleForTesting protected BackupManager mBackupManager; + protected AppOpsManager mAppOpsManager; @Override public boolean onCreate() { mDbHelper = BlockedNumberDatabaseHelper.getInstance(getContext()); mBackupManager = new BackupManager(getContext()); + mAppOpsManager = getAppOpsManager(); return true; } @@ -490,7 +491,6 @@ public class BlockedNumberProvider extends ContentProvider { return BlockedNumberContract.STATUS_NOT_BLOCKED; } - boolean isBlocked = false; int blockReason = BlockedNumberContract.STATUS_NOT_BLOCKED; if (extras != null && !extras.isEmpty()) { // check enhanced blocking setting @@ -522,6 +522,12 @@ public class BlockedNumberProvider extends ContentProvider { blockReason = BlockedNumberContract.STATUS_BLOCKED_UNKNOWN_NUMBER; } break; + case TelecomManager.PRESENTATION_UNAVAILABLE: + if (getEnhancedBlockSetting( + SystemContract.ENHANCED_SETTING_KEY_BLOCK_UNKNOWN)) { + blockReason = BlockedNumberContract.STATUS_BLOCKED_UNAVAILABLE; + } + break; default: break; } diff --git a/tests/src/com/android/providers/blockednumber/BlockedNumberProviderTest.java b/tests/src/com/android/providers/blockednumber/BlockedNumberProviderTest.java index 9f9301f..3a88a85 100644 --- a/tests/src/com/android/providers/blockednumber/BlockedNumberProviderTest.java +++ b/tests/src/com/android/providers/blockednumber/BlockedNumberProviderTest.java @@ -364,9 +364,21 @@ public class BlockedNumberProviderTest extends AndroidTestCase { setEnhancedBlockSetting(SystemContract.ENHANCED_SETTING_KEY_BLOCK_UNKNOWN, true); assertShouldSystemBlock(true, phoneNumber, createBundleForEnhancedBlocking(TelecomManager.PRESENTATION_UNKNOWN, false)); + assertShouldSystemBlock(true, phoneNumber, + createBundleForEnhancedBlocking(TelecomManager.PRESENTATION_UNAVAILABLE, false)); setEnhancedBlockSetting(SystemContract.ENHANCED_SETTING_KEY_BLOCK_UNKNOWN, false); assertShouldSystemBlock(false, phoneNumber, createBundleForEnhancedBlocking(TelecomManager.PRESENTATION_UNKNOWN, false)); + assertShouldSystemBlock(false, phoneNumber, + createBundleForEnhancedBlocking(TelecomManager.PRESENTATION_UNAVAILABLE, false)); + + // Check whether block unavailable calls setting works well + setEnhancedBlockSetting(SystemContract.ENHANCED_SETTING_KEY_BLOCK_UNAVAILABLE, true); + assertShouldSystemBlock(false, phoneNumber, + createBundleForEnhancedBlocking(TelecomManager.PRESENTATION_UNAVAILABLE, false)); + setEnhancedBlockSetting(SystemContract.ENHANCED_SETTING_KEY_BLOCK_UNAVAILABLE, false); + assertShouldSystemBlock(false, phoneNumber, + createBundleForEnhancedBlocking(TelecomManager.PRESENTATION_UNAVAILABLE, false)); } public void testEnhancedBlockSuppressionAfterEmergencyContact() { @@ -380,6 +392,7 @@ public class BlockedNumberProviderTest extends AndroidTestCase { setEnhancedBlockSetting(SystemContract.ENHANCED_SETTING_KEY_BLOCK_PRIVATE, true); setEnhancedBlockSetting(SystemContract.ENHANCED_SETTING_KEY_BLOCK_PAYPHONE, true); setEnhancedBlockSetting(SystemContract.ENHANCED_SETTING_KEY_BLOCK_UNKNOWN, true); + setEnhancedBlockSetting(SystemContract.ENHANCED_SETTING_KEY_BLOCK_UNAVAILABLE, true); // After emergency contact blocks should be suppressed. long timestampMillisBeforeEmergencyContact = System.currentTimeMillis(); @@ -393,6 +406,8 @@ public class BlockedNumberProviderTest extends AndroidTestCase { createBundleForEnhancedBlocking(TelecomManager.PRESENTATION_PAYPHONE, false)); assertShouldSystemBlock(false, phoneNumber, createBundleForEnhancedBlocking(TelecomManager.PRESENTATION_UNKNOWN, false)); + assertShouldSystemBlock(false, phoneNumber, + createBundleForEnhancedBlocking(TelecomManager.PRESENTATION_UNAVAILABLE, false)); SystemContract.BlockSuppressionStatus status = SystemContract.getBlockSuppressionStatus(mMockContext); -- cgit v1.2.3