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

Commit db52e9a4 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "VVM filtering should be done after carrier sms app." into nyc-mr1-dev

parents 19045bf1 86da287b
Loading
Loading
Loading
Loading
+20 −21
Original line number Diff line number Diff line
@@ -929,37 +929,41 @@ public abstract class InboundSmsHandler extends StateMachine {
        } else {
            loge("UiccCard not initialized.");
        }
        List<String> systemPackages =
            getSystemAppForIntent(new Intent(CarrierMessagingService.SERVICE_INTERFACE));

        if (carrierPackages != null && carrierPackages.size() == 1) {
            log("Found carrier package.");
            CarrierSmsFilter smsFilter = new CarrierSmsFilter(pdus, destPort,
                    tracker.getFormat(), resultReceiver);
            CarrierSmsFilterCallback smsFilterCallback = new CarrierSmsFilterCallback(smsFilter,
                    userUnlocked, true /* filterWithVvm */);
                    userUnlocked);
            smsFilter.filterSms(carrierPackages.get(0), smsFilterCallback);
            return true;
        }

        if (VisualVoicemailSmsFilter.filter(
                mContext, pdus, tracker.getFormat(), destPort, mPhone.getSubId())) {
            log("Visual voicemail SMS dropped");
            dropSms(resultReceiver);
            return true;
        }
        // It is possible that carrier app is not present as a CarrierPackage, but instead as a
        // system app
        List<String> systemPackages =
                getSystemAppForIntent(new Intent(CarrierMessagingService.SERVICE_INTERFACE));

        if (systemPackages != null && systemPackages.size() == 1) {
            log("Found system package.");
            CarrierSmsFilter smsFilter = new CarrierSmsFilter(pdus, destPort,
                    tracker.getFormat(), resultReceiver);
            CarrierSmsFilterCallback smsFilterCallback = new CarrierSmsFilterCallback(smsFilter,
                    userUnlocked, false);
                    userUnlocked);
            smsFilter.filterSms(systemPackages.get(0), smsFilterCallback);
            return true;
        }
        logv("Unable to find carrier package: " + carrierPackages
                + ", nor systemPackages: " + systemPackages);

        if (VisualVoicemailSmsFilter.filter(
                mContext, pdus, tracker.getFormat(), destPort, mPhone.getSubId())) {
            log("Visual voicemail SMS dropped");
            dropSms(resultReceiver);
            return true;
        }

        return false;
    }

@@ -1387,13 +1391,10 @@ public abstract class InboundSmsHandler extends StateMachine {
    private final class CarrierSmsFilterCallback extends ICarrierMessagingCallback.Stub {
        private final CarrierSmsFilter mSmsFilter;
        private final boolean mUserUnlocked;
        private final boolean mFilterWithVvm;

        CarrierSmsFilterCallback(CarrierSmsFilter smsFilter, boolean userUnlocked,
                boolean filterWithVvm) {
        CarrierSmsFilterCallback(CarrierSmsFilter smsFilter, boolean userUnlocked) {
            mSmsFilter = smsFilter;
            mUserUnlocked = userUnlocked;
            mFilterWithVvm = filterWithVvm;
        }

        /**
@@ -1408,14 +1409,12 @@ public abstract class InboundSmsHandler extends StateMachine {
            try {
                logv("onFilterComplete: result is " + result);
                if ((result & CarrierMessagingService.RECEIVE_OPTIONS_DROP) == 0) {
                    if (mFilterWithVvm) {
                    if (VisualVoicemailSmsFilter.filter(mContext, mSmsFilter.mPdus,
                            mSmsFilter.mSmsFormat, mSmsFilter.mDestPort, mPhone.getSubId())) {
                        log("Visual voicemail SMS dropped");
                        dropSms(mSmsFilter.mSmsBroadcastReceiver);
                        return;
                    }
                    }

                    if (mUserUnlocked) {
                        dispatchSmsDeliveryIntent(mSmsFilter.mPdus, mSmsFilter.mSmsFormat,