// Path: app/src/main/java/ch/tarsier/tarsier/domain/model/Chat.java
// public class Chat implements Serializable {
// 
//     private long mId;
//     private String mTitle;
//     private Peer mHost;
//     private boolean mPrivate;
// 
//     public Chat() {
//         mId = -1;
//     }
// 
//     public long getId() {
//         return mId;
//     }
// 
//     public void setId(long id) {
//         mId = id;
//     }
// 
//     /**
//      * @return the other peer in a private chat or the name of the chatroom in a chatroom.
//      */
//     public String getTitle() {
//         if (isPrivate()) {
//             return getHost().getUserName();
//         }
// 
//         return Tarsier.app().getString(R.string.chatroom_default_title);
//     }
// 
//     public void setTitle(String title) {
//         mTitle = title;
//     }
// 
//     public boolean isPrivate() {
//         return mPrivate;
//     }
// 
//     public void setPrivate(boolean isPrivate) {
//         mPrivate = isPrivate;
//     }
// 
//     public Peer getHost() {
//         return mHost;
//     }
// 
//     public void setHost(Peer host) {
//         mHost = host;
//     }
// 
//     public boolean isHost(Peer peer) {
//         return !(peer == null || getHost() == null) && getHost().getId() == peer.getId();
// 
//     }
// 
//     public Bitmap getPicture() {
//         if (isPrivate()) {
//             return getHost().getPicture();
//         } else {
//             return BitmapFactory.decodeResource(Tarsier.app().getResources(),
//                     R.drawable.tarsier_group_placeholder);
//         }
//     }
// }
// 
// Path: app/src/main/java/ch/tarsier/tarsier/domain/model/Message.java
// public class Message implements BubbleListViewItem {
//     private long mChatId;
//     private String mText;
//     private PublicKey mSenderPublicKey;
//     private long mDateTime;
//     private boolean mIsSentByUser;
//     // mId is set to a value >= 0 when the Message is inserted into the database
//     private long mId;
// 
//     public Message() {
//         mId = -1;
//     }
// 
//     /**
//      * Create a message sent by a peer
//      *
//      * @param chatId the id of the chat in which the message has been sent
//      * @param text the body of the message
//      * @param senderPublicKey the public of the peer which sent the message
//      * @param dateTime the timestamp at which the message has been sent
//      */
//     public Message(long chatId, String text, byte[] senderPublicKey, long dateTime) {
//         this(chatId, text, new PublicKey(senderPublicKey), dateTime);
//     }
// 
//     /**
//      * Create a message sent by a peer
//      *
//      * @param chatId the id of the chat in which the message has been sent
//      * @param text the body of the message
//      * @param senderPublicKey the public key of the peer which sent the message
//      * @param dateTime the timestamp at which the message has been sent
//      */
//     public Message(long chatId, String text, PublicKey senderPublicKey, long dateTime) {
//         this();
//         mChatId = chatId;
//         mText = text;
//         mSenderPublicKey = senderPublicKey;
//         mIsSentByUser = false;
//         mDateTime = dateTime;
//     }
// 
//     /**
//      * Create a message sent by the user
//      *
//      * @param chatId the id of the chat in which the message has been sent
//      * @param text the body of the message
//      * @param dateTime the timestamp at which the message has been sent
//      */
//     public Message(long chatId, String text, long dateTime) {
//         this();
//         mChatId = chatId;
//         mText = text;
//         mSenderPublicKey = new PublicKey(Tarsier.app().getUserPreferences().getKeyPair().getPublicKey());
//         mIsSentByUser = true;
//         mDateTime = dateTime;
//     }
// 
//     public String getText() {
//         return mText;
//     }
// 
//     public long getChatId() {
//         return mChatId;
//     }
// 
//     public PublicKey getSenderPublicKey() {
//         return mSenderPublicKey;
//     }
// 
//     public long getDateTime() {
//         return mDateTime;
//     }
// 
//     public boolean isSentByUser() {
//         return mIsSentByUser;
//     }
// 
//     public void setId(long newId) {
//         mId = newId;
//     }
// 
//     public void setText(String newText) {
//         mText = newText;
//     }
// 
//     public void setChatId(long newId) {
//         mChatId = newId;
//     }
// 
//     public void setDateTime(long newTime) {
//         mDateTime = newTime;
//     }
// 
//     /**
//      * Compute the position of the message in the messages list, depending on whether
//      * it was sent by the user or another peer.
//      *
//      * @return Right if sent by user, left otherwise.
//      */
//     @Override
//     public BubbleAdapter.EndlessListViewType getEndlessListViewType() {
//         return mIsSentByUser ? BubbleAdapter.EndlessListViewType.BUBBLE_RIGHT
//                 : BubbleAdapter.EndlessListViewType.BUBBLE_LEFT;
//     }
// 
//     @Override
//     public long getId() {
//         return mId;
//     }
// }


import ch.tarsier.tarsier.domain.model.Chat;
import ch.tarsier.tarsier.domain.model.Message;
package ch.tarsier.tarsier.event;


/**
 * SendMessageEvent is the event representing a message being sent.
 *
 * @author romac
 */
public class SendMessageEvent {

