Mercury-IM/app/src/main/java/org/mercury_im/messenger/ui/roster/RosterRecyclerViewAdapter.java
2019-06-03 01:16:49 +02:00

91 lines
2.8 KiB
Java

package org.mercury_im.messenger.ui.roster;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import org.mercury_im.messenger.R;
import org.mercury_im.messenger.persistence.room.model.RoomContactModel;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class RosterRecyclerViewAdapter
extends RecyclerView.Adapter<RosterRecyclerViewAdapter.AbstractRosterItem> {
private List<RoomContactModel> entryModelList;
public RosterRecyclerViewAdapter(List<RoomContactModel> entryModelList) {
this.entryModelList = entryModelList;
}
@NonNull
@Override
public AbstractRosterItem onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
// switch (viewType) {
// case RosterItemViewHolder.TYPE:
return new RosterItemViewHolder(LayoutInflater.from(parent.getContext())
.inflate(R.layout.recycler_view_item_roster_entry, parent, false));
// default:
// return new RosterItemViewHolder(LayoutInflater.from(parent.getContext())
// .inflate(R.layout.recycler_view_item_roster_entry, parent, false));
// }
}
@Override
public void onBindViewHolder(@NonNull AbstractRosterItem holder, int position) {
RoomContactModel model = entryModelList.get(position);
// switch (holder.getItemViewType()) {
// case RosterItemViewHolder.TYPE:
RosterItemViewHolder rosterItem = (RosterItemViewHolder) holder;
rosterItem.jidView.setText(model.getJid().toString());
rosterItem.nicknameView.setText(model.getNickname());
rosterItem.itemView.setTag(model);
// break;
// }
}
@Override
public int getItemCount() {
return entryModelList.size();
}
public void setItems(List<RoomContactModel> rosterEntryModels) {
this.entryModelList = rosterEntryModels;
notifyDataSetChanged();
}
public abstract class AbstractRosterItem extends RecyclerView.ViewHolder {
public AbstractRosterItem(@NonNull View itemView) {
super(itemView);
}
abstract void bind(RosterViewModel viewModel);
}
public class RosterItemViewHolder extends AbstractRosterItem {
@BindView(R.id.roster_entry__jid)
TextView jidView;
@BindView(R.id.roster_entry__nickname)
TextView nicknameView;
public RosterItemViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(itemView);
}
@Override
void bind(RosterViewModel viewModel) {
// viewModel.getRosterEntryList().observe();
}
}
}