Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1717ede3 authored by cketti's avatar cketti
Browse files

Avoid NullPointerExceptions when unboxing

parent e305d91c
Loading
Loading
Loading
Loading
+18 −3
Original line number Diff line number Diff line
@@ -1886,8 +1886,13 @@ public class MessagingController {
    public void deleteDraft(final Account account, long id) {
        LocalFolder localFolder = null;
        try {
            Long folderId = account.getDraftsFolderId();
            if (folderId == null) {
                Timber.w("No Drafts folder configured. Can't delete draft.");
                return;
            }

            LocalStore localStore = localStoreProvider.getInstance(account);
            long folderId = account.getDraftsFolderId();
            localFolder = localStore.getFolder(folderId);
            localFolder.open();
            String uid = localFolder.getMessageUidById(id);
@@ -2135,8 +2140,13 @@ public class MessagingController {
            public void run() {
                LocalFolder localFolder = null;
                try {
                    Long trashFolderId = account.getTrashFolderId();
                    if (trashFolderId == null) {
                        Timber.w("No Trash folder configured. Can't empty trash.");
                        return;
                    }

                    LocalStore localStore = localStoreProvider.getInstance(account);
                    long trashFolderId = account.getTrashFolderId();
                    localFolder = localStore.getFolder(trashFolderId);
                    localFolder.open();
                    String trashFolderServerId = localFolder.getServerId();
@@ -2567,8 +2577,13 @@ public class MessagingController {
    public Message saveDraft(final Account account, final Message message, long existingDraftId, String plaintextSubject, boolean saveRemotely) {
        LocalMessage localMessage = null;
        try {
            Long draftsFolderId = account.getDraftsFolderId();
            if (draftsFolderId == null) {
                throw new IllegalStateException("No Drafts folder configured");
            }

            LocalStore localStore = localStoreProvider.getInstance(account);
            LocalFolder localFolder = localStore.getFolder(account.getDraftsFolderId());
            LocalFolder localFolder = localStore.getFolder(draftsFolderId);
            localFolder.open();

            if (existingDraftId != INVALID_MESSAGE_ID) {
+6 −2
Original line number Diff line number Diff line
@@ -75,7 +75,9 @@ class AccountSearchConditions {
        excludeSpecialFolder(search, account.spamFolderId)
        excludeSpecialFolder(search, account.outboxFolderId)
        excludeSpecialFolder(search, account.sentFolderId)
        search.or(SearchCondition(SearchField.FOLDER, Attribute.EQUALS, account.inboxFolderId!!.toString()))
        account.inboxFolderId?.let { inboxFolderId ->
            search.or(SearchCondition(SearchField.FOLDER, Attribute.EQUALS, inboxFolderId.toString()))
        }
    }

    /**
@@ -97,7 +99,9 @@ class AccountSearchConditions {
        excludeSpecialFolder(search, account.trashFolderId)
        excludeSpecialFolder(search, account.spamFolderId)
        excludeSpecialFolder(search, account.outboxFolderId)
        search.or(SearchCondition(SearchField.FOLDER, Attribute.EQUALS, account.inboxFolderId.toString()))
        account.inboxFolderId?.let { inboxFolderId ->
            search.or(SearchCondition(SearchField.FOLDER, Attribute.EQUALS, inboxFolderId.toString()))
        }
    }

    private fun excludeSpecialFolder(search: LocalSearch, folderId: Long?) {
+2 −1
Original line number Diff line number Diff line
@@ -1244,7 +1244,8 @@ public class MessageList extends K9Activity implements MessageListFragmentListen
        Account account = preferences.getAccount(messageReference.getAccountUuid());
        long folderId = messageReference.getFolderId();

        if (folderId == account.getDraftsFolderId()) {
        Long draftsFolderId = account.getDraftsFolderId();
        if (draftsFolderId != null && folderId == draftsFolderId) {
            MessageActions.actionEditDraft(this, messageReference);
        } else {
            if (messageListFragment != null) {
+3 −3
Original line number Diff line number Diff line
@@ -321,8 +321,8 @@ public class MessageViewFragment extends Fragment implements ConfirmationDialogF
        }
    }

    public void onRefile(long dstFolderId) {
        if (!mController.isMoveCapable(mAccount)) {
    public void onRefile(Long dstFolderId) {
        if (dstFolderId == null || !mController.isMoveCapable(mAccount)) {
            return;
        }
        if (!mController.isMoveCapable(mMessageReference)) {
@@ -331,7 +331,7 @@ public class MessageViewFragment extends Fragment implements ConfirmationDialogF
            return;
        }

        if (dstFolderId == mAccount.getSpamFolderId() && K9.isConfirmSpam()) {
        if (dstFolderId.equals(mAccount.getSpamFolderId()) && K9.isConfirmSpam()) {
            destinationFolderId = dstFolderId;
            showDialog(R.id.dialog_confirm_spam);
        } else {