package treehou.se.habit.ui.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import io.realm.RealmChangeListener;
import io.realm.RealmResults;
import treehou.se.habit.R;
import treehou.se.habit.core.db.model.ServerDB;
public class ServersAdapter extends RecyclerView.Adapter<ServersAdapter.ServerHolder> {
private RealmResults<ServerDB> realmResults;
private Context context;
private ItemListener itemListener = new DummyItemListener();
public class ServerHolder extends RecyclerView.ViewHolder {
public final TextView lblName;
public ServerHolder(View view) {
super(view);
lblName = (TextView) view.findViewById(R.id.lbl_server);
}
}
public ServersAdapter(Context context, final RealmResults<ServerDB> realmResults) {
if (context == null) {
throw new IllegalArgumentException("Context cannot be null");
}
this.context = context;
this.realmResults = realmResults;
}
@Override
public ServerHolder onCreateViewHolder(ViewGroup viewGroup, int position) {
LayoutInflater inflater = LayoutInflater.from(context);
View itemView = inflater.inflate(R.layout.item_server, null);
return new ServerHolder(itemView);
}
@Override
public void onBindViewHolder(final ServerHolder serverHolder, final int position) {
ServerDB server = realmResults.get(position);
serverHolder.lblName.setText(server.getDisplayName());
serverHolder.itemView.setOnClickListener(v -> itemListener.onItemClickListener(serverHolder));
serverHolder.itemView.setOnLongClickListener(v -> itemListener.onItemLongClickListener(serverHolder));
}
@Override
public int getItemCount() {
return realmResults.size();
}
public ServerDB getItem(int position) {
return realmResults.get(position);
}
public interface ItemListener {
void onItemClickListener(ServerHolder serverHolder);
boolean onItemLongClickListener(ServerHolder serverHolder);
}
public class DummyItemListener implements ItemListener {
@Override
public void onItemClickListener(ServerHolder serverHolder) {
}
@Override
public boolean onItemLongClickListener(ServerHolder serverHolder) {
return false;
}
}
/**
* Add adapter change listener
* @param itemListener
*/
public void setItemListener(ItemListener itemListener) {
if (itemListener == null) {
this.itemListener = new DummyItemListener();
return;
}
this.itemListener = itemListener;
}
}