Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fa0ea3e1 authored by Ed Mancebo's avatar Ed Mancebo Committed by Gerrit Code Review
Browse files

Merge "Telecomm : Add ability to block calls if spam" into cm-12.0

parents ff81fc32 4404a85a
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -21,6 +21,10 @@ LOCAL_PROGUARD_ENABLED := optimization
# Workaround for "local variable type mismatch" error.
LOCAL_DX_FLAGS += --no-locals

TELECOMM_SPAM_FILTER ?= $(LOCAL_PATH)/spam_filter

include $(TELECOMM_SPAM_FILTER)/Android.mk

include $(BUILD_PACKAGE)

# Build the test package.

spam_filter/Android.mk

0 → 100644
+1 −0
Original line number Diff line number Diff line
LOCAL_SRC_FILES += $(call all-java-files-under, spam_filter/src)
+19 −0
Original line number Diff line number Diff line
package com.android.server.telecom;

import android.content.Context;

/**
 * Listens for call updates and records whether calls should be blocked based on
 * caller info results.  Can also hang up calls while they are ringing, in case
 * they could not be blocked in time.
 */
public class SpamBlocker extends CallsManagerListenerBase {

    public SpamBlocker(Context context) {
    }

    public synchronized boolean shouldBlock(String number) {
        return false;
    }

}
+13 −0
Original line number Diff line number Diff line
@@ -85,6 +85,7 @@ public final class CallsManager extends Call.ListenerBase {
        void onVideoStateChanged(Call call);
        void onCallSubstateChanged(Call call);
        void onCanAddCallChanged(boolean canAddCall);
        void onProcessIncomingCall(Call call);
    }

    /**
@@ -138,6 +139,7 @@ public final class CallsManager extends Call.ListenerBase {
    private final PhoneAccountRegistrar mPhoneAccountRegistrar;
    private final MissedCallNotifier mMissedCallNotifier;
    private final BlacklistCallNotifier mBlacklistCallNotifier;
    private final SpamBlocker mCallerInfoBlocker;
    private final Set<Call> mLocallyDisconnectingCalls = new HashSet<>();

    private boolean mCanAddCall = true;
@@ -202,6 +204,7 @@ public final class CallsManager extends Call.ListenerBase {
        mDtmfLocalTonePlayer = new DtmfLocalTonePlayer(context);
        mConnectionServiceRepository = new ConnectionServiceRepository(mPhoneAccountRegistrar,
                context);
        mCallerInfoBlocker = new SpamBlocker(context);

        mListeners.add(statusBarNotifier);
        mListeners.add(mCallLogManager);
@@ -216,6 +219,7 @@ public final class CallsManager extends Call.ListenerBase {
        mListeners.add(mHeadsetMediaButton);
        mListeners.add(RespondViaSmsManager.getInstance());
        mListeners.add(mProximitySensorManager);
        mListeners.add(mCallerInfoBlocker);
    }

    @Override
@@ -252,6 +256,12 @@ public final class CallsManager extends Call.ListenerBase {
            mCallLogManager.logCall(incomingCall, Calls.BLACKLIST_TYPE);
            incomingCall.setDisconnectCause(
                    new DisconnectCause(android.telephony.DisconnectCause.CALL_BLACKLISTED));
        } else if (mCallerInfoBlocker.shouldBlock(incomingCall.getNumber())) {
            // TODO: show notification for blocked spam calls
            // TODO: add unique call type for spam
            mCallLogManager.logCall(incomingCall, Calls.BLACKLIST_TYPE);
            incomingCall.setDisconnectCause(
                    new DisconnectCause(android.telephony.DisconnectCause.CALL_BLACKLISTED));
        } else {
            setCallState(incomingCall, CallState.RINGING);
            if (hasMaximumRingingCalls(incomingCall.getTargetPhoneAccount().getId())) {
@@ -407,6 +417,9 @@ public final class CallsManager extends Call.ListenerBase {
        call.setExtras(extras);
        // TODO: Move this to be a part of addCall()
        call.addListener(this);
        for (CallsManagerListener listener : mListeners) {
            listener.onProcessIncomingCall(call);
        }
        call.startCreateConnection(mPhoneAccountRegistrar);
    }

+4 −0
Original line number Diff line number Diff line
@@ -84,4 +84,8 @@ class CallsManagerListenerBase implements CallsManager.CallsManagerListener {
    @Override
    public void onCanAddCallChanged(boolean canAddCall) {
    }

    @Override
    public void onProcessIncomingCall(Call call) {
    }
}