diff --git a/mastodon/src/main/java/org/joinmastodon/android/model/Status.java b/mastodon/src/main/java/org/joinmastodon/android/model/Status.java index 25da2d85b..e1d34efe6 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/model/Status.java +++ b/mastodon/src/main/java/org/joinmastodon/android/model/Status.java @@ -21,8 +21,6 @@ import java.lang.reflect.Type; import java.time.Instant; import java.util.List; -import androidx.annotation.NonNull; - @Parcel public class Status extends BaseModel implements DisplayItemsParent, Searchable{ @RequiredField @@ -174,9 +172,10 @@ public class Status extends BaseModel implements DisplayItemsParent, Searchable{ return strippedText; } - public boolean isBoostable(String accountID){ - return (visibility==StatusPrivacy.PUBLIC || visibility==StatusPrivacy.UNLISTED || visibility==StatusPrivacy.LOCAL - || (visibility==StatusPrivacy.PRIVATE && account.id.equals(AccountSessionManager.getInstance().getAccount(accountID).self.id))); + public boolean isReblogPermitted(String accountID){ + return visibility.isReblogPermitted(account.id.equals( + AccountSessionManager.getInstance().getAccount(accountID).self.id + )); } public static Status ofFake(String id, String text, Instant createdAt) { diff --git a/mastodon/src/main/java/org/joinmastodon/android/model/StatusPrivacy.java b/mastodon/src/main/java/org/joinmastodon/android/model/StatusPrivacy.java index dcb0c4e1b..bf8daf4cf 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/model/StatusPrivacy.java +++ b/mastodon/src/main/java/org/joinmastodon/android/model/StatusPrivacy.java @@ -14,7 +14,7 @@ public enum StatusPrivacy{ @SerializedName("local") LOCAL(4); // akkoma - private int privacy; + private final int privacy; StatusPrivacy(int privacy) { this.privacy = privacy; @@ -24,6 +24,13 @@ public enum StatusPrivacy{ return privacy > other.getPrivacy(); } + public boolean isReblogPermitted(boolean isOwnStatus){ + return (this == StatusPrivacy.PUBLIC || + this == StatusPrivacy.UNLISTED || + this == StatusPrivacy.LOCAL || + (this == StatusPrivacy.PRIVATE && isOwnStatus)); + } + public int getPrivacy() { return privacy; } diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java index c749f4ab3..a2823697e 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java @@ -133,7 +133,7 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{ boost.setSelected(item.status.reblogged); favorite.setSelected(item.status.favourited); bookmark.setSelected(item.status.bookmarked); - boost.setEnabled(item.status.isBoostable(item.accountID)); + boost.setEnabled(item.status.isReblogPermitted(item.accountID)); int nextPos = getAbsoluteAdapterPosition() + 1; boolean nextIsWarning = item.parentFragment.getDisplayItems().size() > nextPos &&