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

Commit 117eace2 authored by Cheng Yang's avatar Cheng Yang Committed by Wink Saville
Browse files

Block incoming SMS in CDMA Emergency Callback Mode

Block incoming SMS in CDMA Emergency Callback Mode

CDMA carriers expect that incoming SMS is not processed by phone while
it is in Emergency Callback Mode, so don't acknowlegde it to the network.
parent 9ba6998b
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -25,12 +25,14 @@ import android.database.Cursor;
import android.database.SQLException;
import android.os.AsyncResult;
import android.os.Message;
import android.os.SystemProperties;
import android.provider.Telephony;
import android.provider.Telephony.Sms.Intents;
import android.preference.PreferenceManager;
import android.util.Config;
import android.util.Log;

import com.android.internal.telephony.TelephonyProperties;
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.SmsHeader;
import com.android.internal.telephony.SmsMessageBase;
@@ -75,6 +77,11 @@ final class CdmaSMSDispatcher extends SMSDispatcher {
            return Intents.RESULT_SMS_GENERIC_ERROR;
        }

        String inEcm=SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE, "false");
        if (inEcm.equals("true")) {
            return Intents.RESULT_SMS_GENERIC_ERROR;
        }

        // Decode BD stream and set sms variables.
        SmsMessage sms = (SmsMessage) smsb;
        sms.parseSms();
@@ -343,6 +350,12 @@ final class CdmaSMSDispatcher extends SMSDispatcher {
    /** {@inheritDoc} */
    protected void acknowledgeLastIncomingSms(boolean success, int result, Message response){
        // FIXME unit test leaves cm == null. this should change

        String inEcm=SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE, "false");
        if (inEcm.equals("true")) {
            return;
        }

        if (mCm != null) {
            mCm.acknowledgeLastIncomingCdmaSms(success, resultToCause(result), response);
        }