1192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta/*
2192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * Copyright (C) 2014 The Android Open Source Project
3192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta *
4192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * Licensed under the Apache License, Version 2.0 (the "License");
5192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * you may not use this file except in compliance with the License.
6192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * You may obtain a copy of the License at
7192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta *
8192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta *      http://www.apache.org/licenses/LICENSE-2.0
9192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta *
10192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * Unless required by applicable law or agreed to in writing, software
11192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * distributed under the License is distributed on an "AS IS" BASIS,
12192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * See the License for the specific language governing permissions and
14192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * limitations under the License.
15192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta */
16192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
17192d793d2586b620027edd5b45ff4c72a86cc7beHemant Guptapackage android.bluetooth.client.map;
18192d793d2586b620027edd5b45ff4c72a86cc7beHemant Guptaimport android.bluetooth.client.map.utils.ObexTime;
19192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
20192d793d2586b620027edd5b45ff4c72a86cc7beHemant Guptaimport org.json.JSONException;
21192d793d2586b620027edd5b45ff4c72a86cc7beHemant Guptaimport org.json.JSONObject;
22192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
23192d793d2586b620027edd5b45ff4c72a86cc7beHemant Guptaimport java.math.BigInteger;
24192d793d2586b620027edd5b45ff4c72a86cc7beHemant Guptaimport java.util.Date;
25192d793d2586b620027edd5b45ff4c72a86cc7beHemant Guptaimport java.util.HashMap;
26192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
27192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta/**
28192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * Object representation of message received in messages listing
29192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * <p>
30192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * This object will be received in
31192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * {@link BluetoothMasClient#EVENT_GET_MESSAGES_LISTING} callback message.
32192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta */
33192d793d2586b620027edd5b45ff4c72a86cc7beHemant Guptapublic class BluetoothMapMessage {
34192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
35192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final String mHandle;
36192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
37192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final String mSubject;
38192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
39192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final Date mDateTime;
40192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
41192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final String mSenderName;
42192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
43192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final String mSenderAddressing;
44192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
45192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final String mReplytoAddressing;
46192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
47192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final String mRecipientName;
48192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
49192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final String mRecipientAddressing;
50192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
51192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final Type mType;
52192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
53192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final int mSize;
54192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
55192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final boolean mText;
56192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
57192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final ReceptionStatus mReceptionStatus;
58192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
59192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final int mAttachmentSize;
60192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
61192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final boolean mPriority;
62192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
63192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final boolean mRead;
64192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
65192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final boolean mSent;
66192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
67192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final boolean mProtected;
68192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
69192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public enum Type {
70192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        UNKNOWN, EMAIL, SMS_GSM, SMS_CDMA, MMS
71192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    };
72192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
73192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public enum ReceptionStatus {
74192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        UNKNOWN, COMPLETE, FRACTIONED, NOTIFICATION
75192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
76192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
77192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    BluetoothMapMessage(HashMap<String, String> attrs) throws IllegalArgumentException {
78192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        int size;
79192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
80192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        try {
81192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            /* just to validate */
82192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            new BigInteger(attrs.get("handle"), 16);
83192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
84192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            mHandle = attrs.get("handle");
85192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        } catch (NumberFormatException e) {
86192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            /*
87192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta             * handle MUST have proper value, if it does not then throw
88192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta             * something here
89192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta             */
90192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            throw new IllegalArgumentException(e);
91192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        }
92192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
93192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mSubject = attrs.get("subject");
944231be1e03b7c5e563fea1fa7c56abfe2a1e61ddHemant Gupta        String dateTime = attrs.get("datetime");
954231be1e03b7c5e563fea1fa7c56abfe2a1e61ddHemant Gupta        //Handle possible NPE when not able to retreive datetime attribute
964231be1e03b7c5e563fea1fa7c56abfe2a1e61ddHemant Gupta        if(dateTime != null){
974231be1e03b7c5e563fea1fa7c56abfe2a1e61ddHemant Gupta            mDateTime = (new ObexTime(dateTime)).getTime();
984231be1e03b7c5e563fea1fa7c56abfe2a1e61ddHemant Gupta        } else {
994231be1e03b7c5e563fea1fa7c56abfe2a1e61ddHemant Gupta            mDateTime = null;
1004231be1e03b7c5e563fea1fa7c56abfe2a1e61ddHemant Gupta        }
101192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
102192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
103192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mSenderName = attrs.get("sender_name");
104192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
105192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mSenderAddressing = attrs.get("sender_addressing");
106192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
107192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mReplytoAddressing = attrs.get("replyto_addressing");
108192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
109192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mRecipientName = attrs.get("recipient_name");
110192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
111192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mRecipientAddressing = attrs.get("recipient_addressing");
112192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
113192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mType = strToType(attrs.get("type"));
114192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
115192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        try {
116192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            size = Integer.parseInt(attrs.get("size"));
117192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        } catch (NumberFormatException e) {
118192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            size = 0;
119192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        }
120192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
121192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mSize = size;
122192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
123192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mText = yesnoToBoolean(attrs.get("text"));
124192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
125192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mReceptionStatus = strToReceptionStatus(attrs.get("reception_status"));
126192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
127192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        try {
128192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            size = Integer.parseInt(attrs.get("attachment_size"));
129192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        } catch (NumberFormatException e) {
130192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            size = 0;
131192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        }
132192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
133192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mAttachmentSize = size;
134192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
135192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mPriority = yesnoToBoolean(attrs.get("priority"));
136192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
137192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mRead = yesnoToBoolean(attrs.get("read"));
138192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
139192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mSent = yesnoToBoolean(attrs.get("sent"));
140192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
141192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mProtected = yesnoToBoolean(attrs.get("protected"));
142192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
143192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
144192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private boolean yesnoToBoolean(String yesno) {
145192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return "yes".equals(yesno);
146192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
147192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
148192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private Type strToType(String s) {
149192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        if ("EMAIL".equals(s)) {
150192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            return Type.EMAIL;
151192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        } else if ("SMS_GSM".equals(s)) {
152192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            return Type.SMS_GSM;
153192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        } else if ("SMS_CDMA".equals(s)) {
154192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            return Type.SMS_CDMA;
155192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        } else if ("MMS".equals(s)) {
156192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            return Type.MMS;
157192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        }
158192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
159192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return Type.UNKNOWN;
160192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
161192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
162192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private ReceptionStatus strToReceptionStatus(String s) {
163192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        if ("complete".equals(s)) {
164192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            return ReceptionStatus.COMPLETE;
165192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        } else if ("fractioned".equals(s)) {
166192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            return ReceptionStatus.FRACTIONED;
167192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        } else if ("notification".equals(s)) {
168192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            return ReceptionStatus.NOTIFICATION;
169192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        }
170192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
171192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return ReceptionStatus.UNKNOWN;
172192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
173192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
174192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    @Override
175192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public String toString() {
176192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        JSONObject json = new JSONObject();
177192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
178192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        try {
179192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("handle", mHandle);
180192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("subject", mSubject);
181192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("datetime", mDateTime);
182192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("sender_name", mSenderName);
183192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("sender_addressing", mSenderAddressing);
184192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("replyto_addressing", mReplytoAddressing);
185192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("recipient_name", mRecipientName);
186192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("recipient_addressing", mRecipientAddressing);
187192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("type", mType);
188192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("size", mSize);
189192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("text", mText);
190192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("reception_status", mReceptionStatus);
191192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("attachment_size", mAttachmentSize);
192192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("priority", mPriority);
193192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("read", mRead);
194192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("sent", mSent);
195192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("protected", mProtected);
196192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        } catch (JSONException e) {
197192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            // do nothing
198192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        }
199192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
200192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return json.toString();
201192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
202192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
203192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
204192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>handle</code> parameter in MAP
205192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         specification
206192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
207192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public String getHandle() {
208192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mHandle;
209192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
210192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
211192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
212192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>subject</code> parameter in MAP
213192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         specification
214192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
215192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public String getSubject() {
216192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mSubject;
217192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
218192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
219192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
220192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return <code>Date</code> object corresponding to <code>datetime</code>
221192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         parameter in MAP specification
222192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
223192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public Date getDateTime() {
224192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mDateTime;
225192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
226192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
227192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
228192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>sender_name</code> parameter in MAP
229192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         specification
230192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
231192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public String getSenderName() {
232192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mSenderName;
233192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
234192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
235192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
236192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>sender_addressing</code> parameter
237192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         in MAP specification
238192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
239192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public String getSenderAddressing() {
240192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mSenderAddressing;
241192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
242192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
243192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
244192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>replyto_addressing</code> parameter
245192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         in MAP specification
246192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
247192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public String getReplytoAddressing() {
248192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mReplytoAddressing;
249192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
250192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
251192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
252192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>recipient_name</code> parameter in
253192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         MAP specification
254192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
255192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public String getRecipientName() {
256192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mRecipientName;
257192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
258192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
259192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
260192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>recipient_addressing</code>
261192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         parameter in MAP specification
262192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
263192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public String getRecipientAddressing() {
264192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mRecipientAddressing;
265192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
266192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
267192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
268192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return {@link Type} object corresponding to <code>type</code> parameter
269192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         in MAP specification
270192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
271192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public Type getType() {
272192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mType;
273192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
274192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
275192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
276192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>size</code> parameter in MAP
277192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         specification
278192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
279192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public int getSize() {
280192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mSize;
281192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
282192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
283192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
284192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return {@link .ReceptionStatus} object corresponding to
285192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         <code>reception_status</code> parameter in MAP specification
286192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
287192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public ReceptionStatus getReceptionStatus() {
288192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mReceptionStatus;
289192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
290192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
291192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
292192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>attachment_size</code> parameter in
293192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         MAP specification
294192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
295192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public int getAttachmentSize() {
296192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mAttachmentSize;
297192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
298192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
299192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
300192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>text</code> parameter in MAP
301192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         specification
302192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
303192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public boolean isText() {
304192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mText;
305192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
306192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
307192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
308192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>priority</code> parameter in MAP
309192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         specification
310192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
311192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public boolean isPriority() {
312192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mPriority;
313192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
314192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
315192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
316192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>read</code> parameter in MAP
317192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         specification
318192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
319192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public boolean isRead() {
320192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mRead;
321192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
322192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
323192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
324192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>sent</code> parameter in MAP
325192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         specification
326192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
327192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public boolean isSent() {
328192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mSent;
329192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
330192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
331192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
332192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>protected</code> parameter in MAP
333192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         specification
334192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
335192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public boolean isProtected() {
336192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mProtected;
337192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
338192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta}
339