1d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd/* 2d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Copyright (C) 2007-2008 Esmertec AG. 3d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Copyright (C) 2007-2008 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 Doddimport android.util.Log; 21d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 22d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddpublic class SendReq extends MultimediaMessagePdu { 23d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd private static final String TAG = "SendReq"; 24d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 25d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public SendReq() { 26d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd super(); 27d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 28d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd try { 29d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd setMessageType(PduHeaders.MESSAGE_TYPE_SEND_REQ); 30d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd setMmsVersion(PduHeaders.CURRENT_MMS_VERSION); 31d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // FIXME: Content-type must be decided according to whether 32d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // SMIL part present. 33d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd setContentType("application/vnd.wap.multipart.related".getBytes()); 34d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd setFrom(new EncodedStringValue(PduHeaders.FROM_INSERT_ADDRESS_TOKEN_STR.getBytes())); 35d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd setTransactionId(generateTransactionId()); 36d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } catch (InvalidHeaderValueException e) { 37d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd // Impossible to reach here since all headers we set above are valid. 38d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd Log.e(TAG, "Unexpected InvalidHeaderValueException.", e); 39d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd throw new RuntimeException(e); 40d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 41d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 42d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 43d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd private byte[] generateTransactionId() { 44d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd String transactionId = "T" + Long.toHexString(System.currentTimeMillis()); 45d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd return transactionId.getBytes(); 46d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 47d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 48d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 49d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Constructor, used when composing a M-Send.req pdu. 50d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 51d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param contentType the content type value 52d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param from the from value 53d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param mmsVersion current viersion of mms 54d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param transactionId the transaction-id value 55d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @throws InvalidHeaderValueException if parameters are invalid. 56d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * NullPointerException if contentType, form or transactionId is null. 57d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 58d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public SendReq(byte[] contentType, 59d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd EncodedStringValue from, 60d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd int mmsVersion, 61d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd byte[] transactionId) throws InvalidHeaderValueException { 62d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd super(); 63d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd setMessageType(PduHeaders.MESSAGE_TYPE_SEND_REQ); 64d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd setContentType(contentType); 65d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd setFrom(from); 66d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd setMmsVersion(mmsVersion); 67d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd setTransactionId(transactionId); 68d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 69d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 70d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 71d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Constructor with given headers. 72d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 73d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param headers Headers for this PDU. 74d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 75d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd SendReq(PduHeaders headers) { 76d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd super(headers); 77d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 78d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 79d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 80d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Constructor with given headers and body 81d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 82d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param headers Headers for this PDU. 83d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param body Body of this PDu. 84d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 85d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd SendReq(PduHeaders headers, PduBody body) { 86d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd super(headers, body); 87d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 88d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 89d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 90d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Get Bcc value. 91d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 92d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @return the value 93d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 94d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public EncodedStringValue[] getBcc() { 95d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd return mPduHeaders.getEncodedStringValues(PduHeaders.BCC); 96d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 97d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 98d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 99d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Add a "BCC" value. 100d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 101d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param value the value 102d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @throws NullPointerException if the value is null. 103d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 104d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void addBcc(EncodedStringValue value) { 105d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mPduHeaders.appendEncodedStringValue(value, PduHeaders.BCC); 106d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 107d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 108d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 109d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Set "BCC" value. 110d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 111d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param value the value 112d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @throws NullPointerException if the value is null. 113d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 114d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void setBcc(EncodedStringValue[] value) { 115d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mPduHeaders.setEncodedStringValues(value, PduHeaders.BCC); 116d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 117d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 118d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 119d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Get CC value. 120d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 121d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @return the value 122d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 123d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public EncodedStringValue[] getCc() { 124d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd return mPduHeaders.getEncodedStringValues(PduHeaders.CC); 125d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 126d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 127d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 128d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Add a "CC" value. 129d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 130d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param value the value 131d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @throws NullPointerException if the value is null. 132d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 133d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void addCc(EncodedStringValue value) { 134d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mPduHeaders.appendEncodedStringValue(value, PduHeaders.CC); 135d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 136d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 137d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 138d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Set "CC" value. 139d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 140d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param value the value 141d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @throws NullPointerException if the value is null. 142d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 143d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void setCc(EncodedStringValue[] value) { 144d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mPduHeaders.setEncodedStringValues(value, PduHeaders.CC); 145d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 146d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 147d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 148d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Get Content-type value. 149d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 150d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @return the value 151d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 152d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public byte[] getContentType() { 153d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd return mPduHeaders.getTextString(PduHeaders.CONTENT_TYPE); 154d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 155d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 156d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 157d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Set Content-type value. 158d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 159d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param value the value 160d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @throws NullPointerException if the value is null. 161d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 162d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void setContentType(byte[] value) { 163d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mPduHeaders.setTextString(value, PduHeaders.CONTENT_TYPE); 164d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 165d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 166d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 167d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Get X-Mms-Delivery-Report value. 168d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 169d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @return the value 170d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 171d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public int getDeliveryReport() { 172d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd return mPduHeaders.getOctet(PduHeaders.DELIVERY_REPORT); 173d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 174d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 175d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 176d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Set X-Mms-Delivery-Report value. 177d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 178d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param value the value 179d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @throws InvalidHeaderValueException if the value is invalid. 180d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 181d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void setDeliveryReport(int value) throws InvalidHeaderValueException { 182d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mPduHeaders.setOctet(value, PduHeaders.DELIVERY_REPORT); 183d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 184d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 185d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 186d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Get X-Mms-Expiry value. 187d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 188d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Expiry-value = Value-length 189d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * (Absolute-token Date-value | Relative-token Delta-seconds-value) 190d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 191d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @return the value 192d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 193d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public long getExpiry() { 194d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd return mPduHeaders.getLongInteger(PduHeaders.EXPIRY); 195d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 196d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 197d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 198d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Set X-Mms-Expiry value. 199d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 200d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param value the value 201d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 202d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void setExpiry(long value) { 203d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mPduHeaders.setLongInteger(value, PduHeaders.EXPIRY); 204d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 205d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 206d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 207d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Get X-Mms-MessageSize value. 208d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 209d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Expiry-value = size of message 210d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 211d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @return the value 212d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 213d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public long getMessageSize() { 214d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd return mPduHeaders.getLongInteger(PduHeaders.MESSAGE_SIZE); 215d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 216d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 217d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 218d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Set X-Mms-MessageSize value. 219d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 220d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param value the value 221d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 222d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void setMessageSize(long value) { 223d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mPduHeaders.setLongInteger(value, PduHeaders.MESSAGE_SIZE); 224d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 225d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 226d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 227d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Get X-Mms-Message-Class value. 228d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Message-class-value = Class-identifier | Token-text 229d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Class-identifier = Personal | Advertisement | Informational | Auto 230d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 231d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @return the value 232d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 233d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public byte[] getMessageClass() { 234d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd return mPduHeaders.getTextString(PduHeaders.MESSAGE_CLASS); 235d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 236d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 237d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 238d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Set X-Mms-Message-Class value. 239d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 240d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param value the value 241d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @throws NullPointerException if the value is null. 242d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 243d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void setMessageClass(byte[] value) { 244d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mPduHeaders.setTextString(value, PduHeaders.MESSAGE_CLASS); 245d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 246d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 247d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 248d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Get X-Mms-Read-Report value. 249d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 250d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @return the value 251d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 252d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public int getReadReport() { 253d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd return mPduHeaders.getOctet(PduHeaders.READ_REPORT); 254d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 255d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 256d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 257d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Set X-Mms-Read-Report value. 258d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 259d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param value the value 260d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @throws InvalidHeaderValueException if the value is invalid. 261d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 262d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void setReadReport(int value) throws InvalidHeaderValueException { 263d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mPduHeaders.setOctet(value, PduHeaders.READ_REPORT); 264d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 265d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 266d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 267d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Set "To" value. 268d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 269d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param value the value 270d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @throws NullPointerException if the value is null. 271d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 272d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void setTo(EncodedStringValue[] value) { 273d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mPduHeaders.setEncodedStringValues(value, PduHeaders.TO); 274d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 275d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 276d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 277d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Get X-Mms-Transaction-Id field value. 278d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 279d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @return the X-Mms-Report-Allowed value 280d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 281d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public byte[] getTransactionId() { 282d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd return mPduHeaders.getTextString(PduHeaders.TRANSACTION_ID); 283d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 284d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 285d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 286d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Set X-Mms-Transaction-Id field value. 287d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 288d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @param value the value 289d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @throws NullPointerException if the value is null. 290d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 291d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void setTransactionId(byte[] value) { 292d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mPduHeaders.setTextString(value, PduHeaders.TRANSACTION_ID); 293d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 294d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 295d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /* 296d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Optional, not supported header fields: 297d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 298d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public byte getAdaptationAllowed() {return 0}; 299d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public void setAdaptationAllowed(btye value) {}; 300d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 301d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public byte[] getApplicId() {return null;} 302d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public void setApplicId(byte[] value) {} 303d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 304d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public byte[] getAuxApplicId() {return null;} 305d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public void getAuxApplicId(byte[] value) {} 306d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 307d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public byte getContentClass() {return 0x00;} 308d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public void setApplicId(byte value) {} 309d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 310d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public long getDeliveryTime() {return 0}; 311d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public void setDeliveryTime(long value) {}; 312d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 313d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public byte getDrmContent() {return 0x00;} 314d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public void setDrmContent(byte value) {} 315d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 316d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public MmFlagsValue getMmFlags() {return null;} 317d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public void setMmFlags(MmFlagsValue value) {} 318d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 319d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public MmStateValue getMmState() {return null;} 320d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public void getMmState(MmStateValue value) {} 321d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 322d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public byte[] getReplyApplicId() {return 0x00;} 323d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public void setReplyApplicId(byte[] value) {} 324d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 325d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public byte getReplyCharging() {return 0x00;} 326d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public void setReplyCharging(byte value) {} 327d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 328d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public byte getReplyChargingDeadline() {return 0x00;} 329d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public void setReplyChargingDeadline(byte value) {} 330d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 331d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public byte[] getReplyChargingId() {return 0x00;} 332d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public void setReplyChargingId(byte[] value) {} 333d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 334d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public long getReplyChargingSize() {return 0;} 335d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public void setReplyChargingSize(long value) {} 336d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 337d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public byte[] getReplyApplicId() {return 0x00;} 338d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public void setReplyApplicId(byte[] value) {} 339d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 340d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public byte getStore() {return 0x00;} 341d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * public void setStore(byte value) {} 342d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 343d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd} 344