move permission definition to status privacy

This commit is contained in:
sk 2023-06-10 21:54:40 +02:00
parent 70fdfb612e
commit 19b68855ac
3 changed files with 13 additions and 7 deletions

View File

@ -21,8 +21,6 @@ import java.lang.reflect.Type;
import java.time.Instant; import java.time.Instant;
import java.util.List; import java.util.List;
import androidx.annotation.NonNull;
@Parcel @Parcel
public class Status extends BaseModel implements DisplayItemsParent, Searchable{ public class Status extends BaseModel implements DisplayItemsParent, Searchable{
@RequiredField @RequiredField
@ -174,9 +172,10 @@ public class Status extends BaseModel implements DisplayItemsParent, Searchable{
return strippedText; return strippedText;
} }
public boolean isBoostable(String accountID){ public boolean isReblogPermitted(String accountID){
return (visibility==StatusPrivacy.PUBLIC || visibility==StatusPrivacy.UNLISTED || visibility==StatusPrivacy.LOCAL return visibility.isReblogPermitted(account.id.equals(
|| (visibility==StatusPrivacy.PRIVATE && account.id.equals(AccountSessionManager.getInstance().getAccount(accountID).self.id))); AccountSessionManager.getInstance().getAccount(accountID).self.id
));
} }
public static Status ofFake(String id, String text, Instant createdAt) { public static Status ofFake(String id, String text, Instant createdAt) {

View File

@ -14,7 +14,7 @@ public enum StatusPrivacy{
@SerializedName("local") @SerializedName("local")
LOCAL(4); // akkoma LOCAL(4); // akkoma
private int privacy; private final int privacy;
StatusPrivacy(int privacy) { StatusPrivacy(int privacy) {
this.privacy = privacy; this.privacy = privacy;
@ -24,6 +24,13 @@ public enum StatusPrivacy{
return privacy > other.getPrivacy(); 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() { public int getPrivacy() {
return privacy; return privacy;
} }

View File

@ -133,7 +133,7 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
boost.setSelected(item.status.reblogged); boost.setSelected(item.status.reblogged);
favorite.setSelected(item.status.favourited); favorite.setSelected(item.status.favourited);
bookmark.setSelected(item.status.bookmarked); bookmark.setSelected(item.status.bookmarked);
boost.setEnabled(item.status.isBoostable(item.accountID)); boost.setEnabled(item.status.isReblogPermitted(item.accountID));
int nextPos = getAbsoluteAdapterPosition() + 1; int nextPos = getAbsoluteAdapterPosition() + 1;
boolean nextIsWarning = item.parentFragment.getDisplayItems().size() > nextPos && boolean nextIsWarning = item.parentFragment.getDisplayItems().size() > nextPos &&