summaryrefslogtreecommitdiff
path: root/java/com/android/incallui/InCallPresenter.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/incallui/InCallPresenter.java')
-rw-r--r--java/com/android/incallui/InCallPresenter.java19
1 files changed, 17 insertions, 2 deletions
diff --git a/java/com/android/incallui/InCallPresenter.java b/java/com/android/incallui/InCallPresenter.java
index 9c8120c92..2d6d83c3c 100644
--- a/java/com/android/incallui/InCallPresenter.java
+++ b/java/com/android/incallui/InCallPresenter.java
@@ -24,6 +24,7 @@ import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
+import android.support.v4.os.UserManagerCompat;
import android.telecom.Call.Details;
import android.telecom.DisconnectCause;
import android.telecom.PhoneAccount;
@@ -37,6 +38,7 @@ import android.view.WindowManager;
import com.android.contacts.common.compat.CallCompat;
import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler.OnCheckBlockedListener;
+import com.android.dialer.blocking.FilteredNumberCompat;
import com.android.dialer.blocking.FilteredNumbersUtil;
import com.android.dialer.common.LogUtil;
import com.android.dialer.enrichedcall.EnrichedCallComponent;
@@ -309,7 +311,8 @@ public class InCallPresenter implements CallList.Listener {
StatusBarNotifier statusBarNotifier,
ExternalCallNotifier externalCallNotifier,
ContactInfoCache contactInfoCache,
- ProximitySensor proximitySensor) {
+ ProximitySensor proximitySensor,
+ FilteredNumberAsyncQueryHandler filteredNumberQueryHandler) {
if (mServiceConnected) {
Log.i(this, "New service connection replacing existing one.");
if (context != mContext || callList != mCallList) {
@@ -354,7 +357,7 @@ public class InCallPresenter implements CallList.Listener {
VideoPauseController.getInstance().setUp(this);
- mFilteredQueryHandler = new FilteredNumberAsyncQueryHandler(context);
+ mFilteredQueryHandler = filteredNumberQueryHandler;
mContext
.getSystemService(TelephonyManager.class)
.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
@@ -519,6 +522,12 @@ public class InCallPresenter implements CallList.Listener {
if (call.getState() != android.telecom.Call.STATE_RINGING) {
return false;
}
+ if (!UserManagerCompat.isUserUnlocked(mContext)) {
+ LogUtil.i(
+ "InCallPresenter.shouldAttemptBlocking",
+ "not attempting to block incoming call because user is locked");
+ return false;
+ }
if (TelecomCallUtil.isEmergencyCall(call)) {
Log.i(this, "Not attempting to block incoming emergency call");
return false;
@@ -530,6 +539,12 @@ public class InCallPresenter implements CallList.Listener {
if (call.getDetails().hasProperty(CallCompat.Details.PROPERTY_IS_EXTERNAL_CALL)) {
return false;
}
+ if (FilteredNumberCompat.useNewFiltering(mContext)) {
+ LogUtil.i(
+ "InCallPresenter.shouldAttemptBlocking",
+ "not attempting to block incoming call because framework blocking is in use");
+ return false;
+ }
return true;
}