Disable quote button when approval is denied

This commit is contained in:
Thomas 2025-08-25 10:39:03 +02:00
parent 8274556404
commit 4bcbd3679d
2 changed files with 19 additions and 0 deletions

View file

@ -62,6 +62,8 @@ public class Status implements Serializable, Cloneable {
public String visibility; public String visibility;
@SerializedName("quote_approval_policy") @SerializedName("quote_approval_policy")
public String quote_approval_policy; public String quote_approval_policy;
@SerializedName("quote_approval")
public QuoteApproval quote_approval;
@SerializedName("language") @SerializedName("language")
public String language; public String language;
@SerializedName("uri") @SerializedName("uri")
@ -119,6 +121,15 @@ public class Status implements Serializable, Cloneable {
@SerializedName("reactions") @SerializedName("reactions")
public List<Reaction> reactions; public List<Reaction> reactions;
public static class QuoteApproval implements Serializable {
@SerializedName("automatic")
public String[] automatic;
@SerializedName("current_user")
public String current_user;
@SerializedName("manual")
public Status[] manual;
}
public Status getQuote() { public Status getQuote() {
Status quote = null; Status quote = null;
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter(); ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
@ -245,4 +256,6 @@ public class Status implements Serializable, Cloneable {
@SerializedName("quoted_status") @SerializedName("quoted_status")
Status quoted_status; Status quoted_status;
} }
} }

View file

@ -60,6 +60,7 @@ import android.text.Html;
import android.text.Spannable; import android.text.Spannable;
import android.text.SpannableString; import android.text.SpannableString;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MenuItem; import android.view.MenuItem;
@ -1206,6 +1207,11 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
if(displayQuote) { if(displayQuote) {
PopupMenu popupMenu = new PopupMenu(context, v); PopupMenu popupMenu = new PopupMenu(context, v);
popupMenu.getMenuInflater().inflate(R.menu.menu_boost_or_quote, popupMenu.getMenu()); popupMenu.getMenuInflater().inflate(R.menu.menu_boost_or_quote, popupMenu.getMenu());
if(statusToDeal.quote_approval != null && statusToDeal.quote_approval.current_user != null && statusToDeal.quote_approval.current_user.equalsIgnoreCase("denied") ) {
popupMenu.getMenu().findItem(R.id.action_quote).setEnabled(false);
} else {
popupMenu.getMenu().findItem(R.id.action_quote).setEnabled(true);
}
popupMenu.setOnMenuItemClickListener(item -> { popupMenu.setOnMenuItemClickListener(item -> {
int itemId = item.getItemId(); int itemId = item.getItemId();
if (itemId == R.id.action_reblog) { if (itemId == R.id.action_reblog) {