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 import android.os.Build;
22 
23 import com.google.android.mms.InvalidHeaderValueException;
24 
25 /**
26  * M-Acknowledge.ind PDU.
27  */
28 public class AcknowledgeInd extends GenericPdu {
29     /**
30      * Constructor, used when composing a M-Acknowledge.ind pdu.
31      *
32      * @param mmsVersion current viersion of mms
33      * @param transactionId the transaction-id value
34      * @throws InvalidHeaderValueException if parameters are invalid.
35      *         NullPointerException if transactionId is null.
36      */
37     @UnsupportedAppUsage
AcknowledgeInd(int mmsVersion, byte[] transactionId)38     public AcknowledgeInd(int mmsVersion, byte[] transactionId)
39             throws InvalidHeaderValueException {
40         super();
41 
42         setMessageType(PduHeaders.MESSAGE_TYPE_ACKNOWLEDGE_IND);
43         setMmsVersion(mmsVersion);
44         setTransactionId(transactionId);
45     }
46 
47     /**
48      * Constructor with given headers.
49      *
50      * @param headers Headers for this PDU.
51      */
52     @UnsupportedAppUsage
AcknowledgeInd(PduHeaders headers)53     AcknowledgeInd(PduHeaders headers) {
54         super(headers);
55     }
56 
57     /**
58      * Get X-Mms-Report-Allowed field value.
59      *
60      * @return the X-Mms-Report-Allowed value
61      */
getReportAllowed()62     public int getReportAllowed() {
63         return mPduHeaders.getOctet(PduHeaders.REPORT_ALLOWED);
64     }
65 
66     /**
67      * Set X-Mms-Report-Allowed field value.
68      *
69      * @param value the value
70      * @throws InvalidHeaderValueException if the value is invalid.
71      */
72     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
setReportAllowed(int value)73     public void setReportAllowed(int value) throws InvalidHeaderValueException {
74         mPduHeaders.setOctet(value, PduHeaders.REPORT_ALLOWED);
75     }
76 
77     /**
78      * Get X-Mms-Transaction-Id field value.
79      *
80      * @return the X-Mms-Report-Allowed value
81      */
getTransactionId()82     public byte[] getTransactionId() {
83         return mPduHeaders.getTextString(PduHeaders.TRANSACTION_ID);
84     }
85 
86     /**
87      * Set X-Mms-Transaction-Id field value.
88      *
89      * @param value the value
90      * @throws NullPointerException if the value is null.
91      */
92     @UnsupportedAppUsage
setTransactionId(byte[] value)93     public void setTransactionId(byte[] value) {
94         mPduHeaders.setTextString(value, PduHeaders.TRANSACTION_ID);
95     }
96 }
97