1d02a064168ae5c916b977182b764580e601cb084Wink Saville/* 2d02a064168ae5c916b977182b764580e601cb084Wink Saville * Copyright (C) 2007 Esmertec AG. 3d02a064168ae5c916b977182b764580e601cb084Wink Saville * Copyright (C) 2007 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 com.google.android.mms.InvalidHeaderValueException; 21d02a064168ae5c916b977182b764580e601cb084Wink Saville 22d02a064168ae5c916b977182b764580e601cb084Wink Savillepublic class ReadRecInd extends GenericPdu { 23d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 24d02a064168ae5c916b977182b764580e601cb084Wink Saville * Constructor, used when composing a M-ReadRec.ind pdu. 25d02a064168ae5c916b977182b764580e601cb084Wink Saville * 26d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param from the from value 27d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param messageId the message ID value 28d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param mmsVersion current viersion of mms 29d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param readStatus the read status value 30d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param to the to value 31d02a064168ae5c916b977182b764580e601cb084Wink Saville * @throws InvalidHeaderValueException if parameters are invalid. 32d02a064168ae5c916b977182b764580e601cb084Wink Saville * NullPointerException if messageId or to is null. 33d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 34d02a064168ae5c916b977182b764580e601cb084Wink Saville public ReadRecInd(EncodedStringValue from, 35d02a064168ae5c916b977182b764580e601cb084Wink Saville byte[] messageId, 36d02a064168ae5c916b977182b764580e601cb084Wink Saville int mmsVersion, 37d02a064168ae5c916b977182b764580e601cb084Wink Saville int readStatus, 38d02a064168ae5c916b977182b764580e601cb084Wink Saville EncodedStringValue[] to) throws InvalidHeaderValueException { 39d02a064168ae5c916b977182b764580e601cb084Wink Saville super(); 40d02a064168ae5c916b977182b764580e601cb084Wink Saville setMessageType(PduHeaders.MESSAGE_TYPE_READ_REC_IND); 41d02a064168ae5c916b977182b764580e601cb084Wink Saville setFrom(from); 42d02a064168ae5c916b977182b764580e601cb084Wink Saville setMessageId(messageId); 43d02a064168ae5c916b977182b764580e601cb084Wink Saville setMmsVersion(mmsVersion); 44d02a064168ae5c916b977182b764580e601cb084Wink Saville setTo(to); 45d02a064168ae5c916b977182b764580e601cb084Wink Saville setReadStatus(readStatus); 46d02a064168ae5c916b977182b764580e601cb084Wink Saville } 47d02a064168ae5c916b977182b764580e601cb084Wink Saville 48d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 49d02a064168ae5c916b977182b764580e601cb084Wink Saville * Constructor with given headers. 50d02a064168ae5c916b977182b764580e601cb084Wink Saville * 51d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param headers Headers for this PDU. 52d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 53d02a064168ae5c916b977182b764580e601cb084Wink Saville ReadRecInd(PduHeaders headers) { 54d02a064168ae5c916b977182b764580e601cb084Wink Saville super(headers); 55d02a064168ae5c916b977182b764580e601cb084Wink Saville } 56d02a064168ae5c916b977182b764580e601cb084Wink Saville 57d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 58d02a064168ae5c916b977182b764580e601cb084Wink Saville * Get Date value. 59d02a064168ae5c916b977182b764580e601cb084Wink Saville * 60d02a064168ae5c916b977182b764580e601cb084Wink Saville * @return the value 61d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 62d02a064168ae5c916b977182b764580e601cb084Wink Saville public long getDate() { 63d02a064168ae5c916b977182b764580e601cb084Wink Saville return mPduHeaders.getLongInteger(PduHeaders.DATE); 64d02a064168ae5c916b977182b764580e601cb084Wink Saville } 65d02a064168ae5c916b977182b764580e601cb084Wink Saville 66d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 67d02a064168ae5c916b977182b764580e601cb084Wink Saville * Set Date value. 68d02a064168ae5c916b977182b764580e601cb084Wink Saville * 69d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param value the value 70d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 71d02a064168ae5c916b977182b764580e601cb084Wink Saville public void setDate(long value) { 72d02a064168ae5c916b977182b764580e601cb084Wink Saville mPduHeaders.setLongInteger(value, PduHeaders.DATE); 73d02a064168ae5c916b977182b764580e601cb084Wink Saville } 74d02a064168ae5c916b977182b764580e601cb084Wink Saville 75d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 76d02a064168ae5c916b977182b764580e601cb084Wink Saville * Get Message-ID value. 77d02a064168ae5c916b977182b764580e601cb084Wink Saville * 78d02a064168ae5c916b977182b764580e601cb084Wink Saville * @return the value 79d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 80d02a064168ae5c916b977182b764580e601cb084Wink Saville public byte[] getMessageId() { 81d02a064168ae5c916b977182b764580e601cb084Wink Saville return mPduHeaders.getTextString(PduHeaders.MESSAGE_ID); 82d02a064168ae5c916b977182b764580e601cb084Wink Saville } 83d02a064168ae5c916b977182b764580e601cb084Wink Saville 84d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 85d02a064168ae5c916b977182b764580e601cb084Wink Saville * Set Message-ID value. 86d02a064168ae5c916b977182b764580e601cb084Wink Saville * 87d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param value the value 88d02a064168ae5c916b977182b764580e601cb084Wink Saville * @throws NullPointerException if the value is null. 89d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 90d02a064168ae5c916b977182b764580e601cb084Wink Saville public void setMessageId(byte[] value) { 91d02a064168ae5c916b977182b764580e601cb084Wink Saville mPduHeaders.setTextString(value, PduHeaders.MESSAGE_ID); 92d02a064168ae5c916b977182b764580e601cb084Wink Saville } 93d02a064168ae5c916b977182b764580e601cb084Wink Saville 94d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 95d02a064168ae5c916b977182b764580e601cb084Wink Saville * Get To value. 96d02a064168ae5c916b977182b764580e601cb084Wink Saville * 97d02a064168ae5c916b977182b764580e601cb084Wink Saville * @return the value 98d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 99d02a064168ae5c916b977182b764580e601cb084Wink Saville public EncodedStringValue[] getTo() { 100d02a064168ae5c916b977182b764580e601cb084Wink Saville return mPduHeaders.getEncodedStringValues(PduHeaders.TO); 101d02a064168ae5c916b977182b764580e601cb084Wink Saville } 102d02a064168ae5c916b977182b764580e601cb084Wink Saville 103d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 104d02a064168ae5c916b977182b764580e601cb084Wink Saville * Set To value. 105d02a064168ae5c916b977182b764580e601cb084Wink Saville * 106d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param value the value 107d02a064168ae5c916b977182b764580e601cb084Wink Saville * @throws NullPointerException if the value is null. 108d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 109d02a064168ae5c916b977182b764580e601cb084Wink Saville public void setTo(EncodedStringValue[] value) { 110d02a064168ae5c916b977182b764580e601cb084Wink Saville mPduHeaders.setEncodedStringValues(value, PduHeaders.TO); 111d02a064168ae5c916b977182b764580e601cb084Wink Saville } 112d02a064168ae5c916b977182b764580e601cb084Wink Saville 113d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 114d02a064168ae5c916b977182b764580e601cb084Wink Saville * Get X-MMS-Read-status value. 115d02a064168ae5c916b977182b764580e601cb084Wink Saville * 116d02a064168ae5c916b977182b764580e601cb084Wink Saville * @return the value 117d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 118d02a064168ae5c916b977182b764580e601cb084Wink Saville public int getReadStatus() { 119d02a064168ae5c916b977182b764580e601cb084Wink Saville return mPduHeaders.getOctet(PduHeaders.READ_STATUS); 120d02a064168ae5c916b977182b764580e601cb084Wink Saville } 121d02a064168ae5c916b977182b764580e601cb084Wink Saville 122d02a064168ae5c916b977182b764580e601cb084Wink Saville /** 123d02a064168ae5c916b977182b764580e601cb084Wink Saville * Set X-MMS-Read-status value. 124d02a064168ae5c916b977182b764580e601cb084Wink Saville * 125d02a064168ae5c916b977182b764580e601cb084Wink Saville * @param value the value 126d02a064168ae5c916b977182b764580e601cb084Wink Saville * @throws InvalidHeaderValueException if the value is invalid. 127d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 128d02a064168ae5c916b977182b764580e601cb084Wink Saville public void setReadStatus(int value) throws InvalidHeaderValueException { 129d02a064168ae5c916b977182b764580e601cb084Wink Saville mPduHeaders.setOctet(value, PduHeaders.READ_STATUS); 130d02a064168ae5c916b977182b764580e601cb084Wink Saville } 131d02a064168ae5c916b977182b764580e601cb084Wink Saville 132d02a064168ae5c916b977182b764580e601cb084Wink Saville /* 133d02a064168ae5c916b977182b764580e601cb084Wink Saville * Optional, not supported header fields: 134d02a064168ae5c916b977182b764580e601cb084Wink Saville * 135d02a064168ae5c916b977182b764580e601cb084Wink Saville * public byte[] getApplicId() {return null;} 136d02a064168ae5c916b977182b764580e601cb084Wink Saville * public void setApplicId(byte[] value) {} 137d02a064168ae5c916b977182b764580e601cb084Wink Saville * 138d02a064168ae5c916b977182b764580e601cb084Wink Saville * public byte[] getAuxApplicId() {return null;} 139d02a064168ae5c916b977182b764580e601cb084Wink Saville * public void getAuxApplicId(byte[] value) {} 140d02a064168ae5c916b977182b764580e601cb084Wink Saville * 141d02a064168ae5c916b977182b764580e601cb084Wink Saville * public byte[] getReplyApplicId() {return 0x00;} 142d02a064168ae5c916b977182b764580e601cb084Wink Saville * public void setReplyApplicId(byte[] value) {} 143d02a064168ae5c916b977182b764580e601cb084Wink Saville */ 144d02a064168ae5c916b977182b764580e601cb084Wink Saville} 145