    private final Chat mChat;
    private final Message mMessage;

// Path: app/src/main/java/ch/tarsier/tarsier/domain/model/Chat.java
// public class Chat implements Serializable {
// 
//     private long mId;
//     private String mTitle;
//     private Peer mHost;
//     private boolean mPrivate;
// 
//     public Chat() {
//         mId = -1;
//     }
// 
//     public long getId() {
//         return mId;
//     }
// 
//     public void setId(long id) {
//         mId = id;
//     }
// 
//     /**
//      * @return the other peer in a private chat or the name of the chatroom in a chatroom.
//      */
//     public String getTitle() {
//         if (isPrivate()) {
//             return getHost().getUserName();
//         }
// 
//         return Tarsier.app().getString(R.string.chatroom_default_title);
//     }
// 
//     public void setTitle(String title) {
//         mTitle = title;
//     }
// 
//     public boolean isPrivate() {
//         return mPrivate;
//     }
// 
//     public void setPrivate(boolean isPrivate) {
//         mPrivate = isPrivate;
//     }
// 
//     public Peer getHost() {
//         return mHost;
//     }
// 
//     public void setHost(Peer host) {
//         mHost = host;
//     }
// 
//     public boolean isHost(Peer peer) {
//         return !(peer == null || getHost() == null) && getHost().getId() == peer.getId();
// 
//     }
// 
//     public Bitmap getPicture() {
//         if (isPrivate()) {
//             return getHost().getPicture();
//         } else {
//             return BitmapFactory.decodeResource(Tarsier.app().getResources(),
//                     R.drawable.tarsier_group_placeholder);
//         }
//     }
// }
// 
// Path: app/src/main/java/ch/tarsier/tarsier/domain/model/Message.java
// public class Message implements BubbleListViewItem {
//     private long mChatId;
//     private String mText;
//     private PublicKey mSenderPublicKey;
//     private long mDateTime;
//     private boolean mIsSentByUser;
//     // mId is set to a value >= 0 when the Message is inserted into the database
//     private long mId;
// 
//     public Message() {
//         mId = -1;
//     }
// 
//     /**
//      * Create a message sent by a peer
//      *
//      * @param chatId the id of the chat in which the message has been sent
//      * @param text the body of the message
//      * @param senderPublicKey the public of the peer which sent the message
//      * @param dateTime the timestamp at which the message has been sent
//      */
//     public Message(long chatId, String text, byte[] senderPublicKey, long dateTime) {
//         this(chatId, text, new PublicKey(senderPublicKey), dateTime);
//     }
// 
//     /**
//      * Create a message sent by a peer
//      *
//      * @param chatId the id of the chat in which the message has been sent
//      * @param text the body of the message
//      * @param senderPublicKey the public key of the peer which sent the message
//      * @param dateTime the timestamp at which the message has been sent
//      */
//     public Message(long chatId, String text, PublicKey senderPublicKey, long dateTime) {
//         this();
//         mChatId = chatId;
//         mText = text;
//         mSenderPublicKey = senderPublicKey;
//         mIsSentByUser = false;
//         mDateTime = dateTime;
//     }
// 
//     /**
//      * Create a message sent by the user
//      *
//      * @param chatId the id of the chat in which the message has been sent
//      * @param text the body of the message
//      * @param dateTime the timestamp at which the message has been sent
//      */
//     public Message(long chatId, String text, long dateTime) {
//         this();
//         mChatId = chatId;
//         mText = text;
//         mSenderPublicKey = new PublicKey(Tarsier.app().getUserPreferences().getKeyPair().getPublicKey());
//         mIsSentByUser = true;
//         mDateTime = dateTime;
//     }
// 
//     public String getText() {
//         return mText;
//     }
// 
//     public long getChatId() {
//         return mChatId;
//     }
// 
//     public PublicKey getSenderPublicKey() {
//         return mSenderPublicKey;
//     }
// 
//     public long getDateTime() {
//         return mDateTime;
//     }
// 
//     public boolean isSentByUser() {
//         return mIsSentByUser;
//     }
// 
//     public void setId(long newId) {
//         mId = newId;
//     }
// 
//     public void setText(String newText) {
//         mText = newText;
//     }
// 
//     public void setChatId(long newId) {
//         mChatId = newId;
//     }
// 
//     public void setDateTime(long newTime) {
//         mDateTime = newTime;
//     }
// 
//     /**
//      * Compute the position of the message in the messages list, depending on whether
//      * it was sent by the user or another peer.
//      *
//      * @return Right if sent by user, left otherwise.
//      */
//     @Override
//     public BubbleAdapter.EndlessListViewType getEndlessListViewType() {
//         return mIsSentByUser ? BubbleAdapter.EndlessListViewType.BUBBLE_RIGHT
//                 : BubbleAdapter.EndlessListViewType.BUBBLE_LEFT;
//     }
// 
//     @Override
//     public long getId() {
//         return mId;
//     }
// }


// Path: app/src/main/java/ch/tarsier/tarsier/event/SendMessageEvent.java
import ch.tarsier.tarsier.domain.model.Chat;
import ch.tarsier.tarsier.domain.model.Message;

package ch.tarsier.tarsier.event;


/**
 * SendMessageEvent is the event representing a message being sent.
 *
 * @author romac
 */
public class SendMessageEvent {

    private final Chat mChat;
    private final Message mMessage;

    public SendMessageEvent(Chat chat, Message message) {