mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-12-28 11:58:23 +01:00
Move onClickListeners from onBindViewHolder to PostCompactBaseViewHolder. Remove test code in CommentAndPostRecyclerViewAdapter.
This commit is contained in:
parent
5020bf633f
commit
126cfa280e
@ -789,18 +789,16 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
|
|||||||
((CommentViewHolder) holder).itemView.setBackgroundColor(mAwardedCommentBackgroundColor);
|
((CommentViewHolder) holder).itemView.setBackgroundColor(mAwardedCommentBackgroundColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
String authorPrefixed = "u/" + "asdasdfasfadfafasfasfsafasdfasdfasfjk as df adsf asf a sfas f";
|
String authorPrefixed = "u/" + comment.getAuthor();
|
||||||
((CommentViewHolder) holder).authorTextView.setText(authorPrefixed);
|
((CommentViewHolder) holder).authorTextView.setText(authorPrefixed);
|
||||||
((CommentViewHolder) holder).authorFlairTextView.setVisibility(View.VISIBLE);
|
|
||||||
((CommentViewHolder) holder).authorFlairTextView.setText("asfafaf");
|
|
||||||
|
|
||||||
/*if (comment.getAuthorFlairHTML() != null && !comment.getAuthorFlairHTML().equals("")) {
|
if (comment.getAuthorFlairHTML() != null && !comment.getAuthorFlairHTML().equals("")) {
|
||||||
((CommentViewHolder) holder).authorFlairTextView.setVisibility(View.VISIBLE);
|
((CommentViewHolder) holder).authorFlairTextView.setVisibility(View.VISIBLE);
|
||||||
Utils.setHTMLWithImageToTextView(((CommentViewHolder) holder).authorFlairTextView, comment.getAuthorFlairHTML());
|
Utils.setHTMLWithImageToTextView(((CommentViewHolder) holder).authorFlairTextView, comment.getAuthorFlairHTML());
|
||||||
} else if (comment.getAuthorFlair() != null && !comment.getAuthorFlair().equals("")) {
|
} else if (comment.getAuthorFlair() != null && !comment.getAuthorFlair().equals("")) {
|
||||||
((CommentViewHolder) holder).authorFlairTextView.setVisibility(View.VISIBLE);
|
((CommentViewHolder) holder).authorFlairTextView.setVisibility(View.VISIBLE);
|
||||||
((CommentViewHolder) holder).authorFlairTextView.setText(comment.getAuthorFlair());
|
((CommentViewHolder) holder).authorFlairTextView.setText(comment.getAuthorFlair());
|
||||||
}*/
|
}
|
||||||
|
|
||||||
if (comment.isSubmitter()) {
|
if (comment.isSubmitter()) {
|
||||||
((CommentViewHolder) holder).authorTextView.setTextColor(mSubmitterColor);
|
((CommentViewHolder) holder).authorTextView.setTextColor(mSubmitterColor);
|
||||||
|
@ -597,8 +597,6 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
} else if (holder instanceof PostCompactBaseViewHolder) {
|
} else if (holder instanceof PostCompactBaseViewHolder) {
|
||||||
Post post = getItem(position);
|
Post post = getItem(position);
|
||||||
if (post != null) {
|
if (post != null) {
|
||||||
final String fullName = post.getFullName();
|
|
||||||
final String id = post.getId();
|
|
||||||
final String subredditNamePrefixed = post.getSubredditNamePrefixed();
|
final String subredditNamePrefixed = post.getSubredditNamePrefixed();
|
||||||
String subredditName = subredditNamePrefixed.substring(2);
|
String subredditName = subredditNamePrefixed.substring(2);
|
||||||
String authorPrefixed = "u/" + post.getAuthor();
|
String authorPrefixed = "u/" + post.getAuthor();
|
||||||
@ -610,17 +608,6 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
int nAwards = post.getnAwards();
|
int nAwards = post.getnAwards();
|
||||||
boolean isArchived = post.isArchived();
|
boolean isArchived = post.isArchived();
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).itemView.setOnClickListener(view -> {
|
|
||||||
if (canStartActivity) {
|
|
||||||
canStartActivity = false;
|
|
||||||
|
|
||||||
Intent intent = new Intent(mActivity, ViewPostDetailActivity.class);
|
|
||||||
intent.putExtra(ViewPostDetailActivity.EXTRA_POST_DATA, post);
|
|
||||||
intent.putExtra(ViewPostDetailActivity.EXTRA_POST_LIST_POSITION, position);
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (mDisplaySubredditName) {
|
if (mDisplaySubredditName) {
|
||||||
if (authorPrefixed.equals(subredditNamePrefixed)) {
|
if (authorPrefixed.equals(subredditNamePrefixed)) {
|
||||||
if (post.getAuthorIconUrl() == null) {
|
if (post.getAuthorIconUrl() == null) {
|
||||||
@ -691,26 +678,6 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).nameTextView.setTextColor(mSubredditColor);
|
((PostCompactBaseViewHolder) holder).nameTextView.setTextColor(mSubredditColor);
|
||||||
((PostCompactBaseViewHolder) holder).nameTextView.setText(subredditNamePrefixed);
|
((PostCompactBaseViewHolder) holder).nameTextView.setText(subredditNamePrefixed);
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).nameTextView.setOnClickListener(view -> {
|
|
||||||
if (canStartActivity) {
|
|
||||||
canStartActivity = false;
|
|
||||||
if (post.getSubredditNamePrefixed().startsWith("u/")) {
|
|
||||||
Intent intent = new Intent(mActivity, ViewUserDetailActivity.class);
|
|
||||||
intent.putExtra(ViewUserDetailActivity.EXTRA_USER_NAME_KEY,
|
|
||||||
post.getSubredditNamePrefixed().substring(2));
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
} else {
|
|
||||||
Intent intent = new Intent(mActivity, ViewSubredditDetailActivity.class);
|
|
||||||
intent.putExtra(ViewSubredditDetailActivity.EXTRA_SUBREDDIT_NAME_KEY,
|
|
||||||
post.getSubredditNamePrefixed().substring(2));
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).iconGifImageView.setOnClickListener(view ->
|
|
||||||
((PostCompactBaseViewHolder) holder).nameTextView.performClick());
|
|
||||||
} else {
|
} else {
|
||||||
if (post.getAuthorIconUrl() == null) {
|
if (post.getAuthorIconUrl() == null) {
|
||||||
String authorName = post.getAuthor().equals("[deleted]") ? post.getSubredditNamePrefixed().substring(2) : post.getAuthor();
|
String authorName = post.getAuthor().equals("[deleted]") ? post.getSubredditNamePrefixed().substring(2) : post.getAuthor();
|
||||||
@ -747,18 +714,6 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).nameTextView.setTextColor(mUsernameColor);
|
((PostCompactBaseViewHolder) holder).nameTextView.setTextColor(mUsernameColor);
|
||||||
((PostCompactBaseViewHolder) holder).nameTextView.setText(authorPrefixed);
|
((PostCompactBaseViewHolder) holder).nameTextView.setText(authorPrefixed);
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).nameTextView.setOnClickListener(view -> {
|
|
||||||
if (canStartActivity) {
|
|
||||||
canStartActivity = false;
|
|
||||||
Intent intent = new Intent(mActivity, ViewUserDetailActivity.class);
|
|
||||||
intent.putExtra(ViewUserDetailActivity.EXTRA_USER_NAME_KEY, post.getAuthor());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).iconGifImageView.setOnClickListener(view ->
|
|
||||||
((PostCompactBaseViewHolder) holder).nameTextView.performClick());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mShowElapsedTime) {
|
if (mShowElapsedTime) {
|
||||||
@ -782,15 +737,6 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (nsfw) {
|
if (nsfw) {
|
||||||
if (!(mActivity instanceof FilteredThingActivity)) {
|
|
||||||
((PostCompactBaseViewHolder) holder).nsfwTextView.setOnClickListener(view -> {
|
|
||||||
Intent intent = new Intent(mActivity, FilteredThingActivity.class);
|
|
||||||
intent.putExtra(FilteredThingActivity.EXTRA_NAME, post.getSubredditNamePrefixed().substring(2));
|
|
||||||
intent.putExtra(FilteredThingActivity.EXTRA_POST_TYPE, PostDataSource.TYPE_SUBREDDIT);
|
|
||||||
intent.putExtra(FilteredThingActivity.EXTRA_FILTER, Post.NSFW_TYPE);
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
((PostCompactBaseViewHolder) holder).nsfwTextView.setVisibility(View.VISIBLE);
|
((PostCompactBaseViewHolder) holder).nsfwTextView.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -852,22 +798,9 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
((PostCompactBaseViewHolder) holder).crosspostImageView.setVisibility(View.VISIBLE);
|
((PostCompactBaseViewHolder) holder).crosspostImageView.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(mActivity instanceof FilteredThingActivity)) {
|
|
||||||
((PostCompactBaseViewHolder) holder).typeTextView.setOnClickListener(view -> mCallback.typeChipClicked(post.getPostType()));
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (post.getPostType()) {
|
switch (post.getPostType()) {
|
||||||
case Post.IMAGE_TYPE:
|
case Post.IMAGE_TYPE:
|
||||||
((PostCompactBaseViewHolder) holder).typeTextView.setText(R.string.image);
|
((PostCompactBaseViewHolder) holder).typeTextView.setText(R.string.image);
|
||||||
|
|
||||||
final String imageUrl = post.getUrl();
|
|
||||||
((PostCompactBaseViewHolder) holder).imageView.setOnClickListener(view -> {
|
|
||||||
Intent intent = new Intent(mActivity, ViewImageOrGifActivity.class);
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.IMAGE_URL_KEY, imageUrl);
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.FILE_NAME_KEY, subredditName
|
|
||||||
+ "-" + id + ".jpg");
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
});
|
|
||||||
break;
|
break;
|
||||||
case Post.LINK_TYPE:
|
case Post.LINK_TYPE:
|
||||||
((PostCompactBaseViewHolder) holder).typeTextView.setText(R.string.link);
|
((PostCompactBaseViewHolder) holder).typeTextView.setText(R.string.link);
|
||||||
@ -875,48 +808,13 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
((PostCompactBaseViewHolder) holder).linkTextView.setVisibility(View.VISIBLE);
|
((PostCompactBaseViewHolder) holder).linkTextView.setVisibility(View.VISIBLE);
|
||||||
String domain = Uri.parse(post.getUrl()).getHost();
|
String domain = Uri.parse(post.getUrl()).getHost();
|
||||||
((PostCompactBaseViewHolder) holder).linkTextView.setText(domain);
|
((PostCompactBaseViewHolder) holder).linkTextView.setText(domain);
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).imageView.setOnClickListener(view -> {
|
|
||||||
Intent intent = new Intent(mActivity, LinkResolverActivity.class);
|
|
||||||
Uri uri = Uri.parse(post.getUrl());
|
|
||||||
if (uri.getScheme() == null && uri.getHost() == null) {
|
|
||||||
intent.setData(LinkResolverActivity.getRedditUriByPath(post.getUrl()));
|
|
||||||
} else {
|
|
||||||
intent.setData(uri);
|
|
||||||
}
|
|
||||||
intent.putExtra(LinkResolverActivity.EXTRA_IS_NSFW, post.isNSFW());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
});
|
|
||||||
break;
|
break;
|
||||||
case Post.GIF_TYPE:
|
case Post.GIF_TYPE:
|
||||||
((PostCompactBaseViewHolder) holder).typeTextView.setText(R.string.gif);
|
((PostCompactBaseViewHolder) holder).typeTextView.setText(R.string.gif);
|
||||||
|
|
||||||
final Uri gifVideoUri = Uri.parse(post.getVideoUrl());
|
|
||||||
((PostCompactBaseViewHolder) holder).imageView.setOnClickListener(view -> {
|
|
||||||
Intent intent = new Intent(mActivity, ViewImageOrGifActivity.class);
|
|
||||||
intent.setData(gifVideoUri);
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.FILE_NAME_KEY, subredditName
|
|
||||||
+ "-" + id + ".gif");
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.GIF_URL_KEY, post.getVideoUrl());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
});
|
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).playButtonImageView.setVisibility(View.VISIBLE);
|
((PostCompactBaseViewHolder) holder).playButtonImageView.setVisibility(View.VISIBLE);
|
||||||
break;
|
break;
|
||||||
case Post.VIDEO_TYPE:
|
case Post.VIDEO_TYPE:
|
||||||
((PostCompactBaseViewHolder) holder).typeTextView.setText(R.string.video);
|
((PostCompactBaseViewHolder) holder).typeTextView.setText(R.string.video);
|
||||||
|
|
||||||
final Uri videoUri = Uri.parse(post.getVideoUrl());
|
|
||||||
((PostCompactBaseViewHolder) holder).imageView.setOnClickListener(view -> {
|
|
||||||
Intent intent = new Intent(mActivity, ViewVideoActivity.class);
|
|
||||||
intent.setData(videoUri);
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_DOWNLOAD_URL, post.getVideoDownloadUrl());
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_SUBREDDIT, subredditName);
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_ID, id);
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_IS_NSFW, post.isNSFW());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
});
|
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).playButtonImageView.setVisibility(View.VISIBLE);
|
((PostCompactBaseViewHolder) holder).playButtonImageView.setVisibility(View.VISIBLE);
|
||||||
break;
|
break;
|
||||||
case Post.NO_PREVIEW_LINK_TYPE:
|
case Post.NO_PREVIEW_LINK_TYPE:
|
||||||
@ -927,165 +825,12 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
String noPreviewLinkDomain = Uri.parse(noPreviewLinkUrl).getHost();
|
String noPreviewLinkDomain = Uri.parse(noPreviewLinkUrl).getHost();
|
||||||
((PostCompactBaseViewHolder) holder).linkTextView.setText(noPreviewLinkDomain);
|
((PostCompactBaseViewHolder) holder).linkTextView.setText(noPreviewLinkDomain);
|
||||||
((PostCompactBaseViewHolder) holder).noPreviewLinkImageFrameLayout.setVisibility(View.VISIBLE);
|
((PostCompactBaseViewHolder) holder).noPreviewLinkImageFrameLayout.setVisibility(View.VISIBLE);
|
||||||
((PostCompactBaseViewHolder) holder).noPreviewLinkImageFrameLayout.setOnClickListener(view -> {
|
|
||||||
Intent intent = new Intent(mActivity, LinkResolverActivity.class);
|
|
||||||
Uri uri = Uri.parse(post.getUrl());
|
|
||||||
if (uri.getScheme() == null && uri.getHost() == null) {
|
|
||||||
intent.setData(LinkResolverActivity.getRedditUriByPath(post.getUrl()));
|
|
||||||
} else {
|
|
||||||
intent.setData(uri);
|
|
||||||
}
|
|
||||||
intent.putExtra(LinkResolverActivity.EXTRA_IS_NSFW, post.isNSFW());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
});
|
|
||||||
break;
|
break;
|
||||||
case Post.TEXT_TYPE:
|
case Post.TEXT_TYPE:
|
||||||
((PostCompactBaseViewHolder) holder).typeTextView.setText(R.string.text);
|
((PostCompactBaseViewHolder) holder).typeTextView.setText(R.string.text);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).upvoteButton.setOnClickListener(view -> {
|
|
||||||
if (mAccessToken == null) {
|
|
||||||
Toast.makeText(mActivity, R.string.login_first, Toast.LENGTH_SHORT).show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isArchived) {
|
|
||||||
Toast.makeText(mActivity, R.string.archived_post_vote_unavailable, Toast.LENGTH_SHORT).show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ColorFilter previousUpvoteButtonColorFilter = ((PostCompactBaseViewHolder) holder).upvoteButton.getColorFilter();
|
|
||||||
ColorFilter previousDownvoteButtonColorFilter = ((PostCompactBaseViewHolder) holder).downvoteButton.getColorFilter();
|
|
||||||
int previousScoreTextViewColor = ((PostCompactBaseViewHolder) holder).scoreTextView.getCurrentTextColor();
|
|
||||||
|
|
||||||
int previousVoteType = post.getVoteType();
|
|
||||||
String newVoteType;
|
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).downvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
|
||||||
|
|
||||||
if (previousVoteType != 1) {
|
|
||||||
//Not upvoted before
|
|
||||||
post.setVoteType(1);
|
|
||||||
newVoteType = APIUtils.DIR_UPVOTE;
|
|
||||||
((PostCompactBaseViewHolder) holder).upvoteButton
|
|
||||||
.setColorFilter(mUpvotedColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
|
||||||
((PostCompactBaseViewHolder) holder).scoreTextView.setTextColor(mUpvotedColor);
|
|
||||||
} else {
|
|
||||||
//Upvoted before
|
|
||||||
post.setVoteType(0);
|
|
||||||
newVoteType = APIUtils.DIR_UNVOTE;
|
|
||||||
((PostCompactBaseViewHolder) holder).upvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
|
||||||
((PostCompactBaseViewHolder) holder).scoreTextView.setTextColor(mPostIconAndInfoColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, post.getScore() + post.getVoteType()));
|
|
||||||
|
|
||||||
VoteThing.voteThing(mActivity, mOauthRetrofit, mAccessToken, new VoteThing.VoteThingListener() {
|
|
||||||
@Override
|
|
||||||
public void onVoteThingSuccess(int position1) {
|
|
||||||
if (newVoteType.equals(APIUtils.DIR_UPVOTE)) {
|
|
||||||
post.setVoteType(1);
|
|
||||||
((PostCompactBaseViewHolder) holder).upvoteButton
|
|
||||||
.setColorFilter(mUpvotedColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
|
||||||
((PostCompactBaseViewHolder) holder).scoreTextView.setTextColor(mUpvotedColor);
|
|
||||||
} else {
|
|
||||||
post.setVoteType(0);
|
|
||||||
((PostCompactBaseViewHolder) holder).upvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
|
||||||
((PostCompactBaseViewHolder) holder).scoreTextView.setTextColor(mPostIconAndInfoColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).downvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
|
||||||
((PostCompactBaseViewHolder) holder).scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, post.getScore() + post.getVoteType()));
|
|
||||||
|
|
||||||
EventBus.getDefault().post(new PostUpdateEventToDetailActivity(post));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onVoteThingFail(int position1) {
|
|
||||||
Toast.makeText(mActivity, R.string.vote_failed, Toast.LENGTH_SHORT).show();
|
|
||||||
post.setVoteType(previousVoteType);
|
|
||||||
((PostCompactBaseViewHolder) holder).scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, post.getScore() + previousVoteType));
|
|
||||||
((PostCompactBaseViewHolder) holder).upvoteButton.setColorFilter(previousUpvoteButtonColorFilter);
|
|
||||||
((PostCompactBaseViewHolder) holder).downvoteButton.setColorFilter(previousDownvoteButtonColorFilter);
|
|
||||||
((PostCompactBaseViewHolder) holder).scoreTextView.setTextColor(previousScoreTextViewColor);
|
|
||||||
|
|
||||||
EventBus.getDefault().post(new PostUpdateEventToDetailActivity(post));
|
|
||||||
}
|
|
||||||
}, fullName, newVoteType, holder.getAdapterPosition());
|
|
||||||
});
|
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).downvoteButton.setOnClickListener(view -> {
|
|
||||||
if (mAccessToken == null) {
|
|
||||||
Toast.makeText(mActivity, R.string.login_first, Toast.LENGTH_SHORT).show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isArchived) {
|
|
||||||
Toast.makeText(mActivity, R.string.archived_post_vote_unavailable, Toast.LENGTH_SHORT).show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ColorFilter previousUpvoteButtonColorFilter = ((PostCompactBaseViewHolder) holder).upvoteButton.getColorFilter();
|
|
||||||
ColorFilter previousDownvoteButtonColorFilter = ((PostCompactBaseViewHolder) holder).downvoteButton.getColorFilter();
|
|
||||||
int previousScoreTextViewColor = ((PostCompactBaseViewHolder) holder).scoreTextView.getCurrentTextColor();
|
|
||||||
|
|
||||||
int previousVoteType = post.getVoteType();
|
|
||||||
String newVoteType;
|
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).upvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
|
||||||
|
|
||||||
if (previousVoteType != -1) {
|
|
||||||
//Not downvoted before
|
|
||||||
post.setVoteType(-1);
|
|
||||||
newVoteType = APIUtils.DIR_DOWNVOTE;
|
|
||||||
((PostCompactBaseViewHolder) holder).downvoteButton
|
|
||||||
.setColorFilter(mDownvotedColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
|
||||||
((PostCompactBaseViewHolder) holder).scoreTextView.setTextColor(mDownvotedColor);
|
|
||||||
} else {
|
|
||||||
//Downvoted before
|
|
||||||
post.setVoteType(0);
|
|
||||||
newVoteType = APIUtils.DIR_UNVOTE;
|
|
||||||
((PostCompactBaseViewHolder) holder).downvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
|
||||||
((PostCompactBaseViewHolder) holder).scoreTextView.setTextColor(mPostIconAndInfoColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, post.getScore() + post.getVoteType()));
|
|
||||||
|
|
||||||
VoteThing.voteThing(mActivity, mOauthRetrofit, mAccessToken, new VoteThing.VoteThingListener() {
|
|
||||||
@Override
|
|
||||||
public void onVoteThingSuccess(int position1) {
|
|
||||||
if (newVoteType.equals(APIUtils.DIR_DOWNVOTE)) {
|
|
||||||
post.setVoteType(-1);
|
|
||||||
((PostCompactBaseViewHolder) holder).downvoteButton
|
|
||||||
.setColorFilter(mDownvotedColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
|
||||||
((PostCompactBaseViewHolder) holder).scoreTextView.setTextColor(mDownvotedColor);
|
|
||||||
} else {
|
|
||||||
post.setVoteType(0);
|
|
||||||
((PostCompactBaseViewHolder) holder).downvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
|
||||||
((PostCompactBaseViewHolder) holder).scoreTextView.setTextColor(mPostIconAndInfoColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).upvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
|
||||||
((PostCompactBaseViewHolder) holder).scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, post.getScore() + post.getVoteType()));
|
|
||||||
|
|
||||||
EventBus.getDefault().post(new PostUpdateEventToDetailActivity(post));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onVoteThingFail(int position1) {
|
|
||||||
Toast.makeText(mActivity, R.string.vote_failed, Toast.LENGTH_SHORT).show();
|
|
||||||
post.setVoteType(previousVoteType);
|
|
||||||
((PostCompactBaseViewHolder) holder).scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, post.getScore() + previousVoteType));
|
|
||||||
((PostCompactBaseViewHolder) holder).upvoteButton.setColorFilter(previousUpvoteButtonColorFilter);
|
|
||||||
((PostCompactBaseViewHolder) holder).downvoteButton.setColorFilter(previousDownvoteButtonColorFilter);
|
|
||||||
((PostCompactBaseViewHolder) holder).scoreTextView.setTextColor(previousScoreTextViewColor);
|
|
||||||
|
|
||||||
EventBus.getDefault().post(new PostUpdateEventToDetailActivity(post));
|
|
||||||
}
|
|
||||||
}, fullName, newVoteType, holder.getAdapterPosition());
|
|
||||||
});
|
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).commentsCountTextView.setText(Integer.toString(post.getNComments()));
|
((PostCompactBaseViewHolder) holder).commentsCountTextView.setText(Integer.toString(post.getNComments()));
|
||||||
|
|
||||||
if (post.isSaved()) {
|
if (post.isSaved()) {
|
||||||
@ -1093,57 +838,6 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
} else {
|
} else {
|
||||||
((PostCompactBaseViewHolder) holder).saveButton.setImageResource(R.drawable.ic_bookmark_border_grey_24dp);
|
((PostCompactBaseViewHolder) holder).saveButton.setImageResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||||
}
|
}
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).saveButton.setOnClickListener(view -> {
|
|
||||||
if (mAccessToken == null) {
|
|
||||||
Toast.makeText(mActivity, R.string.login_first, Toast.LENGTH_SHORT).show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (post.isSaved()) {
|
|
||||||
((PostCompactBaseViewHolder) holder).saveButton.setImageResource(R.drawable.ic_bookmark_border_grey_24dp);
|
|
||||||
SaveThing.unsaveThing(mOauthRetrofit, mAccessToken, post.getFullName(),
|
|
||||||
new SaveThing.SaveThingListener() {
|
|
||||||
@Override
|
|
||||||
public void success() {
|
|
||||||
post.setSaved(false);
|
|
||||||
((PostCompactBaseViewHolder) holder).saveButton.setImageResource(R.drawable.ic_bookmark_border_grey_24dp);
|
|
||||||
Toast.makeText(mActivity, R.string.post_unsaved_success, Toast.LENGTH_SHORT).show();
|
|
||||||
EventBus.getDefault().post(new PostUpdateEventToDetailActivity(post));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void failed() {
|
|
||||||
post.setSaved(true);
|
|
||||||
((PostCompactBaseViewHolder) holder).saveButton.setImageResource(R.drawable.ic_bookmark_grey_24dp);
|
|
||||||
Toast.makeText(mActivity, R.string.post_unsaved_failed, Toast.LENGTH_SHORT).show();
|
|
||||||
EventBus.getDefault().post(new PostUpdateEventToDetailActivity(post));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
((PostCompactBaseViewHolder) holder).saveButton.setImageResource(R.drawable.ic_bookmark_grey_24dp);
|
|
||||||
SaveThing.saveThing(mOauthRetrofit, mAccessToken, post.getFullName(),
|
|
||||||
new SaveThing.SaveThingListener() {
|
|
||||||
@Override
|
|
||||||
public void success() {
|
|
||||||
post.setSaved(true);
|
|
||||||
((PostCompactBaseViewHolder) holder).saveButton.setImageResource(R.drawable.ic_bookmark_grey_24dp);
|
|
||||||
Toast.makeText(mActivity, R.string.post_saved_success, Toast.LENGTH_SHORT).show();
|
|
||||||
EventBus.getDefault().post(new PostUpdateEventToDetailActivity(post));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void failed() {
|
|
||||||
post.setSaved(false);
|
|
||||||
((PostCompactBaseViewHolder) holder).saveButton.setImageResource(R.drawable.ic_bookmark_border_grey_24dp);
|
|
||||||
Toast.makeText(mActivity, R.string.post_saved_failed, Toast.LENGTH_SHORT).show();
|
|
||||||
EventBus.getDefault().post(new PostUpdateEventToDetailActivity(post));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).shareButton.setOnClickListener(view -> shareLink(post));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2739,6 +2433,330 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
|
|
||||||
imageView.setClipToOutline(true);
|
imageView.setClipToOutline(true);
|
||||||
noPreviewLinkImageFrameLayout.setClipToOutline(true);
|
noPreviewLinkImageFrameLayout.setClipToOutline(true);
|
||||||
|
|
||||||
|
itemView.setOnClickListener(view -> {
|
||||||
|
Post post = getItem(getAdapterPosition());
|
||||||
|
if (post != null && canStartActivity) {
|
||||||
|
canStartActivity = false;
|
||||||
|
|
||||||
|
Intent intent = new Intent(mActivity, ViewPostDetailActivity.class);
|
||||||
|
intent.putExtra(ViewPostDetailActivity.EXTRA_POST_DATA, post);
|
||||||
|
intent.putExtra(ViewPostDetailActivity.EXTRA_POST_LIST_POSITION, getAdapterPosition());
|
||||||
|
mActivity.startActivity(intent);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
nameTextView.setOnClickListener(view -> {
|
||||||
|
Post post = getItem(getAdapterPosition());
|
||||||
|
if (post != null && canStartActivity) {
|
||||||
|
canStartActivity = false;
|
||||||
|
if (mDisplaySubredditName) {
|
||||||
|
if (post.getSubredditNamePrefixed().startsWith("u/")) {
|
||||||
|
Intent intent = new Intent(mActivity, ViewUserDetailActivity.class);
|
||||||
|
intent.putExtra(ViewUserDetailActivity.EXTRA_USER_NAME_KEY,
|
||||||
|
post.getSubredditNamePrefixed().substring(2));
|
||||||
|
mActivity.startActivity(intent);
|
||||||
|
} else {
|
||||||
|
Intent intent = new Intent(mActivity, ViewSubredditDetailActivity.class);
|
||||||
|
intent.putExtra(ViewSubredditDetailActivity.EXTRA_SUBREDDIT_NAME_KEY,
|
||||||
|
post.getSubredditNamePrefixed().substring(2));
|
||||||
|
mActivity.startActivity(intent);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Intent intent = new Intent(mActivity, ViewUserDetailActivity.class);
|
||||||
|
intent.putExtra(ViewUserDetailActivity.EXTRA_USER_NAME_KEY, post.getAuthor());
|
||||||
|
mActivity.startActivity(intent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
iconGifImageView.setOnClickListener(view -> nameTextView.performClick());
|
||||||
|
|
||||||
|
nsfwTextView.setOnClickListener(view -> {
|
||||||
|
Post post = getItem(getAdapterPosition());
|
||||||
|
if (post != null && !(mActivity instanceof FilteredThingActivity)) {
|
||||||
|
Intent intent = new Intent(mActivity, FilteredThingActivity.class);
|
||||||
|
intent.putExtra(FilteredThingActivity.EXTRA_NAME, post.getSubredditNamePrefixed().substring(2));
|
||||||
|
intent.putExtra(FilteredThingActivity.EXTRA_POST_TYPE, PostDataSource.TYPE_SUBREDDIT);
|
||||||
|
intent.putExtra(FilteredThingActivity.EXTRA_FILTER, Post.NSFW_TYPE);
|
||||||
|
mActivity.startActivity(intent);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
typeTextView.setOnClickListener(view -> {
|
||||||
|
Post post = getItem(getAdapterPosition());
|
||||||
|
if (post != null && !(mActivity instanceof FilteredThingActivity)) {
|
||||||
|
mCallback.typeChipClicked(post.getPostType());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
imageView.setOnClickListener(view -> {
|
||||||
|
Post post = getItem(getAdapterPosition());
|
||||||
|
if (post != null) {
|
||||||
|
switch (post.getPostType()) {
|
||||||
|
case Post.IMAGE_TYPE: {
|
||||||
|
Intent intent = new Intent(mActivity, ViewImageOrGifActivity.class);
|
||||||
|
intent.putExtra(ViewImageOrGifActivity.IMAGE_URL_KEY, post.getUrl());
|
||||||
|
intent.putExtra(ViewImageOrGifActivity.FILE_NAME_KEY, post.getSubredditName()
|
||||||
|
+ "-" + post.getId() + ".jpg");
|
||||||
|
mActivity.startActivity(intent);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case Post.LINK_TYPE: {
|
||||||
|
Intent intent = new Intent(mActivity, LinkResolverActivity.class);
|
||||||
|
Uri uri = Uri.parse(post.getUrl());
|
||||||
|
if (uri.getScheme() == null && uri.getHost() == null) {
|
||||||
|
intent.setData(LinkResolverActivity.getRedditUriByPath(post.getUrl()));
|
||||||
|
} else {
|
||||||
|
intent.setData(uri);
|
||||||
|
}
|
||||||
|
intent.putExtra(LinkResolverActivity.EXTRA_IS_NSFW, post.isNSFW());
|
||||||
|
mActivity.startActivity(intent);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case Post.GIF_TYPE: {
|
||||||
|
Intent intent = new Intent(mActivity, ViewImageOrGifActivity.class);
|
||||||
|
intent.setData(Uri.parse(post.getVideoUrl()));
|
||||||
|
intent.putExtra(ViewImageOrGifActivity.FILE_NAME_KEY, post.getSubredditName()
|
||||||
|
+ "-" + post.getId() + ".gif");
|
||||||
|
intent.putExtra(ViewImageOrGifActivity.GIF_URL_KEY, post.getVideoUrl());
|
||||||
|
mActivity.startActivity(intent);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case Post.VIDEO_TYPE: {
|
||||||
|
Intent intent = new Intent(mActivity, ViewVideoActivity.class);
|
||||||
|
intent.setData(Uri.parse(post.getVideoUrl()));
|
||||||
|
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_DOWNLOAD_URL, post.getVideoDownloadUrl());
|
||||||
|
intent.putExtra(ViewVideoActivity.EXTRA_SUBREDDIT, post.getSubredditName());
|
||||||
|
intent.putExtra(ViewVideoActivity.EXTRA_ID, post.getId());
|
||||||
|
intent.putExtra(ViewVideoActivity.EXTRA_IS_NSFW, post.isNSFW());
|
||||||
|
mActivity.startActivity(intent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
noPreviewLinkImageFrameLayout.setOnClickListener(view -> {
|
||||||
|
Post post = getItem(getAdapterPosition());
|
||||||
|
if (post != null) {
|
||||||
|
Intent intent = new Intent(mActivity, LinkResolverActivity.class);
|
||||||
|
Uri uri = Uri.parse(post.getUrl());
|
||||||
|
if (uri.getScheme() == null && uri.getHost() == null) {
|
||||||
|
intent.setData(LinkResolverActivity.getRedditUriByPath(post.getUrl()));
|
||||||
|
} else {
|
||||||
|
intent.setData(uri);
|
||||||
|
}
|
||||||
|
intent.putExtra(LinkResolverActivity.EXTRA_IS_NSFW, post.isNSFW());
|
||||||
|
mActivity.startActivity(intent);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
upvoteButton.setOnClickListener(view -> {
|
||||||
|
if (mAccessToken == null) {
|
||||||
|
Toast.makeText(mActivity, R.string.login_first, Toast.LENGTH_SHORT).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Post post = getItem(getAdapterPosition());
|
||||||
|
if (post != null) {
|
||||||
|
if (post.isArchived()) {
|
||||||
|
Toast.makeText(mActivity, R.string.archived_post_vote_unavailable, Toast.LENGTH_SHORT).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ColorFilter previousUpvoteButtonColorFilter = upvoteButton.getColorFilter();
|
||||||
|
ColorFilter previousDownvoteButtonColorFilter = downvoteButton.getColorFilter();
|
||||||
|
int previousScoreTextViewColor = scoreTextView.getCurrentTextColor();
|
||||||
|
|
||||||
|
int previousVoteType = post.getVoteType();
|
||||||
|
String newVoteType;
|
||||||
|
|
||||||
|
downvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||||
|
|
||||||
|
if (previousVoteType != 1) {
|
||||||
|
//Not upvoted before
|
||||||
|
post.setVoteType(1);
|
||||||
|
newVoteType = APIUtils.DIR_UPVOTE;
|
||||||
|
upvoteButton
|
||||||
|
.setColorFilter(mUpvotedColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||||
|
scoreTextView.setTextColor(mUpvotedColor);
|
||||||
|
} else {
|
||||||
|
//Upvoted before
|
||||||
|
post.setVoteType(0);
|
||||||
|
newVoteType = APIUtils.DIR_UNVOTE;
|
||||||
|
upvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||||
|
scoreTextView.setTextColor(mPostIconAndInfoColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, post.getScore() + post.getVoteType()));
|
||||||
|
|
||||||
|
VoteThing.voteThing(mActivity, mOauthRetrofit, mAccessToken, new VoteThing.VoteThingListener() {
|
||||||
|
@Override
|
||||||
|
public void onVoteThingSuccess(int position1) {
|
||||||
|
if (newVoteType.equals(APIUtils.DIR_UPVOTE)) {
|
||||||
|
post.setVoteType(1);
|
||||||
|
upvoteButton
|
||||||
|
.setColorFilter(mUpvotedColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||||
|
scoreTextView.setTextColor(mUpvotedColor);
|
||||||
|
} else {
|
||||||
|
post.setVoteType(0);
|
||||||
|
upvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||||
|
scoreTextView.setTextColor(mPostIconAndInfoColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
downvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||||
|
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, post.getScore() + post.getVoteType()));
|
||||||
|
|
||||||
|
EventBus.getDefault().post(new PostUpdateEventToDetailActivity(post));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onVoteThingFail(int position1) {
|
||||||
|
Toast.makeText(mActivity, R.string.vote_failed, Toast.LENGTH_SHORT).show();
|
||||||
|
post.setVoteType(previousVoteType);
|
||||||
|
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, post.getScore() + previousVoteType));
|
||||||
|
upvoteButton.setColorFilter(previousUpvoteButtonColorFilter);
|
||||||
|
downvoteButton.setColorFilter(previousDownvoteButtonColorFilter);
|
||||||
|
scoreTextView.setTextColor(previousScoreTextViewColor);
|
||||||
|
|
||||||
|
EventBus.getDefault().post(new PostUpdateEventToDetailActivity(post));
|
||||||
|
}
|
||||||
|
}, post.getFullName(), newVoteType, getAdapterPosition());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
downvoteButton.setOnClickListener(view -> {
|
||||||
|
if (mAccessToken == null) {
|
||||||
|
Toast.makeText(mActivity, R.string.login_first, Toast.LENGTH_SHORT).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Post post = getItem(getAdapterPosition());
|
||||||
|
if (post != null) {
|
||||||
|
if (post.isArchived()) {
|
||||||
|
Toast.makeText(mActivity, R.string.archived_post_vote_unavailable, Toast.LENGTH_SHORT).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ColorFilter previousUpvoteButtonColorFilter = upvoteButton.getColorFilter();
|
||||||
|
ColorFilter previousDownvoteButtonColorFilter = downvoteButton.getColorFilter();
|
||||||
|
int previousScoreTextViewColor = scoreTextView.getCurrentTextColor();
|
||||||
|
|
||||||
|
int previousVoteType = post.getVoteType();
|
||||||
|
String newVoteType;
|
||||||
|
|
||||||
|
upvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||||
|
|
||||||
|
if (previousVoteType != -1) {
|
||||||
|
//Not downvoted before
|
||||||
|
post.setVoteType(-1);
|
||||||
|
newVoteType = APIUtils.DIR_DOWNVOTE;
|
||||||
|
downvoteButton
|
||||||
|
.setColorFilter(mDownvotedColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||||
|
scoreTextView.setTextColor(mDownvotedColor);
|
||||||
|
} else {
|
||||||
|
//Downvoted before
|
||||||
|
post.setVoteType(0);
|
||||||
|
newVoteType = APIUtils.DIR_UNVOTE;
|
||||||
|
downvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||||
|
scoreTextView.setTextColor(mPostIconAndInfoColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, post.getScore() + post.getVoteType()));
|
||||||
|
|
||||||
|
VoteThing.voteThing(mActivity, mOauthRetrofit, mAccessToken, new VoteThing.VoteThingListener() {
|
||||||
|
@Override
|
||||||
|
public void onVoteThingSuccess(int position1) {
|
||||||
|
if (newVoteType.equals(APIUtils.DIR_DOWNVOTE)) {
|
||||||
|
post.setVoteType(-1);
|
||||||
|
downvoteButton
|
||||||
|
.setColorFilter(mDownvotedColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||||
|
scoreTextView.setTextColor(mDownvotedColor);
|
||||||
|
} else {
|
||||||
|
post.setVoteType(0);
|
||||||
|
downvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||||
|
scoreTextView.setTextColor(mPostIconAndInfoColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
upvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||||
|
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, post.getScore() + post.getVoteType()));
|
||||||
|
|
||||||
|
EventBus.getDefault().post(new PostUpdateEventToDetailActivity(post));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onVoteThingFail(int position1) {
|
||||||
|
Toast.makeText(mActivity, R.string.vote_failed, Toast.LENGTH_SHORT).show();
|
||||||
|
post.setVoteType(previousVoteType);
|
||||||
|
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, post.getScore() + previousVoteType));
|
||||||
|
upvoteButton.setColorFilter(previousUpvoteButtonColorFilter);
|
||||||
|
downvoteButton.setColorFilter(previousDownvoteButtonColorFilter);
|
||||||
|
scoreTextView.setTextColor(previousScoreTextViewColor);
|
||||||
|
|
||||||
|
EventBus.getDefault().post(new PostUpdateEventToDetailActivity(post));
|
||||||
|
}
|
||||||
|
}, post.getFullName(), newVoteType, getAdapterPosition());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
saveButton.setOnClickListener(view -> {
|
||||||
|
if (mAccessToken == null) {
|
||||||
|
Toast.makeText(mActivity, R.string.login_first, Toast.LENGTH_SHORT).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Post post = getItem(getAdapterPosition());
|
||||||
|
if (post != null) {
|
||||||
|
if (post.isSaved()) {
|
||||||
|
saveButton.setImageResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||||
|
SaveThing.unsaveThing(mOauthRetrofit, mAccessToken, post.getFullName(),
|
||||||
|
new SaveThing.SaveThingListener() {
|
||||||
|
@Override
|
||||||
|
public void success() {
|
||||||
|
post.setSaved(false);
|
||||||
|
saveButton.setImageResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||||
|
Toast.makeText(mActivity, R.string.post_unsaved_success, Toast.LENGTH_SHORT).show();
|
||||||
|
EventBus.getDefault().post(new PostUpdateEventToDetailActivity(post));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void failed() {
|
||||||
|
post.setSaved(true);
|
||||||
|
saveButton.setImageResource(R.drawable.ic_bookmark_grey_24dp);
|
||||||
|
Toast.makeText(mActivity, R.string.post_unsaved_failed, Toast.LENGTH_SHORT).show();
|
||||||
|
EventBus.getDefault().post(new PostUpdateEventToDetailActivity(post));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
saveButton.setImageResource(R.drawable.ic_bookmark_grey_24dp);
|
||||||
|
SaveThing.saveThing(mOauthRetrofit, mAccessToken, post.getFullName(),
|
||||||
|
new SaveThing.SaveThingListener() {
|
||||||
|
@Override
|
||||||
|
public void success() {
|
||||||
|
post.setSaved(true);
|
||||||
|
saveButton.setImageResource(R.drawable.ic_bookmark_grey_24dp);
|
||||||
|
Toast.makeText(mActivity, R.string.post_saved_success, Toast.LENGTH_SHORT).show();
|
||||||
|
EventBus.getDefault().post(new PostUpdateEventToDetailActivity(post));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void failed() {
|
||||||
|
post.setSaved(false);
|
||||||
|
saveButton.setImageResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||||
|
Toast.makeText(mActivity, R.string.post_saved_failed, Toast.LENGTH_SHORT).show();
|
||||||
|
EventBus.getDefault().post(new PostUpdateEventToDetailActivity(post));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
shareButton.setOnClickListener(view -> {
|
||||||
|
Post post = getItem(getAdapterPosition());
|
||||||
|
if (post != null) {
|
||||||
|
shareLink(post);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user