10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/*
20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2008 The Android Open Source Project
30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License");
50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License.
60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at
70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *      http://www.apache.org/licenses/LICENSE-2.0
90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software
110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS,
120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and
140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License.
150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage android.telephony.gsm;
180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
190825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.TelephonyManager;
200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
210825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.GsmAlphabet;
220825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.SmsHeader;
230825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.SmsMessageBase;
240825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.SmsMessageBase.SubmitPduBase;
250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
260825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.Arrays;
270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
280825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport static android.telephony.TelephonyManager.PHONE_TYPE_CDMA;
290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/**
320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * A Short Message Service message.
330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Replaced by android.telephony.SmsMessage that supports both GSM and CDMA.
340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville@Deprecated
360825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic class SmsMessage {
370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * SMS Class enumeration.
390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * See TS 23.038.
400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public enum MessageClass{
440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        UNKNOWN, CLASS_0, CLASS_1, CLASS_2, CLASS_3;
450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Unknown encoding scheme (see TS 23.038)
480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated public static final int ENCODING_UNKNOWN = 0;
510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** 7-bit encoding scheme (see TS 23.038)
530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated public static final int ENCODING_7BIT = 1;
560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** 8-bit encoding scheme (see TS 23.038)
580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated public static final int ENCODING_8BIT = 2;
610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** 16-bit encoding scheme (see TS 23.038)
630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated public static final int ENCODING_16BIT = 3;
660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** The maximum number of payload bytes per message
680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated public static final int MAX_USER_DATA_BYTES = 140;
710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * The maximum number of payload bytes per message if a user data header
740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * is present.  This assumes the header only contains the
750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * CONCATENATED_8_BIT_REFERENCE element.
760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @hide pending API Council approval to extend the public API
790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated public static final int MAX_USER_DATA_BYTES_WITH_HEADER = 134;
810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** The maximum number of payload septets per message
830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated public static final int MAX_USER_DATA_SEPTETS = 160;
860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * The maximum number of payload septets per message if a user data header
890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * is present.  This assumes the header only contains the
900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * CONCATENATED_8_BIT_REFERENCE element.
910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated public static final int MAX_USER_DATA_SEPTETS_WITH_HEADER = 153;
940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Contains actual SmsMessage. Only public for debugging and for framework layer.
960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * {@hide}
980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated public SmsMessageBase mWrappedSmsMessage;
1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** @deprecated Use android.telephony.SmsMessage. */
1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static class SubmitPdu {
1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /** @deprecated Use android.telephony.SmsMessage. */
1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        @Deprecated public byte[] encodedScAddress; // Null if not applicable.
1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /** @deprecated Use android.telephony.SmsMessage. */
1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        @Deprecated public byte[] encodedMessage;
1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        //Constructor
1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /** @deprecated Use android.telephony.SmsMessage. */
1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        @Deprecated
1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public SubmitPdu() {
1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /** @deprecated Use android.telephony.SmsMessage.
1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * {@hide}
1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        @Deprecated
1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        protected SubmitPdu(SubmitPduBase spb) {
1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.encodedMessage = spb.encodedMessage;
1210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            this.encodedScAddress = spb.encodedScAddress;
1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /** @deprecated Use android.telephony.SmsMessage. */
125cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville        @Override
1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        @Deprecated
1270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public String toString() {
1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return "SubmitPdu: encodedScAddress = "
1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    + Arrays.toString(encodedScAddress)
1300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    + ", encodedMessage = "
1310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    + Arrays.toString(encodedMessage);
1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    // Constructor
1360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** @deprecated Use android.telephony.SmsMessage. */
1370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
1380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public SmsMessage() {
1390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        this(getSmsFacility());
1400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private SmsMessage(SmsMessageBase smb) {
1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mWrappedSmsMessage = smb;
1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
1470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Create an SmsMessage from a raw PDU.
1480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static SmsMessage createFromPdu(byte[] pdu) {
1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        SmsMessageBase wrappedMessage;
1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        int activePhone = TelephonyManager.getDefault().getCurrentPhoneType();
1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (PHONE_TYPE_CDMA == activePhone) {
1560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            wrappedMessage = com.android.internal.telephony.cdma.SmsMessage.createFromPdu(pdu);
1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } else {
1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            wrappedMessage = com.android.internal.telephony.gsm.SmsMessage.createFromPdu(pdu);
1590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return new SmsMessage(wrappedMessage);
1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Get the TP-Layer-Length for the given SMS-SUBMIT PDU Basically, the
1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * length in bytes (not hex chars) less the SMSC header
1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static int getTPLayerLengthForPDU(String pdu) {
1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        int activePhone = TelephonyManager.getDefault().getCurrentPhoneType();
1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (PHONE_TYPE_CDMA == activePhone) {
1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return com.android.internal.telephony.cdma.SmsMessage.getTPLayerLengthForPDU(pdu);
1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } else {
1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return com.android.internal.telephony.gsm.SmsMessage.getTPLayerLengthForPDU(pdu);
1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Calculates the number of SMS's required to encode the message body and
1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * the number of characters remaining until the next message, given the
1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * current encoding.
1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param messageBody the message to encode
1860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param use7bitOnly if true, characters that are not part of the GSM
1870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         alphabet are counted as a single space char.  If false, a
1880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         messageBody containing non-GSM alphabet characters is calculated
1890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         for 16-bit encoding.
1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return an int[4] with int[0] being the number of SMS's required, int[1]
1910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         the number of code units used, and int[2] is the number of code
1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         units remaining until the next message. int[3] is the encoding
1930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         type that should be used for the message.
1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
1950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
1970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static int[] calculateLength(CharSequence messageBody, boolean use7bitOnly) {
1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        GsmAlphabet.TextEncodingDetails ted =
1990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                com.android.internal.telephony.gsm.SmsMessage
2000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        .calculateLength(messageBody, use7bitOnly);
2010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        int ret[] = new int[4];
2020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        ret[0] = ted.msgCount;
2030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        ret[1] = ted.codeUnitCount;
2040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        ret[2] = ted.codeUnitsRemaining;
2050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        ret[3] = ted.codeUnitSize;
2060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return ret;
2070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
2100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Calculates the number of SMS's required to encode the message body and
2110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * the number of characters remaining until the next message, given the
2120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * current encoding.
2130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
2140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param messageBody the message to encode
2150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param use7bitOnly if true, characters that are not part of the GSM
2160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         alphabet are counted as a single space char.  If false, a
2170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         messageBody containing non-GSM alphabet characters is calculated
2180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         for 16-bit encoding.
2190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return an int[4] with int[0] being the number of SMS's required, int[1]
2200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         the number of code units used, and int[2] is the number of code
2210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         units remaining until the next message. int[3] is the encoding
2220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         type that should be used for the message.
2230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
2240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
2260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static int[] calculateLength(String messageBody, boolean use7bitOnly) {
2270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return calculateLength((CharSequence)messageBody, use7bitOnly);
2280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
2310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Get an SMS-SUBMIT PDU for a destination address and a message
2320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
2330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param scAddress Service Centre address.  Null means use default.
2340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return a <code>SubmitPdu</code> containing the encoded SC
2350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         address, if applicable, and the encoded message.
2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         Returns null on encode error.
2370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
2380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @hide
2390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
2410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static SubmitPdu getSubmitPdu(String scAddress,
2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            String destinationAddress, String message,
2430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            boolean statusReportRequested, byte[] header) {
2440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        SubmitPduBase spb;
2450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        int activePhone = TelephonyManager.getDefault().getCurrentPhoneType();
2460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (PHONE_TYPE_CDMA == activePhone) {
2480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            spb = com.android.internal.telephony.cdma.SmsMessage.getSubmitPdu(scAddress,
2490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    destinationAddress, message, statusReportRequested,
2500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    SmsHeader.fromByteArray(header));
2510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } else {
2520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            spb = com.android.internal.telephony.gsm.SmsMessage.getSubmitPdu(scAddress,
2530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    destinationAddress, message, statusReportRequested, header);
2540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return new SubmitPdu(spb);
2570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
2600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Get an SMS-SUBMIT PDU for a destination address and a message
2610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
2620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param scAddress Service Centre address.  Null means use default.
2630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return a <code>SubmitPdu</code> containing the encoded SC
2640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         address, if applicable, and the encoded message.
2650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         Returns null on encode error.
2660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
2670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
2690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static SubmitPdu getSubmitPdu(String scAddress,
2700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            String destinationAddress, String message, boolean statusReportRequested) {
2710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        SubmitPduBase spb;
2720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        int activePhone = TelephonyManager.getDefault().getCurrentPhoneType();
2730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (PHONE_TYPE_CDMA == activePhone) {
2750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            spb = com.android.internal.telephony.cdma.SmsMessage.getSubmitPdu(scAddress,
2760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    destinationAddress, message, statusReportRequested, null);
2770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } else {
2780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            spb = com.android.internal.telephony.gsm.SmsMessage.getSubmitPdu(scAddress,
2790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    destinationAddress, message, statusReportRequested);
2800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return new SubmitPdu(spb);
2830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
2860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Get an SMS-SUBMIT PDU for a data message to a destination address &amp; port
2870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
2880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param scAddress Service Centre address. null == use default
2890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param destinationAddress the address of the destination for the message
2900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param destinationPort the port to deliver the message to at the
2910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *        destination
2920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param data the dat for the message
2930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return a <code>SubmitPdu</code> containing the encoded SC
2940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         address, if applicable, and the encoded message.
2950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         Returns null on encode error.
2960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
2970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
2990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static SubmitPdu getSubmitPdu(String scAddress,
3000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            String destinationAddress, short destinationPort, byte[] data,
3010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            boolean statusReportRequested) {
3020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        SubmitPduBase spb;
3030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        int activePhone = TelephonyManager.getDefault().getCurrentPhoneType();
3040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (PHONE_TYPE_CDMA == activePhone) {
3060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            spb = com.android.internal.telephony.cdma.SmsMessage.getSubmitPdu(scAddress,
3070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    destinationAddress, destinationPort, data, statusReportRequested);
3080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } else {
3090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            spb = com.android.internal.telephony.gsm.SmsMessage.getSubmitPdu(scAddress,
3100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    destinationAddress, destinationPort, data, statusReportRequested);
3110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
3120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return new SubmitPdu(spb);
3140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
3170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Returns the address of the SMS service center that relayed this message
3180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * or null if there is none.
3190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
3200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
3210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
3220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getServiceCenterAddress() {
3230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.getServiceCenterAddress();
3240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
3270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Returns the originating address (sender) of this SMS message in String
3280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * form or null if unavailable
3290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
3300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
3310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
3320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getOriginatingAddress() {
3330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.getOriginatingAddress();
3340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
3370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Returns the originating address, or email from address if this message
3380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * was from an email gateway. Returns null if originating address
3390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * unavailable.
3400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
3410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
3420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
3430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getDisplayOriginatingAddress() {
3440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.getDisplayOriginatingAddress();
3450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
3480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Returns the message body as a String, if it exists and is text based.
3490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return message body is there is one, otherwise null
3500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
3510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
3520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
3530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getMessageBody() {
3540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.getMessageBody();
3550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
3580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Returns the class of this message.
3590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
3600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
3610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
3620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public MessageClass getMessageClass() {
3630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        int index = mWrappedSmsMessage.getMessageClass().ordinal();
3640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return MessageClass.values()[index];
3660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
3690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Returns the message body, or email message body if this message was from
3700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * an email gateway. Returns null if message body unavailable.
3710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
3720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
3730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
3740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getDisplayMessageBody() {
3750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.getDisplayMessageBody();
3760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
3790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Unofficial convention of a subject line enclosed in parens empty string
3800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * if not present
3810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
3820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
3830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
3840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getPseudoSubject() {
3850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.getPseudoSubject();
3860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
3890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Returns the service centre timestamp in currentTimeMillis() format
3900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
3910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
3920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
3930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public long getTimestampMillis() {
3940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.getTimestampMillis();
3950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
3960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
3980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Returns true if message is an email.
3990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
4000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return true if this message came through an email gateway and email
4010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         sender / subject / parsed body are available
4020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
4030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
4040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
4050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean isEmail() {
4060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.isEmail();
4070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     /**
4100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return if isEmail() is true, body of the email sent through the gateway.
4110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         null otherwise
4120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
4130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
4140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
4150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getEmailBody() {
4160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.getEmailBody();
4170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
4200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return if isEmail() is true, email from address of email sent through
4210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         the gateway. null otherwise
4220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
4230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
4240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
4250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String getEmailFrom() {
4260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.getEmailFrom();
4270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
4300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Get protocol identifier.
4310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
4320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
4330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
4340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public int getProtocolIdentifier() {
4350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.getProtocolIdentifier();
4360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
4390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * See TS 23.040 9.2.3.9 returns true if this is a "replace short message" SMS
4400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
4410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
4420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
4430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean isReplace() {
4440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.isReplace();
4450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
4480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Returns true for CPHS MWI toggle message.
4490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
4500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return true if this is a CPHS MWI toggle message See CPHS 4.2 section B.4.2
4510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
4520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
4530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
4540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean isCphsMwiMessage() {
4550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.isCphsMwiMessage();
4560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
4590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * returns true if this message is a CPHS voicemail / message waiting
4600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * indicator (MWI) clear message
4610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
4620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
4630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
4640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean isMWIClearMessage() {
4650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.isMWIClearMessage();
4660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
4690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * returns true if this message is a CPHS voicemail / message waiting
4700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * indicator (MWI) set message
4710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
4720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
4730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
4740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean isMWISetMessage() {
4750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.isMWISetMessage();
4760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
4790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * returns true if this message is a "Message Waiting Indication Group:
4800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Discard Message" notification and should not be stored.
4810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
4820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
4830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
4840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean isMwiDontStore() {
4850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.isMwiDontStore();
4860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
4890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * returns the user data section minus the user data header if one was present.
4900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
4910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
4920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
4930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public byte[] getUserData() {
4940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.getUserData();
4950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
4960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /* Not part of the SDK interface and only needed by specific classes:
4980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville       protected SmsHeader getUserDataHeader()
4990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    */
5000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
5020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Returns the raw PDU for the message.
5030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
5040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return the raw PDU for the message.
5050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
5060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
5070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
5080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public byte[] getPdu() {
5090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.getPdu();
5100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
5130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Returns the status of the message on the SIM (read, unread, sent, unsent).
5140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
5150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return the status of the message on the SIM.  These are:
5160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         SmsManager.STATUS_ON_SIM_FREE
5170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         SmsManager.STATUS_ON_SIM_READ
5180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         SmsManager.STATUS_ON_SIM_UNREAD
5190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         SmsManager.STATUS_ON_SIM_SEND
5200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         SmsManager.STATUS_ON_SIM_UNSENT
5210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage and getStatusOnIcc instead.
5220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
5230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
5240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public int getStatusOnSim() {
5250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.getStatusOnIcc();
5260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
5290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Returns the status of the message on the ICC (read, unread, sent, unsent).
5300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
5310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return the status of the message on the ICC.  These are:
5320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         SmsManager.STATUS_ON_ICC_FREE
5330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         SmsManager.STATUS_ON_ICC_READ
5340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         SmsManager.STATUS_ON_ICC_UNREAD
5350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         SmsManager.STATUS_ON_ICC_SEND
5360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         SmsManager.STATUS_ON_ICC_UNSENT
5370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
5380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @hide
5390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
5400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
5410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public int getStatusOnIcc() {
5420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.getStatusOnIcc();
5440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
5470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Returns the record index of the message on the SIM (1-based index).
5480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return the record index of the message on the SIM, or -1 if this
5490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         SmsMessage was not created from a SIM SMS EF record.
5500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage and getIndexOnIcc instead.
5510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
5520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
5530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public int getIndexOnSim() {
5540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.getIndexOnIcc();
5550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
5580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Returns the record index of the message on the ICC (1-based index).
5590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return the record index of the message on the ICC, or -1 if this
5600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         SmsMessage was not created from a ICC SMS EF record.
5610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
5620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @hide
5630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
5640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
5650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public int getIndexOnIcc() {
5660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.getIndexOnIcc();
5680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
5710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * GSM:
5720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * For an SMS-STATUS-REPORT message, this returns the status field from
5730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * the status report.  This field indicates the status of a previously
5740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * submitted SMS, if requested.  See TS 23.040, 9.2.3.15 TP-Status for a
5750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * description of values.
5760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * CDMA:
5770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * For not interfering with status codes from GSM, the value is
5780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * shifted to the bits 31-16.
5790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * The value is composed of an error class (bits 25-24) and a status code (bits 23-16).
5800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Possible codes are described in C.S0015-B, v2.0, 4.5.21.
5810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
5820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return 0 indicates the previously sent message was received.
5830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         See TS 23.040, 9.9.2.3.15 and C.S0015-B, v2.0, 4.5.21
5840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *         for a description of other possible values.
5850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
5860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
5870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
5880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public int getStatus() {
5890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.getStatus();
5900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
5910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
5930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Return true iff the message is a SMS-STATUS-REPORT message.
5940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
5950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
5960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
5970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean isStatusReportMessage() {
5980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.isStatusReportMessage();
5990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
6020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Returns true iff the <code>TP-Reply-Path</code> bit is set in
6030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * this message.
6040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
6050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
6060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
6070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean isReplyPathPresent() {
6080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mWrappedSmsMessage.isReplyPathPresent();
6090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** This method returns the reference to a specific
6120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  SmsMessage object, which is used for accessing its static methods.
6130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return Specific SmsMessage.
6140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Use android.telephony.SmsMessage.
6150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
616cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Deprecated
6170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private static final SmsMessageBase getSmsFacility(){
6180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        int activePhone = TelephonyManager.getDefault().getCurrentPhoneType();
6190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (PHONE_TYPE_CDMA == activePhone) {
6200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return new com.android.internal.telephony.cdma.SmsMessage();
6210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } else {
6220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return new com.android.internal.telephony.gsm.SmsMessage();
6230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
6240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
6250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
626