13b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux/* 23b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux * Copyright (C) 2014 The Android Open Source Project 33b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux * 43b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux * Licensed under the Apache License, Version 2.0 (the "License"); 53b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux * you may not use this file except in compliance with the License. 63b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux * You may obtain a copy of the License at 73b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux * 83b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux * http://www.apache.org/licenses/LICENSE-2.0 93b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux * 103b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux * Unless required by applicable law or agreed to in writing, software 113b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux * distributed under the License is distributed on an "AS IS" BASIS, 123b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux * See the License for the specific language governing permissions and 143b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux * limitations under the License. 153b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux */ 163b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux 173b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieuxpackage com.android.mail.providers; 183b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux 193b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieuximport android.os.Parcel; 203b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieuximport android.os.Parcelable; 213b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux 223b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieuximport com.google.common.base.Objects; 233b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux 243b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieuxpublic class ParticipantInfo implements Parcelable { 253b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux 263b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux /** the pretty name of the participant if one exists */ 273b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux public String name; 283b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux 293b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux /** the email address of the participant if one exists */ 303b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux public String email; 313b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux 323b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux /** priority of the participant */ 333b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux public int priority; 343b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux 353b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux /** {@code true} if the participant has read the entire conversation; {@code false} otherwise */ 363b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux public boolean readConversation; 373b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux 383b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux public ParticipantInfo(String name, String email, int priority, boolean readConversation) { 393b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux this.name = name; 403b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux this.email = email; 413b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux this.priority = priority; 423b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux this.readConversation = readConversation; 433b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux } 443b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux 453b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux public boolean markRead(boolean isRead) { 463b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux if (readConversation != isRead) { 473b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux readConversation = isRead; 483b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux return true; 493b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux } 503b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux return false; 513b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux } 523b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux 533b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux @Override 543b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux public int hashCode() { 553b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux return Objects.hashCode(name, email, priority, readConversation); 563b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux } 573b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux 583b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux public static final Creator<ParticipantInfo> CREATOR = new Creator<ParticipantInfo>() { 593b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux @Override 603b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux public ParticipantInfo createFromParcel(Parcel parcel) { 613b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux return new ParticipantInfo(parcel); 623b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux } 633b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux 643b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux @Override 653b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux public ParticipantInfo[] newArray(int size) { 663b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux return new ParticipantInfo[size]; 673b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux } 683b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux }; 693b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux 703b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux public ParticipantInfo(Parcel in) { 713b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux name = in.readString(); 723b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux email = in.readString(); 733b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux priority = in.readInt(); 743b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux readConversation = in.readInt() != 0; 753b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux } 763b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux 773b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux @Override 783b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux public int describeContents() { 793b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux return 0; 803b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux } 813b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux 823b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux @Override 833b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux public void writeToParcel(Parcel out, int flags) { 843b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux out.writeString(name); 853b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux out.writeString(email); 863b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux out.writeInt(priority); 873b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux out.writeInt(readConversation ? 1 : 0); 883b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux } 893b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux 903b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux @Override 913b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux public String toString() { 923b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux return "[ParticipantInfo: readConversation = " + readConversation + 933b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux ", name = " + name + 943b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux ", email = " + email + 953b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux ", priority = " + priority + 963b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux "]"; 973b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux } 983b59b333ad0693f74f9a8cfb24a468a8acbaca8cJames Lemieux}