Loading app/src/main/java/app/fedilab/android/mastodon/activities/ComposeActivity.java +104 −73 Original line number Diff line number Diff line Loading @@ -398,6 +398,20 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana MediaHelper.scheduleMessage(ComposeActivity.this, date -> storeDraft(true, date)); } else if (canBeSent(statusDraft) == -1) { Toasty.warning(ComposeActivity.this, getString(R.string.toot_error_no_media_description), Toasty.LENGTH_SHORT).show(); } else if (canBeSent(statusDraft) == -2) { Toasty.warning(ComposeActivity.this, getString(R.string.toot_error_no_media_description), Toasty.LENGTH_SHORT).show(); MaterialAlertDialogBuilder materialAlertDialogBuilder = new MaterialAlertDialogBuilder(this); materialAlertDialogBuilder.setMessage(R.string.toot_error_no_media_description); materialAlertDialogBuilder.setPositiveButton(R.string.send_anyway, (dialog, id) -> { MediaHelper.scheduleMessage(ComposeActivity.this, date -> storeDraft(true, date)); dialog.dismiss(); }); materialAlertDialogBuilder.setNegativeButton(R.string.cancel, (dialog, id) -> { dialog.cancel(); }); AlertDialog alert = materialAlertDialogBuilder.create(); alert.show(); } else { Toasty.info(ComposeActivity.this, getString(R.string.toot_error_no_content), Toasty.LENGTH_SHORT).show(); } Loading Loading @@ -831,11 +845,24 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana statusDraft.user_id = account.user_id; } if (canBeSent(statusDraft) != 1) { if (canBeSent(statusDraft) != 1 && sendMessage) { Handler mainHandler = new Handler(Looper.getMainLooper()); Runnable myRunnable = () -> { if (canBeSent(statusDraft) == -1) { Toasty.warning(ComposeActivity.this, getString(R.string.toot_error_no_media_description), Toasty.LENGTH_SHORT).show(); } else if (canBeSent(statusDraft) == -2) { MaterialAlertDialogBuilder materialAlertDialogBuilder = new MaterialAlertDialogBuilder(this); materialAlertDialogBuilder.setMessage(R.string.toot_error_no_media_description); materialAlertDialogBuilder.setPositiveButton(R.string.send_anyway, (dialog, id) -> { sendMessage(true, scheduledDate); dialog.dismiss(); }); materialAlertDialogBuilder.setNegativeButton(R.string.cancel, (dialog, id) -> { dialog.cancel(); }); AlertDialog alert = materialAlertDialogBuilder.create(); alert.show(); } else { Toasty.info(ComposeActivity.this, getString(R.string.toot_error_no_content), Toasty.LENGTH_SHORT).show(); } Loading @@ -845,6 +872,11 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana mainHandler.post(myRunnable); return; } sendMessage(sendMessage, scheduledDate); }).start(); } private void sendMessage(boolean sendMessage, String scheduledDate) { if (statusDraft.id > 0) { try { new StatusDraft(ComposeActivity.this).updateStatusDraft(statusDraft); Loading Loading @@ -923,8 +955,6 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana } finish(); } }).start(); } Loading @@ -934,12 +964,13 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana } SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this); boolean checkAlt = sharedpreferences.getBoolean(getString(R.string.SET_MANDATORY_ALT_TEXT), false); boolean warnOnly = sharedpreferences.getBoolean(getString(R.string.SET_MANDATORY_ALT_TEXT_WARN), false); if (checkAlt) { for (Status status : statusDraft.statusDraftList) { if (status.media_attachments != null && status.media_attachments.size() > 0) { for (Attachment attachment : status.media_attachments) { if (attachment.description == null || attachment.description.trim().isEmpty()) { return -1; return warnOnly ? -2 : -1; } } } Loading app/src/main/res/values/strings.xml +7 −0 Original line number Diff line number Diff line Loading @@ -876,6 +876,8 @@ <string name="SET_FEATURED_TAGS" translatable="false">SET_FEATURED_TAGS</string> <string name="SET_FEATURED_TAG_ACTION" translatable="false">SET_FEATURED_TAG_ACTION</string> <string name="SET_MANDATORY_ALT_TEXT" translatable="false">SET_MANDATORY_ALT_TEXT</string> <string name="SET_MANDATORY_ALT_TEXT_WARN" translatable="false">SET_MANDATORY_ALT_TEXT_WARN</string> <string name="SET_RETRIEVE_METADATA_IF_URL_FROM_EXTERAL" translatable="false">SET_RETRIEVE_METADATA_IF_URL_FROM_EXTERAL</string> <string name="SET_TRANSLATE_VALUES_RESET" translatable="false">SET_TRANSLATE_VALUES_RESET</string> <string-array name="SET_TRANSLATE_ENTRIES" translatable="false"> Loading Loading @@ -1916,4 +1918,9 @@ <string name="truncate_links">Truncate links</string> <string name="truncate_links_max">Max chars in links</string> <string name="set_alt_text_mandatory_warn">Warn only</string> <string name="set_alt_text_mandatory_description_warn">If there are missing media a dialog will be displayed with the ability to send the message without media description</string> <string name="send_anyway">Send anyway</string> </resources> No newline at end of file app/src/main/res/xml/pref_compose.xml +14 −4 Original line number Diff line number Diff line Loading @@ -61,6 +61,11 @@ app:summary="@string/set_watermark_indication" app:title="@string/set_watermark" /> <EditTextPreference app:dependency="@string/SET_WATERMARK" app:key="@string/SET_WATERMARK_TEXT" app:useSimpleSummaryProvider="true" /> <SwitchPreferenceCompat app:defaultValue="false" app:iconSpaceReserved="false" Loading @@ -69,10 +74,15 @@ app:summary="@string/set_alt_text_mandatory_description" app:title="@string/set_alt_text_mandatory" /> <EditTextPreference app:dependency="@string/SET_WATERMARK" app:key="@string/SET_WATERMARK_TEXT" app:useSimpleSummaryProvider="true" /> <SwitchPreferenceCompat app:defaultValue="false" app:dependency="@string/SET_MANDATORY_ALT_TEXT" app:iconSpaceReserved="false" app:key="@string/SET_MANDATORY_ALT_TEXT_WARN" app:singleLineTitle="false" app:summary="@string/set_alt_text_mandatory_description_warn" app:title="@string/set_alt_text_mandatory_warn" /> <SwitchPreferenceCompat app:defaultValue="true" Loading src/fdroid/fastlane/metadata/android/en/changelogs/482.txt 0 → 100644 +9 −0 Original line number Diff line number Diff line Added: - Settings compose: display a dialog to warn if there are missing media description (default disabled) Changed: - Fixed: - No newline at end of file Loading
app/src/main/java/app/fedilab/android/mastodon/activities/ComposeActivity.java +104 −73 Original line number Diff line number Diff line Loading @@ -398,6 +398,20 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana MediaHelper.scheduleMessage(ComposeActivity.this, date -> storeDraft(true, date)); } else if (canBeSent(statusDraft) == -1) { Toasty.warning(ComposeActivity.this, getString(R.string.toot_error_no_media_description), Toasty.LENGTH_SHORT).show(); } else if (canBeSent(statusDraft) == -2) { Toasty.warning(ComposeActivity.this, getString(R.string.toot_error_no_media_description), Toasty.LENGTH_SHORT).show(); MaterialAlertDialogBuilder materialAlertDialogBuilder = new MaterialAlertDialogBuilder(this); materialAlertDialogBuilder.setMessage(R.string.toot_error_no_media_description); materialAlertDialogBuilder.setPositiveButton(R.string.send_anyway, (dialog, id) -> { MediaHelper.scheduleMessage(ComposeActivity.this, date -> storeDraft(true, date)); dialog.dismiss(); }); materialAlertDialogBuilder.setNegativeButton(R.string.cancel, (dialog, id) -> { dialog.cancel(); }); AlertDialog alert = materialAlertDialogBuilder.create(); alert.show(); } else { Toasty.info(ComposeActivity.this, getString(R.string.toot_error_no_content), Toasty.LENGTH_SHORT).show(); } Loading Loading @@ -831,11 +845,24 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana statusDraft.user_id = account.user_id; } if (canBeSent(statusDraft) != 1) { if (canBeSent(statusDraft) != 1 && sendMessage) { Handler mainHandler = new Handler(Looper.getMainLooper()); Runnable myRunnable = () -> { if (canBeSent(statusDraft) == -1) { Toasty.warning(ComposeActivity.this, getString(R.string.toot_error_no_media_description), Toasty.LENGTH_SHORT).show(); } else if (canBeSent(statusDraft) == -2) { MaterialAlertDialogBuilder materialAlertDialogBuilder = new MaterialAlertDialogBuilder(this); materialAlertDialogBuilder.setMessage(R.string.toot_error_no_media_description); materialAlertDialogBuilder.setPositiveButton(R.string.send_anyway, (dialog, id) -> { sendMessage(true, scheduledDate); dialog.dismiss(); }); materialAlertDialogBuilder.setNegativeButton(R.string.cancel, (dialog, id) -> { dialog.cancel(); }); AlertDialog alert = materialAlertDialogBuilder.create(); alert.show(); } else { Toasty.info(ComposeActivity.this, getString(R.string.toot_error_no_content), Toasty.LENGTH_SHORT).show(); } Loading @@ -845,6 +872,11 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana mainHandler.post(myRunnable); return; } sendMessage(sendMessage, scheduledDate); }).start(); } private void sendMessage(boolean sendMessage, String scheduledDate) { if (statusDraft.id > 0) { try { new StatusDraft(ComposeActivity.this).updateStatusDraft(statusDraft); Loading Loading @@ -923,8 +955,6 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana } finish(); } }).start(); } Loading @@ -934,12 +964,13 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana } SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this); boolean checkAlt = sharedpreferences.getBoolean(getString(R.string.SET_MANDATORY_ALT_TEXT), false); boolean warnOnly = sharedpreferences.getBoolean(getString(R.string.SET_MANDATORY_ALT_TEXT_WARN), false); if (checkAlt) { for (Status status : statusDraft.statusDraftList) { if (status.media_attachments != null && status.media_attachments.size() > 0) { for (Attachment attachment : status.media_attachments) { if (attachment.description == null || attachment.description.trim().isEmpty()) { return -1; return warnOnly ? -2 : -1; } } } Loading
app/src/main/res/values/strings.xml +7 −0 Original line number Diff line number Diff line Loading @@ -876,6 +876,8 @@ <string name="SET_FEATURED_TAGS" translatable="false">SET_FEATURED_TAGS</string> <string name="SET_FEATURED_TAG_ACTION" translatable="false">SET_FEATURED_TAG_ACTION</string> <string name="SET_MANDATORY_ALT_TEXT" translatable="false">SET_MANDATORY_ALT_TEXT</string> <string name="SET_MANDATORY_ALT_TEXT_WARN" translatable="false">SET_MANDATORY_ALT_TEXT_WARN</string> <string name="SET_RETRIEVE_METADATA_IF_URL_FROM_EXTERAL" translatable="false">SET_RETRIEVE_METADATA_IF_URL_FROM_EXTERAL</string> <string name="SET_TRANSLATE_VALUES_RESET" translatable="false">SET_TRANSLATE_VALUES_RESET</string> <string-array name="SET_TRANSLATE_ENTRIES" translatable="false"> Loading Loading @@ -1916,4 +1918,9 @@ <string name="truncate_links">Truncate links</string> <string name="truncate_links_max">Max chars in links</string> <string name="set_alt_text_mandatory_warn">Warn only</string> <string name="set_alt_text_mandatory_description_warn">If there are missing media a dialog will be displayed with the ability to send the message without media description</string> <string name="send_anyway">Send anyway</string> </resources> No newline at end of file
app/src/main/res/xml/pref_compose.xml +14 −4 Original line number Diff line number Diff line Loading @@ -61,6 +61,11 @@ app:summary="@string/set_watermark_indication" app:title="@string/set_watermark" /> <EditTextPreference app:dependency="@string/SET_WATERMARK" app:key="@string/SET_WATERMARK_TEXT" app:useSimpleSummaryProvider="true" /> <SwitchPreferenceCompat app:defaultValue="false" app:iconSpaceReserved="false" Loading @@ -69,10 +74,15 @@ app:summary="@string/set_alt_text_mandatory_description" app:title="@string/set_alt_text_mandatory" /> <EditTextPreference app:dependency="@string/SET_WATERMARK" app:key="@string/SET_WATERMARK_TEXT" app:useSimpleSummaryProvider="true" /> <SwitchPreferenceCompat app:defaultValue="false" app:dependency="@string/SET_MANDATORY_ALT_TEXT" app:iconSpaceReserved="false" app:key="@string/SET_MANDATORY_ALT_TEXT_WARN" app:singleLineTitle="false" app:summary="@string/set_alt_text_mandatory_description_warn" app:title="@string/set_alt_text_mandatory_warn" /> <SwitchPreferenceCompat app:defaultValue="true" Loading
src/fdroid/fastlane/metadata/android/en/changelogs/482.txt 0 → 100644 +9 −0 Original line number Diff line number Diff line Added: - Settings compose: display a dialog to warn if there are missing media description (default disabled) Changed: - Fixed: - No newline at end of file