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