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

Commit 9173f3a0 authored by Luca Stefani's avatar Luca Stefani Committed by Wang Han
Browse files

Telecom: Add sensitive phone numbers hooks

Change-Id: I809ceb65d7e188eb09dd4d85b5fdd716c63c60ef

Telecom: Convert to using singleton class

* SenstivePhoneNumbers is now a singleton, so change the
  calls accordingly

Change-Id: I6377f42e4b9c11c0e74345cc65d50476d3c911ba

Telecom: Adapt to the new location of SensitivePhoneNumbers

* For an explanation, see the other patch(es) of the topic

Change-Id: I45f2372dcf3aa20a2606bfb91e3763e2e372d0fc

Change-Id: I49406eb14a7df6e714b6a0948444173285904983
parent 9d83abae
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ filegroup {
// Build the Telecom service.
android_app {
    name: "Telecom",
    static_libs: ["org.lineageos.lib.phone"],
    srcs: [
        ":Telecom-srcs",
        "proto/**/*.proto",
+11 −3
Original line number Diff line number Diff line
@@ -44,6 +44,8 @@ import com.android.internal.annotations.VisibleForTesting;
import android.telecom.CallerInfo;
import com.android.server.telecom.callfiltering.CallFilteringResult;

import org.lineageos.lib.phone.SensitivePhoneNumbers;

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

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

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

    @Override
@@ -417,16 +421,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);