Commit 97a527ab authored by Thomas's avatar Thomas
Browse files

Allow to warn instead of blocking when there are no media description

parent b981d289
Loading
Loading
Loading
Loading
+104 −73
Original line number Diff line number Diff line
@@ -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();
            }
@@ -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();
                    }
@@ -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);
@@ -923,8 +955,6 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
            }
            finish();
        }

        }).start();
    }


@@ -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;
                        }
                    }
                }
+7 −0
Original line number Diff line number Diff line
@@ -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">
@@ -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
+14 −4
Original line number Diff line number Diff line
@@ -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"
@@ -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"
+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