Sean Greenslade <
se...@seangreenslade.com> writes:
>>Could it be done for IMAP?
>
> Yes, moving between folders on IMAP works fine on K-9.
In general yes. But I have an issue quite often, which I'll try to
describe.
(everything is about a single IMAP account)
see INBOX, and view some message
hit delete (which moves it to trash)
realize I actually still want the message
go back to folder list with upper left
select trash
see message at top, select it
do move/refile/INBOX and get an error: "Cannot copy or move a message
which is not synchronized with the server"
remember that in k-9, local modifications to folders are not synced
automatically, but only as part of doing a full folder sync
hit sync, and have it push that message back to the server, remove
messages that are local but not longer on server, and get messages
deleted with other clients, limited to 100
do the refile again and ahve it work
The issues are
the user shouldn't have to be aware of whether a message is synced
back yet. If it's in the local folder view it should be movable even
if the move operation is stacked behind the writeback operation. Or
if the message is only in the local view, not synced, it can be moved
and the local state deleted, all without writing to the server. I
know, this is hard, and ENOPATCH.
another way to think of this is that there is the cached information
of server folder state, and then local modifications, kind of as a
writeback cache. And things that operate on the folder should
function on a logical view that is the cache contents, not the pure
copy of the server. Put this way, it's still hard :-)
local modifications should arguably make it back to the server
automatically, perhaps with operations starting right away, perhaps
with a delay
the idea of writing changes to the server while not fetching updates
(because this folder is not asked to be synced) is intrinisically
difficult, as it's a sort of partial sync with messy semantics. But
it seems doable to write messages that are added, separately from
getting a list of server messages and fetching those we don't have and
deleting those that are no longer there.