package com.apollographql.apollo.sample.feed; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.apollographql.apollo.sample.FeedQuery; import com.apollographql.apollo.sample.R; import com.apollographql.apollo.sample.fragment.RepositoryFragment; import java.util.Collections; import java.util.List; class GitHuntFeedRecyclerViewAdapter extends RecyclerView.Adapter<GitHuntFeedRecyclerViewAdapter.FeedItemViewHolder> { private List<FeedQuery.FeedEntry> feed = Collections.emptyList(); private GitHuntNavigator navigator; GitHuntFeedRecyclerViewAdapter(GitHuntNavigator navigator) { this.navigator = navigator; } public void setFeed(List<FeedQuery.FeedEntry> feed) { this.feed = feed; this.notifyDataSetChanged(); } @Override public FeedItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext()); final View itemView = layoutInflater.inflate(R.layout.item_githunt_entry, parent, false); return new FeedItemViewHolder(itemView); } @Override public void onBindViewHolder(FeedItemViewHolder holder, int position) { final FeedQuery.FeedEntry feedEntry = this.feed.get(position); holder.setFeedItem(feedEntry, navigator); } @Override public int getItemCount() { return feed.size(); } static class FeedItemViewHolder extends RecyclerView.ViewHolder { private TextView repositoryTitle; private View feedEntryContainer; FeedItemViewHolder(View itemView) { super(itemView); repositoryTitle = (TextView) itemView.findViewById(R.id.tv_repository_name); feedEntryContainer = itemView.findViewById(R.id.feed_entry_container); } void setFeedItem(FeedQuery.FeedEntry feedItem, final GitHuntNavigator navigator) { final RepositoryFragment repositoryFragment = feedItem.repository().fragments().repositoryFragment(); repositoryTitle.setText(repositoryFragment.full_name()); feedEntryContainer.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { navigator.startGitHuntActivity(repositoryFragment.full_name()); } }); } } }