Merge branch 'fix/2448_draft-body-lost-when-not-available-locally-in-offline-mode' into 'develop'
Do not allow editing drafts locally if their remote body can't be fetched See merge request android/mail/proton-mail-android!783
This commit is contained in:
commit
a77909e941
|
@ -433,25 +433,6 @@ public class ComposeMessageActivity
|
|||
|
||||
composeMessageViewModel.getDbIdWatcher().observe(ComposeMessageActivity.this, new SendMessageObserver());
|
||||
|
||||
composeMessageViewModel.getFetchMessageDetailsEvent().observe(this, messageBuilderDataEvent -> {
|
||||
try {
|
||||
binding.composerProgressLayout.setVisibility(View.GONE);
|
||||
MessageBuilderData messageBuilderData = messageBuilderDataEvent.getContentIfNotHandled();
|
||||
if (messageBuilderData != null) {
|
||||
String mimeType = messageBuilderData.getMessage().getMimeType();
|
||||
setMessageBodyInContainers(composeMessageViewModel.setMessageBody
|
||||
(messageBuilderData.getDecryptedMessage(), false,
|
||||
mimeType != null && mimeType.equals(Constants.MIME_TYPE_PLAIN_TEXT), getString(R.string.sender_name_address),
|
||||
getString(R.string.original_message_divider),
|
||||
getString(R.string.reply_prefix_on),
|
||||
DateUtil.formatDetailedDateTime(this, composeMessageViewModel.getMessageDataResult().getMessageTimestamp())));
|
||||
}
|
||||
composeMessageViewModel.setBeforeSaveDraft(false, messageBodyEditText.getText().toString());
|
||||
} catch (Exception exc) {
|
||||
Timber.tag("588").e(exc, "Exception on fetch message details event");
|
||||
}
|
||||
});
|
||||
|
||||
composeMessageViewModel.getFetchKeyDetailsResult().observe(
|
||||
this,
|
||||
this::onFetchEmailKeysEvent
|
||||
|
@ -1439,7 +1420,7 @@ public class ComposeMessageActivity
|
|||
if (!isFinishing()) {
|
||||
DialogUtils.Companion.showInfoDialog(ComposeMessageActivity.this, getString(R.string.app_name), getString(R.string.messages_load_failure),
|
||||
unit -> {
|
||||
onBackPressed();
|
||||
finishActivity();
|
||||
return unit;
|
||||
});
|
||||
}
|
||||
|
|
|
@ -67,8 +67,6 @@ import ch.protonmail.android.usecase.model.FetchPublicKeysResult
|
|||
import ch.protonmail.android.utils.Event
|
||||
import ch.protonmail.android.utils.MailToData
|
||||
import ch.protonmail.android.utils.MessageUtils
|
||||
import ch.protonmail.android.utils.ServerTime
|
||||
import ch.protonmail.android.utils.ServerTimeProvider
|
||||
import ch.protonmail.android.utils.UiUtil
|
||||
import ch.protonmail.android.utils.resources.StringResourceResolver
|
||||
import ch.protonmail.android.viewmodel.ConnectivityBaseViewModel
|
||||
|
@ -140,7 +138,6 @@ class ComposeMessageViewModel @Inject constructor(
|
|||
private val _openAttachmentsScreenResult: MutableLiveData<List<LocalAttachment>> = MutableLiveData()
|
||||
private val _buildingMessageCompleted: MutableLiveData<Event<Message>> = MutableLiveData()
|
||||
private val _dbIdWatcher: MutableLiveData<Long> = MutableLiveData()
|
||||
private val _fetchMessageDetailsEvent: MutableLiveData<Event<MessageBuilderData>> = MutableLiveData()
|
||||
private val fetchKeyDetailsTrigger = MutableLiveData<List<FetchPublicKeysRequest>>()
|
||||
|
||||
private val _androidContacts = java.util.ArrayList<MessageRecipient>()
|
||||
|
@ -206,8 +203,6 @@ class ComposeMessageViewModel @Inject constructor(
|
|||
get() = _buildingMessageCompleted
|
||||
val dbIdWatcher: LiveData<Long>
|
||||
get() = _dbIdWatcher
|
||||
val fetchMessageDetailsEvent: LiveData<Event<MessageBuilderData>>
|
||||
get() = _fetchMessageDetailsEvent
|
||||
var androidContactsLoaded: Boolean
|
||||
get() = _androidContactsLoaded
|
||||
set(value) {
|
||||
|
|
|
@ -24,27 +24,24 @@ import ch.protonmail.android.core.Constants;
|
|||
import ch.protonmail.android.data.local.model.Message;
|
||||
import ch.protonmail.android.events.FetchDraftDetailEvent;
|
||||
import ch.protonmail.android.utils.AppUtil;
|
||||
import ch.protonmail.android.utils.Logger;
|
||||
import timber.log.Timber;
|
||||
|
||||
public class FetchDraftDetailJob extends ProtonMailBaseJob {
|
||||
|
||||
private static final String TAG_FETCH_DRAFT_DETAIL_JOB = "FetchDraftDetailJob";
|
||||
|
||||
private final String mMessageId;
|
||||
|
||||
public FetchDraftDetailJob(final String messageId) {
|
||||
super(new Params(Priority.LOW).requireNetwork().groupBy(Constants.JOB_GROUP_MESSAGE));
|
||||
mMessageId = messageId;
|
||||
|
||||
if (!getQueueNetworkUtil().isConnected()) {
|
||||
Timber.d("no network - cannot fetch draft detail");
|
||||
AppUtil.postEventOnUi(new FetchDraftDetailEvent(false));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRun() throws Throwable {
|
||||
if (!getQueueNetworkUtil().isConnected()) {
|
||||
Logger.doLog(TAG_FETCH_DRAFT_DETAIL_JOB, "no network - cannot fetch draft detail");
|
||||
AppUtil.postEventOnUi(new FetchDraftDetailEvent(false));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
final Message message = getApi().fetchMessageDetailsBlocking(mMessageId).getMessage();
|
||||
Message savedMessage = getMessageDetailsRepository().findMessageByIdBlocking(message.getMessageId());
|
||||
|
|
Loading…
Reference in New Issue