1d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd/*
2d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Copyright (C) 2007 Esmertec AG.
3d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Copyright (C) 2007 The Android Open Source Project
4d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd *
5d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Licensed under the Apache License, Version 2.0 (the "License");
6d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * you may not use this file except in compliance with the License.
7d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * You may obtain a copy of the License at
8d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd *
9d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd *      http://www.apache.org/licenses/LICENSE-2.0
10d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd *
11d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Unless required by applicable law or agreed to in writing, software
12d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * distributed under the License is distributed on an "AS IS" BASIS,
13d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * See the License for the specific language governing permissions and
15d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * limitations under the License.
16d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */
17d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
18d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddpackage android.support.v7.mms.pdu;
19d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
20d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddpublic class ReadRecInd extends GenericPdu {
21d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
22d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Constructor, used when composing a M-ReadRec.ind pdu.
23d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
24d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @param from the from value
25d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @param messageId the message ID value
26d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @param mmsVersion current viersion of mms
27d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @param readStatus the read status value
28d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @param to the to value
29d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @throws InvalidHeaderValueException if parameters are invalid.
30d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *         NullPointerException if messageId or to is null.
31d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
32d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public ReadRecInd(EncodedStringValue from,
33d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd                      byte[] messageId,
34d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd                      int mmsVersion,
35d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd                      int readStatus,
36d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd                      EncodedStringValue[] to) throws InvalidHeaderValueException {
37d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        super();
38d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        setMessageType(PduHeaders.MESSAGE_TYPE_READ_REC_IND);
39d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        setFrom(from);
40d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        setMessageId(messageId);
41d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        setMmsVersion(mmsVersion);
42d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        setTo(to);
43d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        setReadStatus(readStatus);
44d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
45d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
46d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
47d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Constructor with given headers.
48d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
49d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @param headers Headers for this PDU.
50d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
51d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    ReadRecInd(PduHeaders headers) {
52d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        super(headers);
53d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
54d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
55d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
56d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Get Date value.
57d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
58d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @return the value
59d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
60d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public long getDate() {
61d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        return mPduHeaders.getLongInteger(PduHeaders.DATE);
62d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
63d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
64d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
65d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Set Date value.
66d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
67d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @param value the value
68d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
69d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public void setDate(long value) {
70d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        mPduHeaders.setLongInteger(value, PduHeaders.DATE);
71d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
72d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
73d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
74d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Get Message-ID value.
75d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
76d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @return the value
77d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
78d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public byte[] getMessageId() {
79d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        return mPduHeaders.getTextString(PduHeaders.MESSAGE_ID);
80d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
81d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
82d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
83d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Set Message-ID value.
84d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
85d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @param value the value
86d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @throws NullPointerException if the value is null.
87d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
88d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public void setMessageId(byte[] value) {
89d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        mPduHeaders.setTextString(value, PduHeaders.MESSAGE_ID);
90d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
91d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
92d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
93d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Get To value.
94d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
95d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @return the value
96d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
97d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public EncodedStringValue[] getTo() {
98d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        return mPduHeaders.getEncodedStringValues(PduHeaders.TO);
99d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
100d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
101d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
102d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Set To value.
103d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
104d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @param value the value
105d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @throws NullPointerException if the value is null.
106d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
107d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public void setTo(EncodedStringValue[] value) {
108d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        mPduHeaders.setEncodedStringValues(value, PduHeaders.TO);
109d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
110d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
111d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
112d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Get X-MMS-Read-status value.
113d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
114d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @return the value
115d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
116d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public int getReadStatus() {
117d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        return mPduHeaders.getOctet(PduHeaders.READ_STATUS);
118d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
119d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
120d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /**
121d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Set X-MMS-Read-status value.
122d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
123d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @param value the value
124d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * @throws InvalidHeaderValueException if the value is invalid.
125d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
126d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    public void setReadStatus(int value) throws InvalidHeaderValueException {
127d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd        mPduHeaders.setOctet(value, PduHeaders.READ_STATUS);
128d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    }
129d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd
130d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd    /*
131d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     * Optional, not supported header fields:
132d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
133d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *     public byte[] getApplicId() {return null;}
134d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *     public void setApplicId(byte[] value) {}
135d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
136d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *     public byte[] getAuxApplicId() {return null;}
137d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *     public void getAuxApplicId(byte[] value) {}
138d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *
139d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *     public byte[] getReplyApplicId() {return 0x00;}
140d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     *     public void setReplyApplicId(byte[] value) {}
141d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd     */
142d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd}
143