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 AccountGroupViewHolder extends RecyclerView.ViewHolder
implements View.OnClickListener, View.OnCreateContextMenuListener {
private static final String LOG_TAG = AccountGroupViewHolder.class.getSimpleName();
final ImageView avatar;
final TextView name;
final TextView secondLineMessage;
final TextView smallRightText;
final ImageView smallRightIcon;
final ImageView statusIcon;
final ImageView offlineShadow;
private final AccountGroupClickListener listener;
interface AccountGroupClickListener {
void onAccountAvatarClick(int adapterPosition);
void onAccountMenuClick(int adapterPosition, View view);
void onAccountGroupClick(int adapterPosition);
void onAccountGroupCreateContextMenu(int adapterPosition, ContextMenu menu);
}
AccountGroupViewHolder(View view, AccountGroupClickListener listener) {
super(view);
this.listener = listener;
itemView.setOnClickListener(this);
itemView.setOnCreateContextMenuListener(this);
avatar = (ImageView) view.findViewById(R.id.avatar);
avatar.setOnClickListener(this);
name = (TextView) view.findViewById(R.id.contact_list_item_name);
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);
statusIcon = (ImageView) view.findViewById(R.id.contact_list_item_status_icon);
statusIcon.setOnClickListener(this);
offlineShadow = (ImageView) view.findViewById(R.id.offline_shadow);
}
@Override
public void onClick(View view) {
int adapterPosition = getAdapterPosition();
if (adapterPosition == RecyclerView.NO_POSITION) {
LogManager.w(LOG_TAG, "onClick: no position");
return;
}
if (view.getId() == R.id.avatar) {
listener.onAccountAvatarClick(adapterPosition);
} else if (view.getId() == R.id.contact_list_item_status_icon) {
listener.onAccountMenuClick(adapterPosition, view);
} else {
listener.onAccountGroupClick(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.onAccountGroupCreateContextMenu(adapterPosition, menu);
}
}