package im.actor.holders; import android.graphics.Color; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import im.actor.core.entity.Message; import im.actor.core.entity.Peer; import im.actor.core.entity.content.AbsContent; import im.actor.core.entity.content.TextContent; import im.actor.develop.R; import im.actor.sdk.controllers.conversation.messages.BubbleLayouter; import im.actor.sdk.controllers.conversation.messages.MessagesAdapter; import im.actor.sdk.controllers.conversation.messages.content.MessageHolder; import im.actor.sdk.controllers.conversation.messages.content.AbsMessageViewHolder; import im.actor.sdk.controllers.conversation.messages.content.preprocessor.PreprocessedData; import im.actor.sdk.controllers.conversation.view.BubbleContainer; public class BubbleTextHolderLayouter implements BubbleLayouter { @Override public boolean isMatch(AbsContent content) { return content instanceof TextContent; } @Override public AbsMessageViewHolder onCreateViewHolder(MessagesAdapter adapter, ViewGroup root, Peer peer) { TextView itemView = new TextView(root.getContext()); itemView.setId(R.id.text); BubbleContainer container = new BubbleContainer(root.getContext()); container.addView(itemView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); return new TextHolderEx(adapter, container); } private class TextHolderEx extends MessageHolder { TextView tv; public TextHolderEx(MessagesAdapter adapter, View itemView) { super(adapter, itemView, false); tv = (TextView) container.findViewById(R.id.text); tv.setTextColor(Color.RED); } @Override protected void bindData(Message message, long readDate, long receiveDate, boolean isUpdated, PreprocessedData preprocessedData) { TextContent content = (TextContent) message.getContent(); tv.setText(content.getText()); } } }