Do not show "Pin" in "more" menu of direct status. (#909)

main
kyori19 6 years ago committed by Konrad Pozniak
parent 75678c5b2c
commit 39e54c666e
  1. 4
      app/src/main/java/com/keylesspalace/tusky/entity/Status.kt
  2. 26
      app/src/main/java/com/keylesspalace/tusky/fragment/SFragment.java

@ -102,6 +102,10 @@ data class Status(
return (visibility != Visibility.DIRECT && visibility != Visibility.UNKNOWN) return (visibility != Visibility.DIRECT && visibility != Visibility.UNKNOWN)
} }
fun isPinned(): Boolean {
return pinned ?: false
}
override fun equals(other: Any?): Boolean { override fun equals(other: Any?): Boolean {
if (this === other) return true if (this === other) return true
if (other == null || javaClass != other.javaClass) return false if (other == null || javaClass != other.javaClass) return false

@ -153,15 +153,21 @@ public abstract class SFragment extends BaseFragment {
} else { } else {
popup.inflate(R.menu.status_more_for_user); popup.inflate(R.menu.status_more_for_user);
Menu menu = popup.getMenu(); Menu menu = popup.getMenu();
if (status.getVisibility() == Status.Visibility.PRIVATE) { switch (status.getVisibility()) {
boolean reblogged = status.getReblogged(); case PUBLIC:
if (status.getReblog() != null) reblogged = status.getReblog().getReblogged(); case UNLISTED: {
menu.findItem(R.id.status_reblog_private).setVisible(!reblogged); final String textId =
menu.findItem(R.id.status_unreblog_private).setVisible(reblogged); getString(status.isPinned() ? R.string.unpin_action : R.string.pin_action);
} else { menu.add(0, R.id.pin, 1, textId);
final String textId = break;
getString(status.getPinned() ? R.string.unpin_action : R.string.pin_action); }
menu.add(0, R.id.pin, 1, textId); case PRIVATE: {
boolean reblogged = status.getReblogged();
if (status.getReblog() != null) reblogged = status.getReblog().getReblogged();
menu.findItem(R.id.status_reblog_private).setVisible(!reblogged);
menu.findItem(R.id.status_unreblog_private).setVisible(reblogged);
break;
}
} }
} }
popup.setOnMenuItemClickListener(item -> { popup.setOnMenuItemClickListener(item -> {
@ -219,7 +225,7 @@ public abstract class SFragment extends BaseFragment {
return true; return true;
} }
case R.id.pin: { case R.id.pin: {
timelineCases().pin(status, !status.getPinned()); timelineCases().pin(status, !status.isPinned());
return true; return true;
} }
} }

Loading…
Cancel
Save