2019-05-13 03:19:17 +02:00
|
|
|
package org.mercury_im.messenger.ui.roster;
|
2019-04-14 18:12:04 +02:00
|
|
|
|
2019-05-18 10:06:16 +02:00
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import androidx.recyclerview.widget.RecyclerView;
|
2019-04-14 18:12:04 +02:00
|
|
|
import android.view.LayoutInflater;
|
|
|
|
import android.view.View;
|
|
|
|
import android.view.ViewGroup;
|
|
|
|
import android.widget.TextView;
|
|
|
|
|
2019-05-13 03:19:17 +02:00
|
|
|
import org.mercury_im.messenger.R;
|
2019-05-27 21:34:11 +02:00
|
|
|
import org.mercury_im.messenger.persistence.room.model.RoomContactModel;
|
2019-04-14 18:12:04 +02:00
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
2019-06-03 01:16:49 +02:00
|
|
|
import butterknife.BindView;
|
|
|
|
import butterknife.ButterKnife;
|
|
|
|
|
2019-05-04 00:27:02 +02:00
|
|
|
public class RosterRecyclerViewAdapter
|
2019-06-03 01:16:49 +02:00
|
|
|
extends RecyclerView.Adapter<RosterRecyclerViewAdapter.AbstractRosterItem> {
|
2019-04-14 18:12:04 +02:00
|
|
|
|
2019-05-27 21:34:11 +02:00
|
|
|
private List<RoomContactModel> entryModelList;
|
2019-04-14 18:12:04 +02:00
|
|
|
|
2019-05-27 21:34:11 +02:00
|
|
|
public RosterRecyclerViewAdapter(List<RoomContactModel> entryModelList) {
|
2019-04-14 18:12:04 +02:00
|
|
|
this.entryModelList = entryModelList;
|
|
|
|
}
|
|
|
|
|
|
|
|
@NonNull
|
|
|
|
@Override
|
2019-06-03 01:16:49 +02:00
|
|
|
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));
|
|
|
|
// }
|
2019-04-14 18:12:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2019-06-03 01:16:49 +02:00
|
|
|
public void onBindViewHolder(@NonNull AbstractRosterItem holder, int position) {
|
2019-05-27 21:34:11 +02:00
|
|
|
RoomContactModel model = entryModelList.get(position);
|
2019-06-03 01:16:49 +02:00
|
|
|
// switch (holder.getItemViewType()) {
|
|
|
|
// case RosterItemViewHolder.TYPE:
|
|
|
|
RosterItemViewHolder rosterItem = (RosterItemViewHolder) holder;
|
2019-06-10 02:52:08 +02:00
|
|
|
//rosterItem.jidView.setText(model.getJid().toString());
|
2019-06-03 01:16:49 +02:00
|
|
|
rosterItem.nicknameView.setText(model.getNickname());
|
|
|
|
rosterItem.itemView.setTag(model);
|
|
|
|
// break;
|
|
|
|
// }
|
2019-04-14 18:12:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int getItemCount() {
|
|
|
|
return entryModelList.size();
|
|
|
|
}
|
|
|
|
|
2019-05-27 21:34:11 +02:00
|
|
|
public void setItems(List<RoomContactModel> rosterEntryModels) {
|
2019-04-14 18:12:04 +02:00
|
|
|
this.entryModelList = rosterEntryModels;
|
|
|
|
notifyDataSetChanged();
|
|
|
|
}
|
|
|
|
|
2019-06-03 01:16:49 +02:00
|
|
|
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;
|
2019-04-14 18:12:04 +02:00
|
|
|
|
2019-06-03 01:16:49 +02:00
|
|
|
@BindView(R.id.roster_entry__nickname)
|
|
|
|
TextView nicknameView;
|
2019-04-14 18:12:04 +02:00
|
|
|
|
2019-06-03 01:16:49 +02:00
|
|
|
public RosterItemViewHolder(View itemView) {
|
2019-04-14 18:12:04 +02:00
|
|
|
super(itemView);
|
2019-06-03 01:16:49 +02:00
|
|
|
ButterKnife.bind(itemView);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
void bind(RosterViewModel viewModel) {
|
|
|
|
// viewModel.getRosterEntryList().observe();
|
2019-04-14 18:12:04 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|