19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007-2008 Esmertec AG. 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007-2008 The Android Open Source Project 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 18a87afd07c0093cab638e9ef9bc2c53c8200ca711Tom Taylorpackage com.google.android.mms.pdu; 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 22a87afd07c0093cab638e9ef9bc2c53c8200ca711Tom Taylorimport com.google.android.mms.InvalidHeaderValueException; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class SendReq extends MultimediaMessagePdu { 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String TAG = "SendReq"; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public SendReq() { 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super(); 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setMessageType(PduHeaders.MESSAGE_TYPE_SEND_REQ); 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setMmsVersion(PduHeaders.CURRENT_MMS_VERSION); 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // FIXME: Content-type must be decided according to whether 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // SMIL part present. 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setContentType("application/vnd.wap.multipart.related".getBytes()); 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setFrom(new EncodedStringValue(PduHeaders.FROM_INSERT_ADDRESS_TOKEN_STR.getBytes())); 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setTransactionId(generateTransactionId()); 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (InvalidHeaderValueException e) { 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Impossible to reach here since all headers we set above are valid. 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Log.e(TAG, "Unexpected InvalidHeaderValueException.", e); 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new RuntimeException(e); 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private byte[] generateTransactionId() { 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String transactionId = "T" + Long.toHexString(System.currentTimeMillis()); 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return transactionId.getBytes(); 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructor, used when composing a M-Send.req pdu. 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param contentType the content type value 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param from the from value 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param mmsVersion current viersion of mms 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param transactionId the transaction-id value 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws InvalidHeaderValueException if parameters are invalid. 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * NullPointerException if contentType, form or transactionId is null. 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public SendReq(byte[] contentType, 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EncodedStringValue from, 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mmsVersion, 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte[] transactionId) throws InvalidHeaderValueException { 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super(); 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setMessageType(PduHeaders.MESSAGE_TYPE_SEND_REQ); 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setContentType(contentType); 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setFrom(from); 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setMmsVersion(mmsVersion); 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setTransactionId(transactionId); 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructor with given headers. 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param headers Headers for this PDU. 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SendReq(PduHeaders headers) { 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super(headers); 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructor with given headers and body 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param headers Headers for this PDU. 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param body Body of this PDu. 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SendReq(PduHeaders headers, PduBody body) { 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super(headers, body); 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get Bcc value. 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public EncodedStringValue[] getBcc() { 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPduHeaders.getEncodedStringValues(PduHeaders.BCC); 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Add a "BCC" value. 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the value 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws NullPointerException if the value is null. 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void addBcc(EncodedStringValue value) { 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPduHeaders.appendEncodedStringValue(value, PduHeaders.BCC); 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set "BCC" value. 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the value 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws NullPointerException if the value is null. 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setBcc(EncodedStringValue[] value) { 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPduHeaders.setEncodedStringValues(value, PduHeaders.BCC); 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get CC value. 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public EncodedStringValue[] getCc() { 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPduHeaders.getEncodedStringValues(PduHeaders.CC); 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Add a "CC" value. 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the value 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws NullPointerException if the value is null. 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void addCc(EncodedStringValue value) { 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPduHeaders.appendEncodedStringValue(value, PduHeaders.CC); 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set "CC" value. 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the value 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws NullPointerException if the value is null. 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setCc(EncodedStringValue[] value) { 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPduHeaders.setEncodedStringValues(value, PduHeaders.CC); 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get Content-type value. 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public byte[] getContentType() { 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPduHeaders.getTextString(PduHeaders.CONTENT_TYPE); 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set Content-type value. 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the value 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws NullPointerException if the value is null. 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setContentType(byte[] value) { 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPduHeaders.setTextString(value, PduHeaders.CONTENT_TYPE); 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get X-Mms-Delivery-Report value. 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getDeliveryReport() { 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPduHeaders.getOctet(PduHeaders.DELIVERY_REPORT); 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set X-Mms-Delivery-Report value. 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the value 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws InvalidHeaderValueException if the value is invalid. 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setDeliveryReport(int value) throws InvalidHeaderValueException { 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPduHeaders.setOctet(value, PduHeaders.DELIVERY_REPORT); 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get X-Mms-Expiry value. 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Expiry-value = Value-length 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (Absolute-token Date-value | Relative-token Delta-seconds-value) 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public long getExpiry() { 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPduHeaders.getLongInteger(PduHeaders.EXPIRY); 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set X-Mms-Expiry value. 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the value 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setExpiry(long value) { 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPduHeaders.setLongInteger(value, PduHeaders.EXPIRY); 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 209a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor * Get X-Mms-MessageSize value. 210a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor * 211a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor * Expiry-value = size of message 212a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor * 213a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor * @return the value 214a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor */ 215a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor public long getMessageSize() { 216a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor return mPduHeaders.getLongInteger(PduHeaders.MESSAGE_SIZE); 217a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor } 218a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor 219a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor /** 220a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor * Set X-Mms-MessageSize value. 221a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor * 222a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor * @param value the value 223a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor */ 224a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor public void setMessageSize(long value) { 225a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor mPduHeaders.setLongInteger(value, PduHeaders.MESSAGE_SIZE); 226a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor } 227a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor 228a67c8cd581e00a28661f7b727bf74727c9a7f688Tom Taylor /** 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get X-Mms-Message-Class value. 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Message-class-value = Class-identifier | Token-text 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Class-identifier = Personal | Advertisement | Informational | Auto 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public byte[] getMessageClass() { 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPduHeaders.getTextString(PduHeaders.MESSAGE_CLASS); 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set X-Mms-Message-Class value. 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the value 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws NullPointerException if the value is null. 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setMessageClass(byte[] value) { 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPduHeaders.setTextString(value, PduHeaders.MESSAGE_CLASS); 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get X-Mms-Read-Report value. 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getReadReport() { 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPduHeaders.getOctet(PduHeaders.READ_REPORT); 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set X-Mms-Read-Report value. 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the value 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws InvalidHeaderValueException if the value is invalid. 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setReadReport(int value) throws InvalidHeaderValueException { 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPduHeaders.setOctet(value, PduHeaders.READ_REPORT); 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set "To" value. 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the value 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws NullPointerException if the value is null. 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setTo(EncodedStringValue[] value) { 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPduHeaders.setEncodedStringValues(value, PduHeaders.TO); 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get X-Mms-Transaction-Id field value. 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the X-Mms-Report-Allowed value 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public byte[] getTransactionId() { 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPduHeaders.getTextString(PduHeaders.TRANSACTION_ID); 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set X-Mms-Transaction-Id field value. 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the value 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws NullPointerException if the value is null. 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setTransactionId(byte[] value) { 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPduHeaders.setTextString(value, PduHeaders.TRANSACTION_ID); 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Optional, not supported header fields: 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public byte getAdaptationAllowed() {return 0}; 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public void setAdaptationAllowed(btye value) {}; 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public byte[] getApplicId() {return null;} 3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public void setApplicId(byte[] value) {} 3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public byte[] getAuxApplicId() {return null;} 3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public void getAuxApplicId(byte[] value) {} 3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public byte getContentClass() {return 0x00;} 3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public void setApplicId(byte value) {} 3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public long getDeliveryTime() {return 0}; 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public void setDeliveryTime(long value) {}; 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public byte getDrmContent() {return 0x00;} 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public void setDrmContent(byte value) {} 3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public MmFlagsValue getMmFlags() {return null;} 3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public void setMmFlags(MmFlagsValue value) {} 3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public MmStateValue getMmState() {return null;} 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public void getMmState(MmStateValue value) {} 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public byte[] getReplyApplicId() {return 0x00;} 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public void setReplyApplicId(byte[] value) {} 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public byte getReplyCharging() {return 0x00;} 3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public void setReplyCharging(byte value) {} 3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public byte getReplyChargingDeadline() {return 0x00;} 3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public void setReplyChargingDeadline(byte value) {} 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public byte[] getReplyChargingId() {return 0x00;} 3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public void setReplyChargingId(byte[] value) {} 3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public long getReplyChargingSize() {return 0;} 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public void setReplyChargingSize(long value) {} 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public byte[] getReplyApplicId() {return 0x00;} 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public void setReplyApplicId(byte[] value) {} 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public byte getStore() {return 0x00;} 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public void setStore(byte value) {} 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 346