diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java index b7c2cb602..e5239abe3 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java @@ -1009,6 +1009,10 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr } private void publish(){ + publish(false); + } + + private void publish(boolean force){ String text=mainEditText.getText().toString(); CreateStatus.Request req=new CreateStatus.Request(); req.status=text; @@ -1018,6 +1022,30 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr req.scheduledAt = scheduledAt; if(!attachments.isEmpty()){ req.mediaIds=attachments.stream().map(a->a.serverAttachment.id).collect(Collectors.toList()); + Optional withoutAltText = attachments.stream().filter(a -> a.description == null || a.description.isBlank()).findFirst(); + boolean isDraft = scheduledAt != null && scheduledAt.isAfter(DRAFTS_AFTER_INSTANT); + if (!force && !GlobalUserPreferences.disableAltTextReminder && !isDraft && withoutAltText.isPresent()) { + new M3AlertDialogBuilder(getActivity()) + .setTitle(R.string.sk_alt_text_missing_title) + .setMessage(R.string.sk_alt_text_missing) + .setPositiveButton(R.string.add_alt_text, (d, w) -> editMediaDescription(withoutAltText.get())) + .setNegativeButton(R.string.sk_publish_anyway, (d, w) -> publish(true)) + .show(); + return; + } + } + // ask whether to publish now when editing an existing draft + if (!force && editingStatus != null && scheduledAt != null && scheduledAt.isAfter(DRAFTS_AFTER_INSTANT)) { + new M3AlertDialogBuilder(getActivity()) + .setTitle(R.string.sk_save_draft) + .setMessage(R.string.sk_save_draft_message) + .setPositiveButton(R.string.save, (d, w) -> publish(true)) + .setNegativeButton(R.string.publish, (d, w) -> { + updateScheduledAt(null); + publish(); + }) + .show(); + return; } if(replyTo!=null || (editingStatus != null && editingStatus.inReplyToId!=null)){ req.inReplyToId=editingStatus!=null ? editingStatus.inReplyToId : replyTo.id; diff --git a/mastodon/src/main/res/values/strings_sk.xml b/mastodon/src/main/res/values/strings_sk.xml index aad11b81a..c56f06517 100644 --- a/mastodon/src/main/res/values/strings_sk.xml +++ b/mastodon/src/main/res/values/strings_sk.xml @@ -229,4 +229,6 @@ Attach file Searching… No results + Save draft? + Do you want to save your changes to this draft or publish it now? \ No newline at end of file