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

Commit fdb7097c authored by Luca Stefani's avatar Luca Stefani
Browse files

Telecom: Add sensitive phone numbers hooks

Change-Id: I809ceb65d7e188eb09dd4d85b5fdd716c63c60ef
parent d513f106
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -45,6 +45,8 @@ import com.android.internal.telephony.CallerInfo;
import com.android.internal.telephony.SubscriptionController;
import com.android.server.telecom.callfiltering.CallFilteringResult;

import org.lineageos.internal.phone.SensitivePhoneNumbers;

import java.util.Arrays;
import java.util.Locale;
import java.util.Objects;
@@ -145,6 +147,7 @@ public final class CallLogManager extends CallsManagerListenerBase {

    private Object mLock;
    private String mCurrentCountryIso;
    private SensitivePhoneNumbers mSensitivePhoneNumbers;

    public CallLogManager(Context context, PhoneAccountRegistrar phoneAccountRegistrar,
            MissedCallNotifier missedCallNotifier) {
@@ -154,6 +157,7 @@ public final class CallLogManager extends CallsManagerListenerBase {
        mPhoneAccountRegistrar = phoneAccountRegistrar;
        mMissedCallNotifier = missedCallNotifier;
        mLock = new Object();
        mSensitivePhoneNumbers = new SensitivePhoneNumbers();
    }

    @Override
@@ -389,16 +393,20 @@ public final class CallLogManager extends CallsManagerListenerBase {
        boolean okToLogEmergencyNumber = false;
        CarrierConfigManager configManager = (CarrierConfigManager) mContext.getSystemService(
                Context.CARRIER_CONFIG_SERVICE);
        PersistableBundle configBundle = configManager.getConfigForSubId(
                mPhoneAccountRegistrar.getSubscriptionIdForPhoneAccount(accountHandle));
        int subId = mPhoneAccountRegistrar.getSubscriptionIdForPhoneAccount(accountHandle);
        PersistableBundle configBundle = configManager.getConfigForSubId(subId);
        if (configBundle != null) {
            okToLogEmergencyNumber = configBundle.getBoolean(
                    CarrierConfigManager.KEY_ALLOW_EMERGENCY_NUMBERS_IN_CALL_LOG_BOOL);
        }

        // Don't log sensitive numbers.
        boolean isSensitiveNumber = mSensitivePhoneNumbers.isSensitiveNumber(mContext, number,
                subId);

        // Don't log emergency numbers if the device doesn't allow it.
        final boolean isOkToLogThisCall = (!isEmergency || okToLogEmergencyNumber)
                && !isUnloggableNumber(number, configBundle);
                && !isUnloggableNumber(number, configBundle) && !isSensitiveNumber;

        sendAddCallBroadcast(callType, duration);