-
-
Save anonymous/11e13bd285dcd5cd222db74d70b12fbb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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