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 /** 25 * M-Notification.ind PDU. 26 */ 27 public class NotificationInd extends GenericPdu { 28 /** 29 * Empty constructor. 30 * Since the Pdu corresponding to this class is constructed 31 * by the Proxy-Relay server, this class is only instantiated 32 * by the Pdu Parser. 33 * 34 * @throws InvalidHeaderValueException if error occurs. 35 * RuntimeException if an undeclared error occurs. 36 */ 37 @UnsupportedAppUsage NotificationInd()38 public NotificationInd() throws InvalidHeaderValueException { 39 super(); 40 setMessageType(PduHeaders.MESSAGE_TYPE_NOTIFICATION_IND); 41 } 42 43 /** 44 * Constructor with given headers. 45 * 46 * @param headers Headers for this PDU. 47 */ 48 @UnsupportedAppUsage NotificationInd(PduHeaders headers)49 NotificationInd(PduHeaders headers) { 50 super(headers); 51 } 52 53 /** 54 * Get X-Mms-Content-Class Value. 55 * 56 * @return the value 57 */ 58 @UnsupportedAppUsage getContentClass()59 public int getContentClass() { 60 return mPduHeaders.getOctet(PduHeaders.CONTENT_CLASS); 61 } 62 63 /** 64 * Set X-Mms-Content-Class Value. 65 * 66 * @param value the value 67 * @throws InvalidHeaderValueException if the value is invalid. 68 * RuntimeException if an undeclared error occurs. 69 */ 70 @UnsupportedAppUsage setContentClass(int value)71 public void setContentClass(int value) throws InvalidHeaderValueException { 72 mPduHeaders.setOctet(value, PduHeaders.CONTENT_CLASS); 73 } 74 75 /** 76 * Get X-Mms-Content-Location value. 77 * When used in a PDU other than M-Mbox-Delete.conf and M-Delete.conf: 78 * Content-location-value = Uri-value 79 * 80 * @return the value 81 */ 82 @UnsupportedAppUsage getContentLocation()83 public byte[] getContentLocation() { 84 return mPduHeaders.getTextString(PduHeaders.CONTENT_LOCATION); 85 } 86 87 /** 88 * Set X-Mms-Content-Location value. 89 * 90 * @param value the value 91 * @throws NullPointerException if the value is null. 92 * RuntimeException if an undeclared error occurs. 93 */ 94 @UnsupportedAppUsage setContentLocation(byte[] value)95 public void setContentLocation(byte[] value) { 96 mPduHeaders.setTextString(value, PduHeaders.CONTENT_LOCATION); 97 } 98 99 /** 100 * Get X-Mms-Expiry value. 101 * 102 * Expiry-value = Value-length 103 * (Absolute-token Date-value | Relative-token Delta-seconds-value) 104 * 105 * @return the value 106 */ 107 @UnsupportedAppUsage getExpiry()108 public long getExpiry() { 109 return mPduHeaders.getLongInteger(PduHeaders.EXPIRY); 110 } 111 112 /** 113 * Set X-Mms-Expiry value. 114 * 115 * @param value the value 116 * @throws RuntimeException if an undeclared error occurs. 117 */ 118 @UnsupportedAppUsage setExpiry(long value)119 public void setExpiry(long value) { 120 mPduHeaders.setLongInteger(value, PduHeaders.EXPIRY); 121 } 122 123 /** 124 * Get From value. 125 * From-value = Value-length 126 * (Address-present-token Encoded-string-value | Insert-address-token) 127 * 128 * @return the value 129 */ 130 @UnsupportedAppUsage getFrom()131 public EncodedStringValue getFrom() { 132 return mPduHeaders.getEncodedStringValue(PduHeaders.FROM); 133 } 134 135 /** 136 * Set From value. 137 * 138 * @param value the value 139 * @throws NullPointerException if the value is null. 140 * RuntimeException if an undeclared error occurs. 141 */ 142 @UnsupportedAppUsage setFrom(EncodedStringValue value)143 public void setFrom(EncodedStringValue value) { 144 mPduHeaders.setEncodedStringValue(value, PduHeaders.FROM); 145 } 146 147 /** 148 * Get X-Mms-Message-Class value. 149 * Message-class-value = Class-identifier | Token-text 150 * Class-identifier = Personal | Advertisement | Informational | Auto 151 * 152 * @return the value 153 */ 154 @UnsupportedAppUsage getMessageClass()155 public byte[] getMessageClass() { 156 return mPduHeaders.getTextString(PduHeaders.MESSAGE_CLASS); 157 } 158 159 /** 160 * Set X-Mms-Message-Class value. 161 * 162 * @param value the value 163 * @throws NullPointerException if the value is null. 164 * RuntimeException if an undeclared error occurs. 165 */ 166 @UnsupportedAppUsage setMessageClass(byte[] value)167 public void setMessageClass(byte[] value) { 168 mPduHeaders.setTextString(value, PduHeaders.MESSAGE_CLASS); 169 } 170 171 /** 172 * Get X-Mms-Message-Size value. 173 * Message-size-value = Long-integer 174 * 175 * @return the value 176 */ 177 @UnsupportedAppUsage getMessageSize()178 public long getMessageSize() { 179 return mPduHeaders.getLongInteger(PduHeaders.MESSAGE_SIZE); 180 } 181 182 /** 183 * Set X-Mms-Message-Size value. 184 * 185 * @param value the value 186 * @throws RuntimeException if an undeclared error occurs. 187 */ 188 @UnsupportedAppUsage setMessageSize(long value)189 public void setMessageSize(long value) { 190 mPduHeaders.setLongInteger(value, PduHeaders.MESSAGE_SIZE); 191 } 192 193 /** 194 * Get subject. 195 * 196 * @return the value 197 */ 198 @UnsupportedAppUsage getSubject()199 public EncodedStringValue getSubject() { 200 return mPduHeaders.getEncodedStringValue(PduHeaders.SUBJECT); 201 } 202 203 /** 204 * Set subject. 205 * 206 * @param value the value 207 * @throws NullPointerException if the value is null. 208 * RuntimeException if an undeclared error occurs. 209 */ 210 @UnsupportedAppUsage setSubject(EncodedStringValue value)211 public void setSubject(EncodedStringValue value) { 212 mPduHeaders.setEncodedStringValue(value, PduHeaders.SUBJECT); 213 } 214 215 /** 216 * Get X-Mms-Transaction-Id. 217 * 218 * @return the value 219 */ 220 @UnsupportedAppUsage getTransactionId()221 public byte[] getTransactionId() { 222 return mPduHeaders.getTextString(PduHeaders.TRANSACTION_ID); 223 } 224 225 /** 226 * Set X-Mms-Transaction-Id. 227 * 228 * @param value the value 229 * @throws NullPointerException if the value is null. 230 * RuntimeException if an undeclared error occurs. 231 */ 232 @UnsupportedAppUsage setTransactionId(byte[] value)233 public void setTransactionId(byte[] value) { 234 mPduHeaders.setTextString(value, PduHeaders.TRANSACTION_ID); 235 } 236 237 /** 238 * Get X-Mms-Delivery-Report Value. 239 * 240 * @return the value 241 */ 242 @UnsupportedAppUsage getDeliveryReport()243 public int getDeliveryReport() { 244 return mPduHeaders.getOctet(PduHeaders.DELIVERY_REPORT); 245 } 246 247 /** 248 * Set X-Mms-Delivery-Report Value. 249 * 250 * @param value the value 251 * @throws InvalidHeaderValueException if the value is invalid. 252 * RuntimeException if an undeclared error occurs. 253 */ 254 @UnsupportedAppUsage setDeliveryReport(int value)255 public void setDeliveryReport(int value) throws InvalidHeaderValueException { 256 mPduHeaders.setOctet(value, PduHeaders.DELIVERY_REPORT); 257 } 258 259 /* 260 * Optional, not supported header fields: 261 * 262 * public byte[] getApplicId() {return null;} 263 * public void setApplicId(byte[] value) {} 264 * 265 * public byte[] getAuxApplicId() {return null;} 266 * public void getAuxApplicId(byte[] value) {} 267 * 268 * public byte getDrmContent() {return 0x00;} 269 * public void setDrmContent(byte value) {} 270 * 271 * public byte getDistributionIndicator() {return 0x00;} 272 * public void setDistributionIndicator(byte value) {} 273 * 274 * public ElementDescriptorValue getElementDescriptor() {return null;} 275 * public void getElementDescriptor(ElementDescriptorValue value) {} 276 * 277 * public byte getPriority() {return 0x00;} 278 * public void setPriority(byte value) {} 279 * 280 * public byte getRecommendedRetrievalMode() {return 0x00;} 281 * public void setRecommendedRetrievalMode(byte value) {} 282 * 283 * public byte getRecommendedRetrievalModeText() {return 0x00;} 284 * public void setRecommendedRetrievalModeText(byte value) {} 285 * 286 * public byte[] getReplaceId() {return 0x00;} 287 * public void setReplaceId(byte[] value) {} 288 * 289 * public byte[] getReplyApplicId() {return 0x00;} 290 * public void setReplyApplicId(byte[] value) {} 291 * 292 * public byte getReplyCharging() {return 0x00;} 293 * public void setReplyCharging(byte value) {} 294 * 295 * public byte getReplyChargingDeadline() {return 0x00;} 296 * public void setReplyChargingDeadline(byte value) {} 297 * 298 * public byte[] getReplyChargingId() {return 0x00;} 299 * public void setReplyChargingId(byte[] value) {} 300 * 301 * public long getReplyChargingSize() {return 0;} 302 * public void setReplyChargingSize(long value) {} 303 * 304 * public byte getStored() {return 0x00;} 305 * public void setStored(byte value) {} 306 */ 307 } 308