Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,7 @@ public class MessageCompose extends BaseActivity implements OnClickListener,
"com.fsck.k9.activity.MessageCompose.activeInAppNotifications";

private static final String FRAGMENT_WAITING_FOR_ATTACHMENT = "waitingForAttachment";
private static final String FRAGMENT_ENCRYPTING_MESSAGE = "encryptingMessage";

private static final int MSG_PROGRESS_ON = 1;
private static final int MSG_PROGRESS_OFF = 2;
Expand Down Expand Up @@ -922,10 +923,37 @@ public void performSendAfterChecks() {
sendMessageHasBeenTriggered = true;
changesMadeSinceLastSave = false;
setProgressBarIndeterminateVisibility(true);
showEncryptedMessageProgressIndicatorIfNeeded();
currentMessageBuilder.buildAsync(this);
}
}

private void showEncryptedMessageProgressIndicatorIfNeeded() {
ComposeCryptoStatus cryptoStatus = recipientPresenter.getCurrentCachedCryptoStatus();
boolean hasAttachments = !attachmentPresenter.getAttachments().isEmpty();
if (cryptoStatus == null || !cryptoStatus.isEncryptionEnabled() || !hasAttachments) {
return;
}

FragmentManager fragmentManager = getSupportFragmentManager();
if (fragmentManager.findFragmentByTag(FRAGMENT_ENCRYPTING_MESSAGE) != null) {
return;
}

ProgressDialogFragment fragment = ProgressDialogFragment.Companion.newInstance(
getString(R.string.fetching_attachment_dialog_title_send),
getString(R.string.message_compose_encrypting_message));
fragment.setCancelable(false);
fragment.show(fragmentManager, FRAGMENT_ENCRYPTING_MESSAGE);
}

private void dismissEncryptedMessageProgressIndicator() {
Fragment fragment = getSupportFragmentManager().findFragmentByTag(FRAGMENT_ENCRYPTING_MESSAGE);
if (fragment instanceof ProgressDialogFragment) {
((ProgressDialogFragment) fragment).dismiss();
}
}

private void onDiscard() {
if (draftMessageId != null) {
messagingController.deleteDraft(account, draftMessageId);
Expand Down Expand Up @@ -978,6 +1006,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
"this is an illegal state!");
return;
}
showEncryptedMessageProgressIndicatorIfNeeded();
currentMessageBuilder.onActivityResult(requestCode, resultCode, data, this);
return;
}
Expand Down Expand Up @@ -1785,6 +1814,7 @@ public void updateMessageFormat() {

@Override
public void onMessageBuildSuccess(MimeMessage message, boolean isDraft) {
dismissEncryptedMessageProgressIndicator();
String plaintextSubject =
(currentMessageBuilder instanceof PgpMessageBuilder) ? currentMessageBuilder.getSubject() : null;

Expand All @@ -1809,13 +1839,15 @@ public void onMessageBuildSuccess(MimeMessage message, boolean isDraft) {

@Override
public void onMessageBuildCancel() {
dismissEncryptedMessageProgressIndicator();
sendMessageHasBeenTriggered = false;
currentMessageBuilder = null;
setProgressBarIndeterminateVisibility(false);
}

@Override
public void onMessageBuildException(MessagingException me) {
dismissEncryptedMessageProgressIndicator();
Log.e(me, "Error sending message");
Toast.makeText(MessageCompose.this,
getString(R.string.send_failed_reason, me.getLocalizedMessage()), Toast.LENGTH_LONG).show();
Expand All @@ -1826,6 +1858,7 @@ public void onMessageBuildException(MessagingException me) {

@Override
public void onMessageBuildReturnPendingIntent(PendingIntent pendingIntent, int requestCode) {
dismissEncryptedMessageProgressIndicator();
requestCode |= REQUEST_MASK_MESSAGE_BUILDER;
try {
OpenPgpIntentStarter.startIntentSenderForResult(this, pendingIntent.getIntentSender(), requestCode);
Expand Down
1 change: 1 addition & 0 deletions legacy/ui/legacy/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -654,6 +654,7 @@
<string name="fetching_attachment_dialog_title_send">Nachricht senden</string>
<string name="fetching_attachment_dialog_title_save">Entwurf speichern</string>
<string name="fetching_attachment_dialog_message">Anhang wird heruntergeladen…</string>
<string name="message_compose_encrypting_message">Nachricht verschlüsseln…</string>
<!--Note: This references message_view_download_remainder-->
<string name="preview_encrypted">*Verschlüsselt*</string>
<string name="add_from_contacts">Vom Adressbuch hinzufügen</string>
Expand Down
1 change: 1 addition & 0 deletions legacy/ui/legacy/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -904,6 +904,7 @@
<string name="fetching_attachment_dialog_title_send">Sending message</string>
<string name="fetching_attachment_dialog_title_save">Saving draft</string>
<string name="fetching_attachment_dialog_message">Fetching attachment…</string>
<string name="message_compose_encrypting_message">Encrypting message…</string>

<!-- Note: This references message_view_download_remainder -->
<string name="preview_encrypted">*Encrypted*</string>
Expand Down
Loading