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