summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2023-03-09 17:18:57 +0100
committerThomas <tschneider.ac@gmail.com>2023-03-09 17:18:57 +0100
commit22b43db39b050be792a24a8d096d01c3143d938f (patch)
treed64915e6f6a951984978c954d1ae22c76aa2a2ab
parent09e00cbbeef1645fa7613a5bf45faa49b7ea58a8 (diff)
Warn before boosting a message having no media description
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java19
-rw-r--r--app/src/main/res/values/strings.xml4
-rw-r--r--app/src/main/res/xml/pref_timelines.xml6
-rw-r--r--src/fdroid/fastlane/metadata/android/en/changelogs/484.txt1
4 files changed, 28 insertions, 2 deletions
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 48c73f297..e6edbc3a9 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
@@ -428,6 +428,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
boolean originalDateForBoost = sharedpreferences.getBoolean(context.getString(R.string.SET_BOOST_ORIGINAL_DATE), true);
boolean hideSingleMediaWithCard = sharedpreferences.getBoolean(context.getString(R.string.SET_HIDE_SINGLE_MEDIA_WITH_CARD), false);
boolean autofetch = sharedpreferences.getBoolean(context.getString(R.string.SET_AUTO_FETCH_MISSING_MESSAGES), false);
+ boolean warnNoMedia = sharedpreferences.getBoolean(context.getString(R.string.SET_MANDATORY_ALT_TEXT_FOR_BOOSTS), true);
if (compactButtons) {
@@ -988,12 +989,26 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
return true;
});
holder.binding.actionButtonBoost.setOnClickListener(v -> {
- if (confirmBoost) {
+ boolean needToWarnForMissingDescription = false;
+ if (warnNoMedia && statusToDeal.media_attachments != null && statusToDeal.media_attachments.size() > 0) {
+ for (Attachment attachment : statusToDeal.media_attachments) {
+ if (attachment.description == null || attachment.description.trim().length() == 0) {
+ needToWarnForMissingDescription = true;
+ break;
+ }
+ }
+ }
+ if (confirmBoost || needToWarnForMissingDescription) {
AlertDialog.Builder alt_bld = new MaterialAlertDialogBuilder(context);
+
if (statusToDeal.reblogged) {
alt_bld.setMessage(context.getString(R.string.reblog_remove));
} else {
- alt_bld.setMessage(context.getString(R.string.reblog_add));
+ if (!needToWarnForMissingDescription) {
+ alt_bld.setMessage(context.getString(R.string.reblog_add));
+ } else {
+ alt_bld.setMessage(context.getString(R.string.reblog_missing_description));
+ }
}
alt_bld.setPositiveButton(R.string.yes, (dialog, id) -> {
if (remote) {
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 63fb8cf91..b3dfcecf6 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -71,6 +71,8 @@
<string name="favourite_add">Add this message to your favourites?</string>
<string name="favourite_remove">Remove this message from your favourites?</string>
<string name="reblog_add">Boost this message?</string>
+ <string name="warn_boost_no_media_description">Warn if message has no media description before boosting</string>
+ <string name="reblog_missing_description">This message has missing media description. Are you sure to boost it?</string>
<string name="reblog_remove">Unboost this message?</string>
<string name="more_action_1">Mute</string>
<string name="more_action_2">Block</string>
@@ -1096,6 +1098,8 @@
<string name="SET_FILTER_REGEX_LOCAL" translatable="false">SET_FILTER_REGEX_LOCAL</string>
<string name="SET_FILTER_REGEX_PUBLIC" translatable="false">SET_FILTER_REGEX_PUBLIC</string>
<string name="SET_NOTIF_VALIDATION" translatable="false">SET_NOTIF_VALIDATION</string>
+ <string name="SET_MANDATORY_ALT_TEXT_FOR_BOOSTS" translatable="false">SET_MANDATORY_ALT_TEXT_FOR_BOOSTS</string>
+
<string name="SET_DISPLAY_BOOKMARK" translatable="false">SET_DISPLAY_BOOKMARK</string>
<string name="SET_PIXELFED_PRESENTATION" translatable="false">SET_PIXELFED_PRESENTATION</string>
<string name="SET_DISPLAY_QUOTES" translatable="false">SET_DISPLAY_QUOTES</string>
diff --git a/app/src/main/res/xml/pref_timelines.xml b/app/src/main/res/xml/pref_timelines.xml
index 9ebc9db5c..410c18e62 100644
--- a/app/src/main/res/xml/pref_timelines.xml
+++ b/app/src/main/res/xml/pref_timelines.xml
@@ -88,6 +88,12 @@
app:singleLineTitle="false"
app:title="@string/set_share_validation" />
<SwitchPreferenceCompat
+ app:defaultValue="true"
+ app:iconSpaceReserved="false"
+ app:key="@string/SET_MANDATORY_ALT_TEXT_FOR_BOOSTS"
+ app:singleLineTitle="false"
+ app:title="@string/warn_boost_no_media_description" />
+ <SwitchPreferenceCompat
android:defaultValue="true"
app:iconSpaceReserved="false"
app:key="@string/SET_DISPLAY_BOOKMARK"
diff --git a/src/fdroid/fastlane/metadata/android/en/changelogs/484.txt b/src/fdroid/fastlane/metadata/android/en/changelogs/484.txt
index a2852f84f..d4cdc9a8f 100644
--- a/src/fdroid/fastlane/metadata/android/en/changelogs/484.txt
+++ b/src/fdroid/fastlane/metadata/android/en/changelogs/484.txt
@@ -2,6 +2,7 @@ Added:
- Add a button to fetch remote media when it fails
- Add a settings to automatically fetch remote media when it fails (default: disabled)
- Display on profiles & list of accounts if users have requested to follow you
+- Warn before boosting a message having no media description (default: enabled)
Changed:
- Warn when there are missing descriptions enabled by default