diff options
Diffstat (limited to 'src/com/android/dialer/filterednumber/FilteredNumbersUtil.java')
-rw-r--r-- | src/com/android/dialer/filterednumber/FilteredNumbersUtil.java | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/src/com/android/dialer/filterednumber/FilteredNumbersUtil.java b/src/com/android/dialer/filterednumber/FilteredNumbersUtil.java index 56417e11d..4a50a49f2 100644 --- a/src/com/android/dialer/filterednumber/FilteredNumbersUtil.java +++ b/src/com/android/dialer/filterednumber/FilteredNumbersUtil.java @@ -15,13 +15,16 @@ */ package com.android.dialer.filterednumber; -import android.content.Context; import android.content.ContentValues; +import android.content.Context; import android.database.Cursor; import android.os.AsyncTask; -import android.provider.ContactsContract.Data; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.Contacts; +import android.provider.ContactsContract.Data; +import android.telecom.PhoneAccountHandle; +import android.telecom.TelecomManager; +import android.telephony.PhoneNumberUtils; import android.text.TextUtils; import android.widget.Toast; @@ -32,8 +35,7 @@ import com.android.dialer.R; import com.android.dialer.database.FilteredNumberAsyncQueryHandler; /** - * Utility to help with tasks related to importing filtered numbers, namely migrating the - * SEND_TO_VOICEMAIL from Contacts. + * Utility to help with tasks related to filtered numbers. */ public class FilteredNumbersUtil { @@ -178,4 +180,21 @@ public class FilteredNumbersUtil { }; task.execute(); } + + public static boolean canBlockNumber(Context context, String number) { + if (PhoneNumberUtils.isEmergencyNumber(number)) { + return false; + } + + TelecomManager telecomManager = + (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE); + List<PhoneAccountHandle> phoneAccountHandles = telecomManager.getCallCapablePhoneAccounts(); + for (PhoneAccountHandle phoneAccountHandle : phoneAccountHandles) { + if (telecomManager.isVoiceMailNumber(phoneAccountHandle, number)) { + return false; + } + } + + return true; + } } |