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 android.compat.annotation.UnsupportedAppUsage; 21 22 import com.google.android.mms.InvalidHeaderValueException; 23 24 public class GenericPdu { 25 /** 26 * The headers of pdu. 27 */ 28 @UnsupportedAppUsage 29 PduHeaders mPduHeaders = null; 30 31 /** 32 * Constructor. 33 */ 34 @UnsupportedAppUsage GenericPdu()35 public GenericPdu() { 36 mPduHeaders = new PduHeaders(); 37 } 38 39 /** 40 * Constructor. 41 * 42 * @param headers Headers for this PDU. 43 */ GenericPdu(PduHeaders headers)44 GenericPdu(PduHeaders headers) { 45 mPduHeaders = headers; 46 } 47 48 /** 49 * Get the headers of this PDU. 50 * 51 * @return A PduHeaders of this PDU. 52 */ 53 @UnsupportedAppUsage getPduHeaders()54 PduHeaders getPduHeaders() { 55 return mPduHeaders; 56 } 57 58 /** 59 * Get X-Mms-Message-Type field value. 60 * 61 * @return the X-Mms-Report-Allowed value 62 */ 63 @UnsupportedAppUsage getMessageType()64 public int getMessageType() { 65 return mPduHeaders.getOctet(PduHeaders.MESSAGE_TYPE); 66 } 67 68 /** 69 * Set X-Mms-Message-Type field value. 70 * 71 * @param value the value 72 * @throws InvalidHeaderValueException if the value is invalid. 73 * RuntimeException if field's value is not Octet. 74 */ 75 @UnsupportedAppUsage setMessageType(int value)76 public void setMessageType(int value) throws InvalidHeaderValueException { 77 mPduHeaders.setOctet(value, PduHeaders.MESSAGE_TYPE); 78 } 79 80 /** 81 * Get X-Mms-MMS-Version field value. 82 * 83 * @return the X-Mms-MMS-Version value 84 */ getMmsVersion()85 public int getMmsVersion() { 86 return mPduHeaders.getOctet(PduHeaders.MMS_VERSION); 87 } 88 89 /** 90 * Set X-Mms-MMS-Version field value. 91 * 92 * @param value the value 93 * @throws InvalidHeaderValueException if the value is invalid. 94 * RuntimeException if field's value is not Octet. 95 */ setMmsVersion(int value)96 public void setMmsVersion(int value) throws InvalidHeaderValueException { 97 mPduHeaders.setOctet(value, PduHeaders.MMS_VERSION); 98 } 99 100 /** 101 * Get From value. 102 * From-value = Value-length 103 * (Address-present-token Encoded-string-value | Insert-address-token) 104 * 105 * @return the value 106 */ 107 @UnsupportedAppUsage getFrom()108 public EncodedStringValue getFrom() { 109 return mPduHeaders.getEncodedStringValue(PduHeaders.FROM); 110 } 111 112 /** 113 * Set From value. 114 * 115 * @param value the value 116 * @throws NullPointerException if the value is null. 117 */ 118 @UnsupportedAppUsage setFrom(EncodedStringValue value)119 public void setFrom(EncodedStringValue value) { 120 mPduHeaders.setEncodedStringValue(value, PduHeaders.FROM); 121 } 122 } 123