package it.slyce.messaging.message.messageItem.general.generalOptions; import android.content.Context; import android.graphics.Color; import android.graphics.PorterDuff; import android.support.v4.content.ContextCompat; import android.view.View; import android.widget.Button; import it.slyce.messaging.R; import it.slyce.messaging.message.GeneralOptionsMessage; import it.slyce.messaging.message.MessageSource; import it.slyce.messaging.message.messageItem.MessageItem; import it.slyce.messaging.message.messageItem.MessageItemType; import it.slyce.messaging.message.messageItem.MessageViewHolder; public class MessageGeneralOptionsItem extends MessageItem { private Context context; public MessageGeneralOptionsItem(GeneralOptionsMessage generalOptionsMessage, Context context) { super(generalOptionsMessage); this.context = context; } @Override public void buildMessageItem(MessageViewHolder messageViewHolder) { final MessageGeneralOptionsViewHolder viewHolder = (MessageGeneralOptionsViewHolder) messageViewHolder; final GeneralOptionsMessage generalTextMessage = (GeneralOptionsMessage) message; if (!generalTextMessage.isSelected()) { viewHolder.titleTextView.setText(generalTextMessage.getTitle()); viewHolder.optionsLinearLayout.removeAllViews(); for (int i = 0; i < generalTextMessage.getOptions().length; i++) { String option = generalTextMessage.getOptions()[i]; Button button = new Button(context); button.setText(option); button.getBackground().setColorFilter(ContextCompat.getColor(context, R.color.background_gray_light), PorterDuff.Mode.MULTIPLY); button.setTextColor(Color.BLUE); final int finalI = i; button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { viewHolder.optionsLinearLayout.removeAllViews(); generalTextMessage.setSelected(); String text = generalTextMessage.getOnOptionSelectedListener().onOptionSelected(finalI); viewHolder.titleTextView.setText(text); } }); viewHolder.optionsLinearLayout.addView(button); } } else { viewHolder.titleTextView.setText(generalTextMessage.getFinalText()); viewHolder.optionsLinearLayout.removeAllViews(); } } @Override public MessageItemType getMessageItemType() { return MessageItemType.GENERAL_OPTIONS; } @Override public MessageSource getMessageSource() { return MessageSource.GENERAL; } }