mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-11-06 18:57:26 +01:00
Highlight pinned posts
This commits adds a pin icon to featured posts on communities or on the instance.
This commit is contained in:
parent
7a39b2341b
commit
82414bba55
@ -641,9 +641,12 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mPostType == PostPagingSource.TYPE_SUBREDDIT && !mDisplaySubredditName && post.isStickied()) {
|
if (mPostType == PostPagingSource.TYPE_SUBREDDIT && !mDisplaySubredditName && post.isFeaturedInCommunity() || post.isFeaturedOnInstance()) {
|
||||||
((PostBaseViewHolder) holder).stickiedPostImageView.setVisibility(View.VISIBLE);
|
((PostBaseViewHolder) holder).stickiedPostImageView.setVisibility(View.VISIBLE);
|
||||||
mGlide.load(R.drawable.ic_thumbtack_24dp).into(((PostBaseViewHolder) holder).stickiedPostImageView);
|
mGlide.load(R.drawable.ic_thumbtack_24dp).into(((PostBaseViewHolder) holder).stickiedPostImageView);
|
||||||
|
if (post.isFeaturedOnInstance()) {
|
||||||
|
((PostBaseViewHolder) holder).stickiedPostImageView.setColorFilter(mModeratorColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (post.isArchived()) {
|
if (post.isArchived()) {
|
||||||
@ -1210,7 +1213,7 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mPostType == PostPagingSource.TYPE_SUBREDDIT && !mDisplaySubredditName && post.isStickied()) {
|
if (mPostType == PostPagingSource.TYPE_SUBREDDIT && !mDisplaySubredditName && post.isFeaturedInCommunity()) {
|
||||||
((PostCompactBaseViewHolder) holder).stickiedPostImageView.setVisibility(View.VISIBLE);
|
((PostCompactBaseViewHolder) holder).stickiedPostImageView.setVisibility(View.VISIBLE);
|
||||||
mGlide.load(R.drawable.ic_thumbtack_24dp).into(((PostCompactBaseViewHolder) holder).stickiedPostImageView);
|
mGlide.load(R.drawable.ic_thumbtack_24dp).into(((PostCompactBaseViewHolder) holder).stickiedPostImageView);
|
||||||
}
|
}
|
||||||
|
@ -99,7 +99,6 @@ import eu.toldi.infinityforlemmy.markdown.MarkdownUtils;
|
|||||||
import eu.toldi.infinityforlemmy.post.Post;
|
import eu.toldi.infinityforlemmy.post.Post;
|
||||||
import eu.toldi.infinityforlemmy.post.PostPagingSource;
|
import eu.toldi.infinityforlemmy.post.PostPagingSource;
|
||||||
import eu.toldi.infinityforlemmy.utils.APIUtils;
|
import eu.toldi.infinityforlemmy.utils.APIUtils;
|
||||||
import eu.toldi.infinityforlemmy.utils.LemmyUtils;
|
|
||||||
import eu.toldi.infinityforlemmy.utils.SharedPreferencesUtils;
|
import eu.toldi.infinityforlemmy.utils.SharedPreferencesUtils;
|
||||||
import eu.toldi.infinityforlemmy.utils.Utils;
|
import eu.toldi.infinityforlemmy.utils.Utils;
|
||||||
import eu.toldi.infinityforlemmy.videoautoplay.CacheManager;
|
import eu.toldi.infinityforlemmy.videoautoplay.CacheManager;
|
||||||
@ -586,7 +585,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
|||||||
((PostDetailBaseViewHolder) holder).mUserTextView.setText(mPost.getAuthor());
|
((PostDetailBaseViewHolder) holder).mUserTextView.setText(mPost.getAuthor());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mPost.isModerator()) {
|
if (mPost.isModerator() || mPost.isAdmin()) {
|
||||||
((PostDetailBaseViewHolder) holder).mUserTextView.setTextColor(mModeratorColor);
|
((PostDetailBaseViewHolder) holder).mUserTextView.setTextColor(mModeratorColor);
|
||||||
Drawable moderatorDrawable = Utils.getTintedDrawable(mActivity, R.drawable.ic_verified_user_14dp, mModeratorColor);
|
Drawable moderatorDrawable = Utils.getTintedDrawable(mActivity, R.drawable.ic_verified_user_14dp, mModeratorColor);
|
||||||
((PostDetailBaseViewHolder) holder).mUserTextView.setCompoundDrawablesWithIntrinsicBounds(
|
((PostDetailBaseViewHolder) holder).mUserTextView.setCompoundDrawablesWithIntrinsicBounds(
|
||||||
|
@ -541,7 +541,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
}
|
}
|
||||||
|
|
||||||
((PostBaseViewHolder) holder).userTextView.setTextColor(
|
((PostBaseViewHolder) holder).userTextView.setTextColor(
|
||||||
post.isModerator() ? mModeratorColor : mUsernameColor);
|
post.isModerator() || post.isAdmin() ? mModeratorColor : mUsernameColor);
|
||||||
|
|
||||||
if (mDisplaySubredditName) {
|
if (mDisplaySubredditName) {
|
||||||
if (authorPrefixed.equals(post.getSubredditNamePrefixed())) {
|
if (authorPrefixed.equals(post.getSubredditNamePrefixed())) {
|
||||||
@ -700,9 +700,12 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
((PostBaseViewHolder) holder).downvoteTextView.setTextColor(mPostIconAndInfoColor);
|
((PostBaseViewHolder) holder).downvoteTextView.setTextColor(mPostIconAndInfoColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mPostType == PostPagingSource.TYPE_SUBREDDIT && !mDisplaySubredditName && post.isStickied()) {
|
if (mPostType == PostPagingSource.TYPE_SUBREDDIT && !mDisplaySubredditName && post.isFeaturedInCommunity() || post.isFeaturedOnInstance()) {
|
||||||
((PostBaseViewHolder) holder).stickiedPostImageView.setVisibility(View.VISIBLE);
|
((PostBaseViewHolder) holder).stickiedPostImageView.setVisibility(View.VISIBLE);
|
||||||
mGlide.load(R.drawable.ic_thumbtack_24dp).into(((PostBaseViewHolder) holder).stickiedPostImageView);
|
mGlide.load(R.drawable.ic_thumbtack_24dp).into(((PostBaseViewHolder) holder).stickiedPostImageView);
|
||||||
|
if (post.isFeaturedOnInstance()) {
|
||||||
|
((PostBaseViewHolder) holder).stickiedPostImageView.setColorFilter(mModeratorColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (post.isArchived()) {
|
if (post.isArchived()) {
|
||||||
@ -1239,7 +1242,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
}
|
}
|
||||||
|
|
||||||
((PostCompactBaseViewHolder) holder).nameTextView.setTextColor(
|
((PostCompactBaseViewHolder) holder).nameTextView.setTextColor(
|
||||||
post.isModerator() ? mModeratorColor : mUsernameColor);
|
post.isModerator() || post.isAdmin() ? mModeratorColor : mUsernameColor);
|
||||||
|
|
||||||
if (mHideSubredditAndUserPrefix) {
|
if (mHideSubredditAndUserPrefix) {
|
||||||
((PostCompactBaseViewHolder) holder).nameTextView.setText(post.getAuthor());
|
((PostCompactBaseViewHolder) holder).nameTextView.setText(post.getAuthor());
|
||||||
@ -1333,7 +1336,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mPostType == PostPagingSource.TYPE_SUBREDDIT && !mDisplaySubredditName && post.isStickied()) {
|
if (mPostType == PostPagingSource.TYPE_SUBREDDIT && !mDisplaySubredditName && post.isFeaturedInCommunity()) {
|
||||||
((PostCompactBaseViewHolder) holder).stickiedPostImageView.setVisibility(View.VISIBLE);
|
((PostCompactBaseViewHolder) holder).stickiedPostImageView.setVisibility(View.VISIBLE);
|
||||||
mGlide.load(R.drawable.ic_thumbtack_24dp).into(((PostCompactBaseViewHolder) holder).stickiedPostImageView);
|
mGlide.load(R.drawable.ic_thumbtack_24dp).into(((PostCompactBaseViewHolder) holder).stickiedPostImageView);
|
||||||
}
|
}
|
||||||
|
@ -186,7 +186,7 @@ public class ParsePost {
|
|||||||
boolean nsfw = post.getBoolean("nsfw");
|
boolean nsfw = post.getBoolean("nsfw");
|
||||||
boolean locked = post.getBoolean("locked");
|
boolean locked = post.getBoolean("locked");
|
||||||
boolean saved = data.getBoolean("saved");
|
boolean saved = data.getBoolean("saved");
|
||||||
String distinguished = "";
|
String distinguished = (creator.getBoolean("admin") ? "admin" : "");
|
||||||
String suggestedSort = "";
|
String suggestedSort = "";
|
||||||
ArrayList <Post.Preview> previews = new ArrayList<>();
|
ArrayList <Post.Preview> previews = new ArrayList<>();
|
||||||
if(!post.isNull("thumbnail_url")) {
|
if(!post.isNull("thumbnail_url")) {
|
||||||
@ -659,7 +659,7 @@ public class ParsePost {
|
|||||||
post.setVoteType(data.getInt("my_vote"));
|
post.setVoteType(data.getInt("my_vote"));
|
||||||
if(post.getVoteType() == 1)
|
if(post.getVoteType() == 1)
|
||||||
post.setUpvotes(post.getUpvotes() - 1);
|
post.setUpvotes(post.getUpvotes() - 1);
|
||||||
else if(post.getVoteType() == -1)
|
else if (post.getVoteType() == -1)
|
||||||
post.setDownvotes(post.getDownvotes() - 1);
|
post.setDownvotes(post.getDownvotes() - 1);
|
||||||
}
|
}
|
||||||
if (!data.getJSONObject("post").isNull("body")) {
|
if (!data.getJSONObject("post").isNull("body")) {
|
||||||
@ -668,7 +668,13 @@ public class ParsePost {
|
|||||||
post.setSelfTextPlain(body);
|
post.setSelfTextPlain(body);
|
||||||
post.setSelfTextPlainTrimmed(body.trim());
|
post.setSelfTextPlainTrimmed(body.trim());
|
||||||
}
|
}
|
||||||
|
if (data.getJSONObject("post").getBoolean("featured_community")) {
|
||||||
|
post.setFeaturedInCommunity(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (data.getJSONObject("post").getBoolean("featured_local")) {
|
||||||
|
post.setFeaturedOnInstance(true);
|
||||||
|
}
|
||||||
post.setAuthorIconUrl(authorAvatar);
|
post.setAuthorIconUrl(authorAvatar);
|
||||||
post.setSubredditIconUrl(communityURL);
|
post.setSubredditIconUrl(communityURL);
|
||||||
return post;
|
return post;
|
||||||
|
@ -66,7 +66,9 @@ public class Post implements Parcelable {
|
|||||||
private int upvoteRatio;
|
private int upvoteRatio;
|
||||||
private boolean hidden;
|
private boolean hidden;
|
||||||
private boolean nsfw;
|
private boolean nsfw;
|
||||||
private boolean stickied;
|
private boolean featuredInCommunity;
|
||||||
|
|
||||||
|
private boolean featuredOnInstance;
|
||||||
private boolean archived;
|
private boolean archived;
|
||||||
private boolean locked;
|
private boolean locked;
|
||||||
private boolean saved;
|
private boolean saved;
|
||||||
@ -101,7 +103,6 @@ public class Post implements Parcelable {
|
|||||||
this.upvoteRatio = upvoteRatio;
|
this.upvoteRatio = upvoteRatio;
|
||||||
this.hidden = hidden;
|
this.hidden = hidden;
|
||||||
this.nsfw = nsfw;
|
this.nsfw = nsfw;
|
||||||
this.stickied = stickied;
|
|
||||||
this.archived = archived;
|
this.archived = archived;
|
||||||
this.locked = locked;
|
this.locked = locked;
|
||||||
this.saved = saved;
|
this.saved = saved;
|
||||||
@ -134,7 +135,6 @@ public class Post implements Parcelable {
|
|||||||
this.upvoteRatio = upvoteRatio;
|
this.upvoteRatio = upvoteRatio;
|
||||||
this.hidden = hidden;
|
this.hidden = hidden;
|
||||||
this.nsfw = nsfw;
|
this.nsfw = nsfw;
|
||||||
this.stickied = stickied;
|
|
||||||
this.archived = archived;
|
this.archived = archived;
|
||||||
this.locked = locked;
|
this.locked = locked;
|
||||||
this.saved = saved;
|
this.saved = saved;
|
||||||
@ -177,7 +177,7 @@ public class Post implements Parcelable {
|
|||||||
upvoteRatio = in.readInt();
|
upvoteRatio = in.readInt();
|
||||||
hidden = in.readByte() != 0;
|
hidden = in.readByte() != 0;
|
||||||
nsfw = in.readByte() != 0;
|
nsfw = in.readByte() != 0;
|
||||||
stickied = in.readByte() != 0;
|
featuredInCommunity = in.readByte() != 0;
|
||||||
archived = in.readByte() != 0;
|
archived = in.readByte() != 0;
|
||||||
locked = in.readByte() != 0;
|
locked = in.readByte() != 0;
|
||||||
saved = in.readByte() != 0;
|
saved = in.readByte() != 0;
|
||||||
@ -444,8 +444,20 @@ public class Post implements Parcelable {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isStickied() {
|
public boolean isFeaturedInCommunity() {
|
||||||
return stickied;
|
return featuredInCommunity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFeaturedInCommunity(boolean featuredInCommunity) {
|
||||||
|
this.featuredInCommunity = featuredInCommunity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFeaturedOnInstance() {
|
||||||
|
return featuredOnInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFeaturedOnInstance(boolean featuredOnInstance) {
|
||||||
|
this.featuredOnInstance = featuredOnInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isArchived() {
|
public boolean isArchived() {
|
||||||
@ -534,7 +546,7 @@ public class Post implements Parcelable {
|
|||||||
parcel.writeInt(upvoteRatio);
|
parcel.writeInt(upvoteRatio);
|
||||||
parcel.writeByte((byte) (hidden ? 1 : 0));
|
parcel.writeByte((byte) (hidden ? 1 : 0));
|
||||||
parcel.writeByte((byte) (nsfw ? 1 : 0));
|
parcel.writeByte((byte) (nsfw ? 1 : 0));
|
||||||
parcel.writeByte((byte) (stickied ? 1 : 0));
|
parcel.writeByte((byte) (featuredInCommunity ? 1 : 0));
|
||||||
parcel.writeByte((byte) (archived ? 1 : 0));
|
parcel.writeByte((byte) (archived ? 1 : 0));
|
||||||
parcel.writeByte((byte) (locked ? 1 : 0));
|
parcel.writeByte((byte) (locked ? 1 : 0));
|
||||||
parcel.writeByte((byte) (saved ? 1 : 0));
|
parcel.writeByte((byte) (saved ? 1 : 0));
|
||||||
|
Loading…
Reference in New Issue
Block a user