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

Commit 36191ef0 authored by Brad Ebinger's avatar Brad Ebinger Committed by Gerrit Code Review
Browse files

Merge "Preprocessing Teleservice Id 0xFDEA SMS WAP"

parents 23b5f9fd cd25329f
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -152,6 +152,12 @@ public class CdmaInboundSmsHandler extends InboundSmsHandler {
                mServiceCategoryProgramHandler.dispatchSmsMessage(sms);
                return Intents.RESULT_SMS_HANDLED;

            case SmsEnvelope.TELESERVICE_FDEA_WAP:
                if (!sms.preprocessCdmaFdeaWap()) {
                    return Intents.RESULT_SMS_HANDLED;
                }
                teleService = SmsEnvelope.TELESERVICE_WAP;
                // fall through
            case SmsEnvelope.TELESERVICE_WAP:
                // handled below, after storage check
                break;
+32 −0
Original line number Diff line number Diff line
@@ -22,9 +22,11 @@ import android.test.suitebuilder.annotation.SmallTest;

import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails;
import com.android.internal.telephony.SmsHeader;
import com.android.internal.telephony.SmsMessageBase;
import com.android.internal.telephony.cdma.SmsMessage;
import com.android.internal.util.HexDump;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;

@@ -1033,4 +1035,34 @@ public class CdmaSmsTest extends AndroidTestCase {
            }
        }
    }

    @SmallTest
    public void testPreprocessFdeaWdpUserData() throws Exception {
        // Refer to https://patents.google.com/patent/CN103906005A/en
        String wdpUserData =
                "0003156D60018103F80008011F805C26B031230B8383634B1B0BA34B7B717BB3732173BB0B81736B" +
                "6B996B6B2B9B9B0B3B2805A43D7C246414C212522A3A522BD31AD3931210046C841B43A3A381D179" +
                "798981719199A1718999B97189897A12522A3A522BD31AD393121004402C081815175C486C018999" +
                "9989B181C9B99991C80454047011AF78";

        SmsMessage cdmaSmsMessage = new SmsMessage();

        Field field = SmsMessageBase.class.getDeclaredField("mUserData");
        field.setAccessible(true);
        field.set(cdmaSmsMessage, HexDump.hexStringToByteArray(wdpUserData));

        BearerData bearerData = new BearerData();
        bearerData.userData = new UserData();

        field = SmsMessage.class.getDeclaredField("mBearerData");
        field.setAccessible(true);
        field.set(cdmaSmsMessage, bearerData);
        bearerData = (BearerData) field.get(cdmaSmsMessage);

        assertTrue(cdmaSmsMessage.preprocessCdmaFdeaWap());
        assertEquals(BearerData.MESSAGE_TYPE_DELIVER, bearerData.messageType);
        assertEquals(0x56D6, bearerData.messageId);
        assertEquals(0x7F, bearerData.userData.numFields);
        assertNotNull(bearerData.userData.payload);
    }
}