package com.xabber.android.ui.adapter.contactlist;
import android.support.v7.widget.RecyclerView;
import android.view.ContextMenu;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.xabber.android.R;
import com.xabber.android.data.log.LogManager;
class ContactListItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnCreateContextMenuListener {
private static final String LOG_TAG = ContactListItemViewHolder.class.getSimpleName();
final ImageView color;
final ImageView avatar;
final TextView name;
final TextView outgoingMessageIndicator;
final TextView secondLineMessage;
final TextView smallRightText;
final ImageView smallRightIcon;
final ImageView largeClientIcon;
final ImageView statusIcon;
final ImageView offlineShadow;
final ImageView mucIndicator;
final View separator;
private final ContactClickListener listener;
interface ContactClickListener {
void onContactClick(int adapterPosition);
void onContactAvatarClick(int adapterPosition);
void onContactCreateContextMenu(int adapterPosition, ContextMenu menu);
}
ContactListItemViewHolder(View view, ContactClickListener listener) {
super(view);
this.listener = listener;
itemView.setOnClickListener(this);
itemView.setOnCreateContextMenuListener(this);
color = (ImageView) view.findViewById(R.id.account_color_indicator);
avatar = (ImageView) view.findViewById(R.id.avatar);
avatar.setOnClickListener(this);
name = (TextView) view.findViewById(R.id.contact_list_item_name);
outgoingMessageIndicator = (TextView) view.findViewById(R.id.outgoing_message_indicator);
secondLineMessage = (TextView) view.findViewById(R.id.second_line_message);
smallRightIcon = (ImageView) view.findViewById(R.id.small_right_icon);
smallRightText = (TextView) view.findViewById(R.id.small_right_text);
largeClientIcon = (ImageView) view.findViewById(R.id.client_icon_large);
statusIcon = (ImageView) view.findViewById(R.id.contact_list_item_status_icon);
offlineShadow = (ImageView) view.findViewById(R.id.offline_shadow);
mucIndicator = (ImageView) view.findViewById(R.id.contact_list_item_muc_indicator);
separator = view.findViewById(R.id.contact_list_item_separator);
}
@Override
public void onClick(View v) {
int adapterPosition = getAdapterPosition();
if (adapterPosition == RecyclerView.NO_POSITION) {
LogManager.w(LOG_TAG, "onClick: no position");
return;
}
if (v.getId() == R.id.avatar) {
listener.onContactAvatarClick(adapterPosition);
} else {
listener.onContactClick(adapterPosition);
}
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
int adapterPosition = getAdapterPosition();
if (adapterPosition == RecyclerView.NO_POSITION) {
LogManager.w(LOG_TAG, "onCreateContextMenu: no position");
return;
}
listener.onContactCreateContextMenu(adapterPosition, menu);
}
}