Skip to content

Instantly share code, notes, and snippets.

/.java Secret

Created May 5, 2016 11:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/11e13bd285dcd5cd222db74d70b12fbb to your computer and use it in GitHub Desktop.
Save anonymous/11e13bd285dcd5cd222db74d70b12fbb to your computer and use it in GitHub Desktop.
public class Voting {
public VotingInterface mVotingInterface;
private int adapterPosition;
private RecyclerView.Adapter adapter;
private String stringId;
private TextView studentVoted;
private QuestionData mQuestionData;
//TODO Trim Constructor
public Voting(int adapterPosition,final RecyclerView.Adapter adapter, TextView questionId,QuestionData questionData) {
this.mQuestionData=questionData;
stringId = questionId.getText().toString();
this.adapter = adapter;
this.mQuestionData=questionData;
}
public void onUpVote() {
final RequestQueue mRequestQueue = VolleySingleton.getInstance().getRequestQueue();
//TODO make a generic case for both Answer and Questions
//TODO Delete Token(inserted for student 3 for testing purposes)
StringRequest postVoteUp = new StringRequest(Request.Method.PUT, PUT_VOTE_UP, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
mQuestionData.setVoters("true");
System.out.println("The Response Upvote is " + response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.println("failed Upvote");
}
});
mRequestQueue.add(postVoteUp);
}
public void onDownVote() {
final RequestQueue mrequestQueue = VolleySingleton.getInstance().getRequestQueue();
//TODO Delete Token(inserted for student 3 for testing purposes)
StringRequest postVoteDown = new StringRequest(Request.Method.PUT, PUT_VOTE_DOWN, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
mQuestionData.setVoters("false");
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.println("failed downVote");
}
});
mrequestQueue.add(postVoteDown);
}
public void realTimeUpVoting(){
String voteString= mQuestionData.getVotes();
int voteNumber=((Integer.parseInt(voteString))+1);
mQuestionData.setVotes("" + voteNumber);
mVotingInterface.updateRecycle();
}
public void realTimeDownVoting(){
String voteString= mQuestionData.getVotes();
int voteNumber=((Integer.parseInt(voteString)) - 1);
mQuestionData.setVotes("" + voteNumber);
mVotingInterface.updateRecycle();
}
public interface VotingInterface{
void updateRecycle();
}
}
Adapter
public class ViewpagerAdapter extends RecyclerView.Adapter<ViewpagerAdapter.ViewDashboard>{
private LayoutInflater mLayoutInflater;
private ArrayList<QuestionData> data =new ArrayList<>();
public ViewpagerAdapter(Context context){
mLayoutInflater=LayoutInflater.from(context);
}
public void setBloglist(ArrayList<QuestionData> listBlogs){
this.data =listBlogs;
notifyItemRangeChanged(0, listBlogs.size());
}
@Override
public ViewDashboard onCreateViewHolder(ViewGroup parent, int viewType) {
View view= mLayoutInflater.inflate(R.layout.customizejson, parent, false);
ViewDashboard viewholder=new ViewDashboard(view);
return viewholder;
}
@Override
public void onBindViewHolder(ViewDashboard holder, int position) {
holder.position = position;
QuestionData questionHolder= data.get(position);
holder.questionText.setText(questionHolder.getMtext());
holder.points.setText(questionHolder.getPoints());
holder.questionId.setText(questionHolder.getId());
holder.studentId.setText(questionHolder.getMstudentId());
holder.mDateCreated.setText(questionHolder.getDateCreated());
holder.mTitle.setText(questionHolder.getTitle());
holder.mCourseId.setText(questionHolder.getCourseId());
holder.mStudentVoted.setText(questionHolder.getVoters());
holder.mVotes.setText(questionHolder.getVotes());
holder.mLikeButton.setLiked(Boolean.valueOf(questionHolder.getVoters()));
holder.mLikeButton.setTag(position);
}
@Override
public int getItemCount() {
return data.size();
}
class ViewDashboard extends RecyclerView.ViewHolder{
public int position;
private TextView questionText;
private TextView points;
private TextView questionId;
private TextView studentId;
private TextView mDateCreated;
private TextView mTitle;
private TextView mCourseId;
private LikeButton mLikeButton;
private TextView mStudentVoted;
private TextView mVotes;
public ViewDashboard(final View itemView){
super(itemView);
mTitle=(TextView)itemView.findViewById(R.id.classCode);
questionText=(TextView)itemView.findViewById(R.id.questionText);
points=(TextView)itemView.findViewById(R.id.points);
questionId =(TextView)itemView.findViewById(R.id.questionId);
studentId=(TextView)itemView.findViewById(R.id.StudentId);
mDateCreated=(TextView)itemView.findViewById(R.id.TimeCreated);
mCourseId=(TextView)itemView.findViewById(R.id.courseId);
mStudentVoted=(TextView)itemView.findViewById(R.id.studentVoted);
mLikeButton=(LikeButton)itemView.findViewById(R.id.like_button_viewpager);
mVotes=(TextView)itemView.findViewById(R.id.votes);
mLikeButton.setOnLikeListener(new OnLikeListener() {
@Override
public void liked(LikeButton likeButton) {
QuestionData questionHolder = data.get(position);
Voting voting = new Voting(getAdapterPosition(), ViewpagerAdapter.this, questionId, questionHolder);
voting.onUpVote();
voting.realTimeUpVoting();
voting.mVotingInterface=new Voting.VotingInterface() {
@Override
public void updateRecycle() {
notifyDataSetChanged();
}
};
}
@Override
public void unLiked(LikeButton likeButton) {
QuestionData questionHolder = data.get(position);
Voting voting = new Voting(getAdapterPosition(), ViewpagerAdapter.this, questionId, questionHolder);
voting.onDownVote();
voting.realTimeDownVoting();
voting.mVotingInterface=new Voting.VotingInterface() {
@Override
public void updateRecycle() {
notifyDataSetChanged();
}
};
}
});
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment