Home | History | Annotate | Download | only in pdu
      1 /*
      2  * Copyright (C) 2007 Esmertec AG.
      3  * Copyright (C) 2007 The Android Open Source Project
      4  *
      5  * Licensed under the Apache License, Version 2.0 (the "License");
      6  * you may not use this file except in compliance with the License.
      7  * You may obtain a copy of the License at
      8  *
      9  *      http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  * Unless required by applicable law or agreed to in writing, software
     12  * distributed under the License is distributed on an "AS IS" BASIS,
     13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  * See the License for the specific language governing permissions and
     15  * limitations under the License.
     16  */
     17 
     18 package com.google.android.mms.pdu;
     19 
     20 import com.google.android.mms.InvalidHeaderValueException;
     21 
     22 public class ReadRecInd extends GenericPdu {
     23     /**
     24      * Constructor, used when composing a M-ReadRec.ind pdu.
     25      *
     26      * @param from the from value
     27      * @param messageId the message ID value
     28      * @param mmsVersion current viersion of mms
     29      * @param readStatus the read status value
     30      * @param to the to value
     31      * @throws InvalidHeaderValueException if parameters are invalid.
     32      *         NullPointerException if messageId or to is null.
     33      */
     34     public ReadRecInd(EncodedStringValue from,
     35                       byte[] messageId,
     36                       int mmsVersion,
     37                       int readStatus,
     38                       EncodedStringValue[] to) throws InvalidHeaderValueException {
     39         super();
     40         setMessageType(PduHeaders.MESSAGE_TYPE_READ_REC_IND);
     41         setFrom(from);
     42         setMessageId(messageId);
     43         setMmsVersion(mmsVersion);
     44         setTo(to);
     45         setReadStatus(readStatus);
     46     }
     47 
     48     /**
     49      * Constructor with given headers.
     50      *
     51      * @param headers Headers for this PDU.
     52      */
     53     ReadRecInd(PduHeaders headers) {
     54         super(headers);
     55     }
     56 
     57     /**
     58      * Get Date value.
     59      *
     60      * @return the value
     61      */
     62     public long getDate() {
     63         return mPduHeaders.getLongInteger(PduHeaders.DATE);
     64     }
     65 
     66     /**
     67      * Set Date value.
     68      *
     69      * @param value the value
     70      */
     71     public void setDate(long value) {
     72         mPduHeaders.setLongInteger(value, PduHeaders.DATE);
     73     }
     74 
     75     /**
     76      * Get Message-ID value.
     77      *
     78      * @return the value
     79      */
     80     public byte[] getMessageId() {
     81         return mPduHeaders.getTextString(PduHeaders.MESSAGE_ID);
     82     }
     83 
     84     /**
     85      * Set Message-ID value.
     86      *
     87      * @param value the value
     88      * @throws NullPointerException if the value is null.
     89      */
     90     public void setMessageId(byte[] value) {
     91         mPduHeaders.setTextString(value, PduHeaders.MESSAGE_ID);
     92     }
     93 
     94     /**
     95      * Get To value.
     96      *
     97      * @return the value
     98      */
     99     public EncodedStringValue[] getTo() {
    100         return mPduHeaders.getEncodedStringValues(PduHeaders.TO);
    101     }
    102 
    103     /**
    104      * Set To value.
    105      *
    106      * @param value the value
    107      * @throws NullPointerException if the value is null.
    108      */
    109     public void setTo(EncodedStringValue[] value) {
    110         mPduHeaders.setEncodedStringValues(value, PduHeaders.TO);
    111     }
    112 
    113     /**
    114      * Get X-MMS-Read-status value.
    115      *
    116      * @return the value
    117      */
    118     public int getReadStatus() {
    119         return mPduHeaders.getOctet(PduHeaders.READ_STATUS);
    120     }
    121 
    122     /**
    123      * Set X-MMS-Read-status value.
    124      *
    125      * @param value the value
    126      * @throws InvalidHeaderValueException if the value is invalid.
    127      */
    128     public void setReadStatus(int value) throws InvalidHeaderValueException {
    129         mPduHeaders.setOctet(value, PduHeaders.READ_STATUS);
    130     }
    131 
    132     /*
    133      * Optional, not supported header fields:
    134      *
    135      *     public byte[] getApplicId() {return null;}
    136      *     public void setApplicId(byte[] value) {}
    137      *
    138      *     public byte[] getAuxApplicId() {return null;}
    139      *     public void getAuxApplicId(byte[] value) {}
    140      *
    141      *     public byte[] getReplyApplicId() {return 0x00;}
    142      *     public void setReplyApplicId(byte[] value) {}
    143      */
    144 }
    145