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