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

Unverified Commit 41f44f96 authored by Luca Stefani's avatar Luca Stefani Committed by Michael Bestas
Browse files

Telecom: Add sensitive phone numbers hooks



Co-authored-by: default avatarMichael W <baddaemon87@gmail.com>
Change-Id: I49406eb14a7df6e714b6a0948444173285904983
parent bb49e51b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ android_library {
        "androidx.annotation_annotation",
        "androidx.core_core",
        "telecom_flags_core_java_lib",
        "org.lineageos.lib.phone",
    ],
    resource_dirs: ["res"],
    proto: {
+11 −2
Original line number Diff line number Diff line
@@ -58,6 +58,8 @@ import com.android.server.telecom.callfiltering.CallFilteringResult;
import com.android.server.telecom.flags.FeatureFlags;
import com.android.server.telecom.flags.Flags;

import org.lineageos.lib.phone.SensitivePhoneNumbers;

import java.util.Arrays;
import java.util.Locale;
import java.util.Objects;
@@ -125,6 +127,7 @@ public final class CallLogManager extends CallsManagerListenerBase {
    private Country mCurrentCountry;
    private String mCurrentCountryIso;
    private HandlerExecutor mCountryCodeExecutor;
    private SensitivePhoneNumbers mSensitivePhoneNumbers;

    private final FeatureFlags mFeatureFlags;

@@ -139,6 +142,7 @@ public final class CallLogManager extends CallsManagerListenerBase {
        mAnomalyReporterAdapter = anomalyReporterAdapter;
        mCountryCodeExecutor = new HandlerExecutor(new Handler(Looper.getMainLooper()));
        mFeatureFlags = featureFlags;
        mSensitivePhoneNumbers = SensitivePhoneNumbers.getInstance();
    }

    @Override
@@ -460,16 +464,21 @@ public final class CallLogManager extends CallsManagerListenerBase {
        boolean okToLogEmergencyNumber = false;
        CarrierConfigManager configManager = (CarrierConfigManager) mContext.getSystemService(
                Context.CARRIER_CONFIG_SERVICE);
        int subId = mPhoneAccountRegistrar.getSubscriptionIdForPhoneAccount(accountHandle);
        PersistableBundle configBundle = (configManager != null) ? configManager.getConfigForSubId(
                mPhoneAccountRegistrar.getSubscriptionIdForPhoneAccount(accountHandle)) : null;
                subId) : null;
        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.
        return (!isEmergency || okToLogEmergencyNumber)
                && !isUnloggableNumber(number, configBundle);
                && !isUnloggableNumber(number, configBundle) && !isSensitiveNumber;
    }

    private boolean isUnloggableNumber(String callNumber, PersistableBundle carrierConfig) {