From 4bcbd3679d34b8abf93d3ef3137b653efc15965f Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 25 Aug 2025 10:39:03 +0200 Subject: [PATCH] Disable quote button when approval is denied --- .../mastodon/client/entities/api/Status.java | 13 +++++++++++++ .../android/mastodon/ui/drawer/StatusAdapter.java | 6 ++++++ 2 files changed, 19 insertions(+) diff --git a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Status.java b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Status.java index 6cb1e933..38deeff1 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Status.java +++ b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Status.java @@ -62,6 +62,8 @@ public class Status implements Serializable, Cloneable { public String visibility; @SerializedName("quote_approval_policy") public String quote_approval_policy; + @SerializedName("quote_approval") + public QuoteApproval quote_approval; @SerializedName("language") public String language; @SerializedName("uri") @@ -119,6 +121,15 @@ public class Status implements Serializable, Cloneable { @SerializedName("reactions") public List 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() { Status quote = null; ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter(); @@ -245,4 +256,6 @@ public class Status implements Serializable, Cloneable { @SerializedName("quoted_status") Status quoted_status; } + + } diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java index 7f8b819d..c228651f 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java @@ -60,6 +60,7 @@ import android.text.Html; import android.text.Spannable; import android.text.SpannableString; import android.text.TextUtils; +import android.util.Log; import android.util.TypedValue; import android.view.LayoutInflater; import android.view.MenuItem; @@ -1206,6 +1207,11 @@ public class StatusAdapter extends RecyclerView.Adapter if(displayQuote) { PopupMenu popupMenu = new PopupMenu(context, v); 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 -> { int itemId = item.getItemId(); if (itemId == R.id.action_reblog) {