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 c1359bc23..ae5f8da3f 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java @@ -967,7 +967,7 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr publish(false); } - private void publish(boolean forceWithoutAltTexts){ + private void publish(boolean force){ String text=mainEditText.getText().toString(); CreateStatus.Request req=new CreateStatus.Request(); req.status=text; @@ -979,7 +979,7 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr 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 (!forceWithoutAltTexts && !GlobalUserPreferences.disableAltTextReminder && !isDraft && withoutAltText.isPresent()) { + 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) @@ -989,6 +989,19 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr 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