1b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo/* 2b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo * Copyright (C) 2014 The Android Open Source Project 3b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo * 4b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo * Licensed under the Apache License, Version 2.0 (the "License"); 5b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo * you may not use this file except in compliance with the License. 6b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo * You may obtain a copy of the License at 7b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo * 8b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo * http://www.apache.org/licenses/LICENSE-2.0 9b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo * 10b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo * Unless required by applicable law or agreed to in writing, software 11b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo * distributed under the License is distributed on an "AS IS" BASIS, 12b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo * See the License for the specific language governing permissions and 14b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo * limitations under the License. 15b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo */ 16b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 17b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzopackage com.android.bluetooth.mapclient; 18b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 19b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzoimport com.android.vcard.VCardEntry; 20b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 21b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzoimport org.json.JSONException; 22b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzoimport org.json.JSONObject; 23b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 24b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzoimport java.util.ArrayList; 25b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 26b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo/** 27b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo * Object representation of message in bMessage format 28b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo * <p> 29b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo * This object will be received in {@link MasClient#EVENT_GET_MESSAGE} 30b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo * callback message. 31b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo */ 32b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzopublic class Bmessage { 33b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 34b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo String mBmsgVersion; 35b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo Status mBmsgStatus; 36b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo Type mBmsgType; 37b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo String mBmsgFolder; 38b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 39b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo String mBbodyEncoding; 40b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo String mBbodyCharset; 41b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo String mBbodyLanguage; 42b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo int mBbodyLength; 43b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 44b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo String mMessage; 45b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 46b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo ArrayList<VCardEntry> mOriginators; 47b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo ArrayList<VCardEntry> mRecipients; 48b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 49b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo /** 50b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo * Constructs empty message object 51b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo */ 52b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public Bmessage() { 53b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo mOriginators = new ArrayList<VCardEntry>(); 54b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo mRecipients = new ArrayList<VCardEntry>(); 55b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 56b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 57b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public VCardEntry getOriginator() { 58b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo if (mOriginators.size() > 0) { 59b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return mOriginators.get(0); 60b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } else { 61b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return null; 62b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 63b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 64b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 65b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public ArrayList<VCardEntry> getOriginators() { 66b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return mOriginators; 67b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 68b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 69b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public Bmessage addOriginator(VCardEntry vcard) { 70b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo mOriginators.add(vcard); 71b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return this; 72b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 73b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 74b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public ArrayList<VCardEntry> getRecipients() { 75b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return mRecipients; 76b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 77b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 78b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public Bmessage addRecipient(VCardEntry vcard) { 79b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo mRecipients.add(vcard); 80b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return this; 81b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 82b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 83b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public Status getStatus() { 84b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return mBmsgStatus; 85b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 86b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 87b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public Bmessage setStatus(Status status) { 88b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo mBmsgStatus = status; 89b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return this; 90b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 91b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 92b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public Type getType() { 93b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return mBmsgType; 94b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 95b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 96b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public Bmessage setType(Type type) { 97b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo mBmsgType = type; 98b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return this; 99b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 100b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 101b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public String getFolder() { 102b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return mBmsgFolder; 103b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 104b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 105b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public Bmessage setFolder(String folder) { 106b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo mBmsgFolder = folder; 107b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return this; 108b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 109b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 110b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public String getEncoding() { 111b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return mBbodyEncoding; 112b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 113b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 114b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public Bmessage setEncoding(String encoding) { 115b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo mBbodyEncoding = encoding; 116b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return this; 117b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 118b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 119b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public String getCharset() { 120b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return mBbodyCharset; 121b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 122b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 123b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public Bmessage setCharset(String charset) { 124b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo mBbodyCharset = charset; 125b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return this; 126b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 127b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 128b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public String getLanguage() { 129b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return mBbodyLanguage; 130b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 131b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 132b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public Bmessage setLanguage(String language) { 133b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo mBbodyLanguage = language; 134b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return this; 135b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 136b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 137b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public String getBodyContent() { 138b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return mMessage; 139b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 140b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 141b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public Bmessage setBodyContent(String body) { 142b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo mMessage = body; 143b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return this; 144b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 145b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 146b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo @Override 147b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public String toString() { 148b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo JSONObject json = new JSONObject(); 149b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 150b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo try { 151b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo json.put("status", mBmsgStatus); 152b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo json.put("type", mBmsgType); 153b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo json.put("folder", mBmsgFolder); 154b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo json.put("charset", mBbodyCharset); 155b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo json.put("message", mMessage); 156b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } catch (JSONException e) { 157b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo // do nothing 158b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 159b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 160b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo return json.toString(); 161b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 162b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 163b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public enum Status { 164b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo READ, UNREAD 165b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 166b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo 167b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo public enum Type { 168b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo EMAIL, SMS_GSM, SMS_CDMA, MMS 169b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo } 170b68b83c0463161ce65922ec606f12244446efab1Joseph Pirozzo} 171