Loading app/core/src/main/java/com/fsck/k9/controller/MessagingController.java +6 −3 Original line number Diff line number Diff line Loading @@ -2179,11 +2179,14 @@ public class MessagingController { } } Backend backend = getBackend(account); LocalStore localStore = localStoreProvider.getInstance(account); localFolder = localStore.getFolder(folder); Map<String, String> uidMap = null; if (folder.equals(account.getTrashFolder()) || !account.hasTrashFolder()) { Timber.d("Deleting messages in trash folder or trash set to -None-, not copying"); if (folder.equals(account.getTrashFolder()) || !account.hasTrashFolder() || !backend.isDeleteMoveToTrash()) { Timber.d("Not moving deleted messages to local Trash folder. Removing local copies."); if (!localOnlyMessages.isEmpty()) { localFolder.destroyMessages(localOnlyMessages); Loading Loading @@ -2217,7 +2220,7 @@ public class MessagingController { processPendingCommands(account); } else if (!syncedMessageUids.isEmpty()) { if (account.getDeletePolicy() == DeletePolicy.ON_DELETE) { if (folder.equals(account.getTrashFolder())) { if (folder.equals(account.getTrashFolder()) || !backend.isDeleteMoveToTrash()) { queueSetFlag(account, folder, true, Flag.DELETED, syncedMessageUids); } else { queueMoveOrCopy(account, folder, account.getTrashFolder(), false, Loading backend/api/src/main/java/com/fsck/k9/backend/api/Backend.kt +1 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ interface Backend { val supportsTrashFolder: Boolean val supportsSearchByDate: Boolean val isPushCapable: Boolean val isDeleteMoveToTrash: Boolean @Throws(MessagingException::class) fun refreshFolderList() Loading backend/imap/src/main/java/com/fsck/k9/backend/imap/ImapBackend.java +5 −0 Original line number Diff line number Diff line Loading @@ -102,6 +102,11 @@ public class ImapBackend implements Backend { return true; } @Override public boolean isDeleteMoveToTrash() { return true; } @Override public void refreshFolderList() { commandRefreshFolderList.refreshFolderList(); Loading backend/pop3/src/main/java/com/fsck/k9/backend/pop3/Pop3Backend.kt +1 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ class Pop3Backend( override val supportsTrashFolder = false override val supportsSearchByDate = false override val isPushCapable = false override val isDeleteMoveToTrash = false override fun refreshFolderList() { commandRefreshFolderList.refreshFolderList() Loading backend/webdav/src/main/java/com/fsck/k9/backend/webdav/WebDavBackend.kt +1 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ class WebDavBackend( override val supportsTrashFolder = true override val supportsSearchByDate = false override val isPushCapable = false override val isDeleteMoveToTrash = true override fun refreshFolderList() { commandGetFolders.refreshFolderList() Loading Loading
app/core/src/main/java/com/fsck/k9/controller/MessagingController.java +6 −3 Original line number Diff line number Diff line Loading @@ -2179,11 +2179,14 @@ public class MessagingController { } } Backend backend = getBackend(account); LocalStore localStore = localStoreProvider.getInstance(account); localFolder = localStore.getFolder(folder); Map<String, String> uidMap = null; if (folder.equals(account.getTrashFolder()) || !account.hasTrashFolder()) { Timber.d("Deleting messages in trash folder or trash set to -None-, not copying"); if (folder.equals(account.getTrashFolder()) || !account.hasTrashFolder() || !backend.isDeleteMoveToTrash()) { Timber.d("Not moving deleted messages to local Trash folder. Removing local copies."); if (!localOnlyMessages.isEmpty()) { localFolder.destroyMessages(localOnlyMessages); Loading Loading @@ -2217,7 +2220,7 @@ public class MessagingController { processPendingCommands(account); } else if (!syncedMessageUids.isEmpty()) { if (account.getDeletePolicy() == DeletePolicy.ON_DELETE) { if (folder.equals(account.getTrashFolder())) { if (folder.equals(account.getTrashFolder()) || !backend.isDeleteMoveToTrash()) { queueSetFlag(account, folder, true, Flag.DELETED, syncedMessageUids); } else { queueMoveOrCopy(account, folder, account.getTrashFolder(), false, Loading
backend/api/src/main/java/com/fsck/k9/backend/api/Backend.kt +1 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ interface Backend { val supportsTrashFolder: Boolean val supportsSearchByDate: Boolean val isPushCapable: Boolean val isDeleteMoveToTrash: Boolean @Throws(MessagingException::class) fun refreshFolderList() Loading
backend/imap/src/main/java/com/fsck/k9/backend/imap/ImapBackend.java +5 −0 Original line number Diff line number Diff line Loading @@ -102,6 +102,11 @@ public class ImapBackend implements Backend { return true; } @Override public boolean isDeleteMoveToTrash() { return true; } @Override public void refreshFolderList() { commandRefreshFolderList.refreshFolderList(); Loading
backend/pop3/src/main/java/com/fsck/k9/backend/pop3/Pop3Backend.kt +1 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ class Pop3Backend( override val supportsTrashFolder = false override val supportsSearchByDate = false override val isPushCapable = false override val isDeleteMoveToTrash = false override fun refreshFolderList() { commandRefreshFolderList.refreshFolderList() Loading
backend/webdav/src/main/java/com/fsck/k9/backend/webdav/WebDavBackend.kt +1 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ class WebDavBackend( override val supportsTrashFolder = true override val supportsSearchByDate = false override val isPushCapable = false override val isDeleteMoveToTrash = true override fun refreshFolderList() { commandGetFolders.refreshFolderList() Loading