1 /*
2  * Copyright (C) 2015 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.google.android.auto.mapservice;
18 
19 import android.os.Parcel;
20 import android.os.Parcelable;
21 
22 public final class BluetoothMapMessage implements Parcelable {
23     /** Types of Messages. */
24     public static final int TYPE_SMS_GSM = 1;
25     public static final int TYPE_SMS_CDMA = 2;
26     public static final int TYPE_MMS = 3;
27     public static final int TYPE_UNKNOWN = 99;
28 
29     /** Status of the message. */
30     public static final int STATUS_READ = 1;
31     public static final int STATUS_UNREAD = 2;
32     public static final int STATUS_UNKNOWN = 99;
33 
34     // Defines the various metadata field for the message.
35 
36     // If defined, represents a decimal separated number representation.
37     private int mStatus;
38     private int mType;
39     private String mFolder;
40     private int mBodyLength;
41     // When sending a message mRecipient must be populated, and while receiving a message mSender
42     // must be populated.
43     private String mSender;
44     private String mRecipient;
45 
46     // Not used currently.
47     private int mLanguage;
48     private String mVersion;
49 
50     // Actual message content.
51     private String mMessage;
52 
53     public static final Parcelable.Creator<BluetoothMapMessage> CREATOR =
54         new Parcelable.Creator<BluetoothMapMessage>() {
55         public BluetoothMapMessage createFromParcel(Parcel in) {
56             return new BluetoothMapMessage(in);
57         }
58 
59         public BluetoothMapMessage[] newArray(int size) {
60             return new BluetoothMapMessage[size];
61         }
62     };
63 
BluetoothMapMessage()64     public BluetoothMapMessage() { }
65 
setRecipient(String recipient)66     public void setRecipient(String recipient) {
67         mRecipient = recipient;
68     }
69 
getRecipient()70     public String getRecipient() {
71         return mRecipient;
72     }
73 
setSender(String sender)74     public void setSender(String sender) {
75         mSender = sender;
76     }
77 
getSender()78     public String getSender() {
79         return mSender;
80     }
81 
setType(int type)82     public void setType(int type) {
83         mType = type;
84     }
85 
getType()86     public int getType() {
87         return mType;
88     }
89 
setStatus(int status)90     public void setStatus(int status) {
91         mStatus = status;
92     }
93 
getStatus()94     public  int getStatus() {
95         return mStatus;
96     }
97 
setFolder(String folder)98     public void setFolder(String folder) {
99         mFolder = folder;
100     }
101 
getFolder()102     public String getFolder() {
103         return mFolder;
104     }
105 
setMessage(String message)106     public void setMessage(String message) {
107         mMessage = message;
108     }
109 
getMessage()110     public String getMessage() {
111         return mMessage;
112     }
113 
BluetoothMapMessage(Parcel in)114     private BluetoothMapMessage(Parcel in) {
115         readFromParcel(in);
116     }
117 
writeToParcel(Parcel out, int flags)118     public void writeToParcel(Parcel out, int flags) {
119         // Write metadata.
120         out.writeInt(mStatus);
121         out.writeInt(mType);
122         out.writeString(mFolder);
123         out.writeInt(mBodyLength);
124         // Currently not in use.
125         out.writeInt(mLanguage);
126         out.writeString(mVersion);
127 
128         // Write sender/receiver info.
129         out.writeString(mSender);
130         out.writeString(mRecipient);
131 
132         // Actual message.
133         out.writeString(mMessage);
134     }
135 
describeContents()136     public int describeContents() {
137       return 0;
138     }
139 
readFromParcel(Parcel in)140     public void readFromParcel(Parcel in) {
141         // Read metadata.
142         mStatus = in.readInt();
143         mType = in.readInt();
144         mFolder = in.readString();
145         mBodyLength = in.readInt();
146         // Currently not used metadata.
147         mLanguage = in.readInt();
148         mVersion = in.readString();
149 
150         // Read sender/receiver info.
151         mSender = in.readString();
152         mRecipient = in.readString();
153 
154         // Read actual content.
155         mMessage = in.readString();
156     }
157 
toString()158     public String toString() {
159         return "Message:\nSender: " + mSender+ "\nMessage: " + mMessage;
160     }
161 }
162