package com.boardgamegeek.ui.adapter;
import android.content.Context;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import com.boardgamegeek.R;
import com.boardgamegeek.model.Thread;
import com.boardgamegeek.ui.ThreadActivity;
import com.boardgamegeek.ui.model.PaginatedData;
import com.boardgamegeek.ui.widget.TimestampView;
import com.boardgamegeek.util.ActivityUtils;
import java.text.NumberFormat;
import butterknife.BindView;
import butterknife.ButterKnife;
public class ForumRecyclerViewAdapter extends PaginatedRecyclerViewAdapter<Thread> {
private final int forumId;
private final String forumTitle;
private final int gameId;
private final String gameName;
private final NumberFormat numberFormat;
public ForumRecyclerViewAdapter(Context context, PaginatedData<Thread> data, int forumId, String forumTitle, int gameId, String gameName) {
super(context, R.layout.row_forum_thread, data);
this.forumId = forumId;
this.forumTitle = forumTitle;
this.gameId = gameId;
this.gameName = gameName;
numberFormat = NumberFormat.getNumberInstance();
}
@NonNull
@Override
protected PaginatedItemViewHolder getViewHolder(View itemView) {
return new ThreadViewHolder(itemView);
}
public class ThreadViewHolder extends PaginatedItemViewHolder {
@BindView(R.id.subject) TextView subjectView;
@BindView(R.id.author) TextView authorView;
@BindView(R.id.number_of_articles) TextView numberOfArticlesView;
@BindView(R.id.last_post_date) TimestampView lastPostDateView;
public ThreadViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
@Override
protected void bind(final Thread thread) {
final Context context = itemView.getContext();
subjectView.setText(thread.subject.trim());
authorView.setText(thread.author);
int replies = thread.numberOfArticles - 1;
numberOfArticlesView.setText(numberFormat.format(replies));
lastPostDateView.setTimestamp(thread.lastPostDate());
itemView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, ThreadActivity.class);
intent.putExtra(ActivityUtils.KEY_THREAD_ID, thread.id);
intent.putExtra(ActivityUtils.KEY_THREAD_SUBJECT, thread.subject);
intent.putExtra(ActivityUtils.KEY_FORUM_ID, forumId);
intent.putExtra(ActivityUtils.KEY_FORUM_TITLE, forumTitle);
intent.putExtra(ActivityUtils.KEY_GAME_ID, gameId);
intent.putExtra(ActivityUtils.KEY_GAME_NAME, gameName);
context.startActivity(intent);
}
});
}
}
}