package com.example.rover;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import com.example.rover.RegionFragment.OnRegionFragmentInteractionListener;
import com.google.android.gms.location.Geofence;
import java.util.List;
/**
* {@link RecyclerView.Adapter} that can display a {@link Geofence} and makes a call to the
* specified {@link OnRegionFragmentInteractionListener}.
* TODO: Replace the implementation with code for your data type.
*/
public class RegionRecyclerViewAdapter extends RecyclerView.Adapter<RegionRecyclerViewAdapter.ViewHolder> {
private final List<Geofence> mValues;
private final OnRegionFragmentInteractionListener mListener;
public RegionRecyclerViewAdapter(List<Geofence> items, OnRegionFragmentInteractionListener listener) {
mValues = items;
mListener = listener;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.fragment_region, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
Geofence geofence = mValues.get(position);
final String id = geofence.getRequestId();
holder.mItem = mValues.get(position);
holder.mIdView.setText("G");
holder.mContentView.setText(id);
if (mListener != null) {
holder.mEnterButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mListener.onRegionFragmentEnterClick(id);
}
});
holder.mExitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mListener.onRegionFragmentExitClick(id);
}
});
}
}
@Override
public int getItemCount() {
return mValues.size();
}
public void clear() {
mValues.clear();
notifyDataSetChanged();
}
public void addAll(List<Geofence> list) {
mValues.addAll(list);
notifyDataSetChanged();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public final View mView;
public final TextView mIdView;
public final TextView mContentView;
public final Button mEnterButton;
public final Button mExitButton;
public Geofence mItem;
public ViewHolder(View view) {
super(view);
mView = view;
mIdView = (TextView) view.findViewById(R.id.id);
mContentView = (TextView) view.findViewById(R.id.content);
mEnterButton = (Button)view.findViewById(R.id.enterButton);
mExitButton = (Button)view.findViewById(R.id.exitButton);
}
@Override
public String toString() {
return super.toString() + " '" + mContentView.getText() + "'";
}
}
}