1 /*
2  * Copyright (C) 2007 Esmertec AG.
3  * Copyright (C) 2007 The Android Open Source Project
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 package com.google.android.mms.pdu;
19 
20 import android.compat.annotation.UnsupportedAppUsage;
21 
22 import com.google.android.mms.InvalidHeaderValueException;
23 
24 /**
25  * M-Retrieve.conf Pdu.
26  */
27 public class RetrieveConf extends MultimediaMessagePdu {
28     /**
29      * Empty constructor.
30      * Since the Pdu corresponding to this class is constructed
31      * by the Proxy-Relay server, this class is only instantiated
32      * by the Pdu Parser.
33      *
34      * @throws InvalidHeaderValueException if error occurs.
35      */
36     @UnsupportedAppUsage
RetrieveConf()37     public RetrieveConf() throws InvalidHeaderValueException {
38         super();
39         setMessageType(PduHeaders.MESSAGE_TYPE_RETRIEVE_CONF);
40     }
41 
42     /**
43      * Constructor with given headers.
44      *
45      * @param headers Headers for this PDU.
46      */
RetrieveConf(PduHeaders headers)47     RetrieveConf(PduHeaders headers) {
48         super(headers);
49     }
50 
51     /**
52      * Constructor with given headers and body
53      *
54      * @param headers Headers for this PDU.
55      * @param body Body of this PDu.
56      */
57     @UnsupportedAppUsage
RetrieveConf(PduHeaders headers, PduBody body)58     RetrieveConf(PduHeaders headers, PduBody body) {
59         super(headers, body);
60     }
61 
62     /**
63      * Get CC value.
64      *
65      * @return the value
66      */
67     @UnsupportedAppUsage
getCc()68     public EncodedStringValue[] getCc() {
69         return mPduHeaders.getEncodedStringValues(PduHeaders.CC);
70     }
71 
72     /**
73      * Add a "CC" value.
74      *
75      * @param value the value
76      * @throws NullPointerException if the value is null.
77      */
78     @UnsupportedAppUsage
addCc(EncodedStringValue value)79     public void addCc(EncodedStringValue value) {
80         mPduHeaders.appendEncodedStringValue(value, PduHeaders.CC);
81     }
82 
83     /**
84      * Get Content-type value.
85      *
86      * @return the value
87      */
88     @UnsupportedAppUsage
getContentType()89     public byte[] getContentType() {
90         return mPduHeaders.getTextString(PduHeaders.CONTENT_TYPE);
91     }
92 
93     /**
94      * Set Content-type value.
95      *
96      * @param value the value
97      * @throws NullPointerException if the value is null.
98      */
99     @UnsupportedAppUsage
setContentType(byte[] value)100     public void setContentType(byte[] value) {
101         mPduHeaders.setTextString(value, PduHeaders.CONTENT_TYPE);
102     }
103 
104     /**
105      * Get X-Mms-Delivery-Report value.
106      *
107      * @return the value
108      */
109     @UnsupportedAppUsage
getDeliveryReport()110     public int getDeliveryReport() {
111         return mPduHeaders.getOctet(PduHeaders.DELIVERY_REPORT);
112     }
113 
114     /**
115      * Set X-Mms-Delivery-Report value.
116      *
117      * @param value the value
118      * @throws InvalidHeaderValueException if the value is invalid.
119      */
120     @UnsupportedAppUsage
setDeliveryReport(int value)121     public void setDeliveryReport(int value) throws InvalidHeaderValueException {
122         mPduHeaders.setOctet(value, PduHeaders.DELIVERY_REPORT);
123     }
124 
125     /**
126      * Get From value.
127      * From-value = Value-length
128      *      (Address-present-token Encoded-string-value | Insert-address-token)
129      *
130      * @return the value
131      */
132     @UnsupportedAppUsage
getFrom()133     public EncodedStringValue getFrom() {
134        return mPduHeaders.getEncodedStringValue(PduHeaders.FROM);
135     }
136 
137     /**
138      * Set From value.
139      *
140      * @param value the value
141      * @throws NullPointerException if the value is null.
142      */
143     @UnsupportedAppUsage
setFrom(EncodedStringValue value)144     public void setFrom(EncodedStringValue value) {
145         mPduHeaders.setEncodedStringValue(value, PduHeaders.FROM);
146     }
147 
148     /**
149      * Get X-Mms-Message-Class value.
150      * Message-class-value = Class-identifier | Token-text
151      * Class-identifier = Personal | Advertisement | Informational | Auto
152      *
153      * @return the value
154      */
155     @UnsupportedAppUsage
getMessageClass()156     public byte[] getMessageClass() {
157         return mPduHeaders.getTextString(PduHeaders.MESSAGE_CLASS);
158     }
159 
160     /**
161      * Set X-Mms-Message-Class value.
162      *
163      * @param value the value
164      * @throws NullPointerException if the value is null.
165      */
166     @UnsupportedAppUsage
setMessageClass(byte[] value)167     public void setMessageClass(byte[] value) {
168         mPduHeaders.setTextString(value, PduHeaders.MESSAGE_CLASS);
169     }
170 
171     /**
172      * Get Message-ID value.
173      *
174      * @return the value
175      */
176     @UnsupportedAppUsage
getMessageId()177     public byte[] getMessageId() {
178         return mPduHeaders.getTextString(PduHeaders.MESSAGE_ID);
179     }
180 
181     /**
182      * Set Message-ID value.
183      *
184      * @param value the value
185      * @throws NullPointerException if the value is null.
186      */
187     @UnsupportedAppUsage
setMessageId(byte[] value)188     public void setMessageId(byte[] value) {
189         mPduHeaders.setTextString(value, PduHeaders.MESSAGE_ID);
190     }
191 
192     /**
193      * Get X-Mms-Read-Report value.
194      *
195      * @return the value
196      */
197     @UnsupportedAppUsage
getReadReport()198     public int getReadReport() {
199         return mPduHeaders.getOctet(PduHeaders.READ_REPORT);
200     }
201 
202     /**
203      * Set X-Mms-Read-Report value.
204      *
205      * @param value the value
206      * @throws InvalidHeaderValueException if the value is invalid.
207      */
208     @UnsupportedAppUsage
setReadReport(int value)209     public void setReadReport(int value) throws InvalidHeaderValueException {
210         mPduHeaders.setOctet(value, PduHeaders.READ_REPORT);
211     }
212 
213     /**
214      * Get X-Mms-Retrieve-Status value.
215      *
216      * @return the value
217      */
218     @UnsupportedAppUsage
getRetrieveStatus()219     public int getRetrieveStatus() {
220         return mPduHeaders.getOctet(PduHeaders.RETRIEVE_STATUS);
221     }
222 
223     /**
224      * Set X-Mms-Retrieve-Status value.
225      *
226      * @param value the value
227      * @throws InvalidHeaderValueException if the value is invalid.
228      */
229     @UnsupportedAppUsage
setRetrieveStatus(int value)230     public void setRetrieveStatus(int value) throws InvalidHeaderValueException {
231         mPduHeaders.setOctet(value, PduHeaders.RETRIEVE_STATUS);
232     }
233 
234     /**
235      * Get X-Mms-Retrieve-Text value.
236      *
237      * @return the value
238      */
239     @UnsupportedAppUsage
getRetrieveText()240     public EncodedStringValue getRetrieveText() {
241         return mPduHeaders.getEncodedStringValue(PduHeaders.RETRIEVE_TEXT);
242     }
243 
244     /**
245      * Set X-Mms-Retrieve-Text value.
246      *
247      * @param value the value
248      * @throws NullPointerException if the value is null.
249      */
250     @UnsupportedAppUsage
setRetrieveText(EncodedStringValue value)251     public void setRetrieveText(EncodedStringValue value) {
252         mPduHeaders.setEncodedStringValue(value, PduHeaders.RETRIEVE_TEXT);
253     }
254 
255     /**
256      * Get X-Mms-Transaction-Id.
257      *
258      * @return the value
259      */
260     @UnsupportedAppUsage
getTransactionId()261     public byte[] getTransactionId() {
262         return mPduHeaders.getTextString(PduHeaders.TRANSACTION_ID);
263     }
264 
265     /**
266      * Set X-Mms-Transaction-Id.
267      *
268      * @param value the value
269      * @throws NullPointerException if the value is null.
270      */
271     @UnsupportedAppUsage
setTransactionId(byte[] value)272     public void setTransactionId(byte[] value) {
273         mPduHeaders.setTextString(value, PduHeaders.TRANSACTION_ID);
274     }
275 
276     /*
277      * Optional, not supported header fields:
278      *
279      *     public byte[] getApplicId() {return null;}
280      *     public void setApplicId(byte[] value) {}
281      *
282      *     public byte[] getAuxApplicId() {return null;}
283      *     public void getAuxApplicId(byte[] value) {}
284      *
285      *     public byte getContentClass() {return 0x00;}
286      *     public void setApplicId(byte value) {}
287      *
288      *     public byte getDrmContent() {return 0x00;}
289      *     public void setDrmContent(byte value) {}
290      *
291      *     public byte getDistributionIndicator() {return 0x00;}
292      *     public void setDistributionIndicator(byte value) {}
293      *
294      *     public PreviouslySentByValue getPreviouslySentBy() {return null;}
295      *     public void setPreviouslySentBy(PreviouslySentByValue value) {}
296      *
297      *     public PreviouslySentDateValue getPreviouslySentDate() {}
298      *     public void setPreviouslySentDate(PreviouslySentDateValue value) {}
299      *
300      *     public MmFlagsValue getMmFlags() {return null;}
301      *     public void setMmFlags(MmFlagsValue value) {}
302      *
303      *     public MmStateValue getMmState() {return null;}
304      *     public void getMmState(MmStateValue value) {}
305      *
306      *     public byte[] getReplaceId() {return 0x00;}
307      *     public void setReplaceId(byte[] value) {}
308      *
309      *     public byte[] getReplyApplicId() {return 0x00;}
310      *     public void setReplyApplicId(byte[] value) {}
311      *
312      *     public byte getReplyCharging() {return 0x00;}
313      *     public void setReplyCharging(byte value) {}
314      *
315      *     public byte getReplyChargingDeadline() {return 0x00;}
316      *     public void setReplyChargingDeadline(byte value) {}
317      *
318      *     public byte[] getReplyChargingId() {return 0x00;}
319      *     public void setReplyChargingId(byte[] value) {}
320      *
321      *     public long getReplyChargingSize() {return 0;}
322      *     public void setReplyChargingSize(long value) {}
323      */
324 }
325