|
|
@ -5085,8 +5085,10 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|
|
|
popupMenu.getMenu().findItem(R.id.menu_raw_send_thread).setEnabled(canRaw);
|
|
|
|
popupMenu.getMenu().findItem(R.id.menu_raw_send_thread).setEnabled(canRaw);
|
|
|
|
|
|
|
|
|
|
|
|
popupMenu.getMenu().findItem(R.id.menu_resync)
|
|
|
|
popupMenu.getMenu().findItem(R.id.menu_resync)
|
|
|
|
.setEnabled(message.uid != null)
|
|
|
|
.setEnabled(message.uid != null ||
|
|
|
|
.setVisible(message.accountProtocol == EntityAccount.TYPE_IMAP);
|
|
|
|
message.accountProtocol == EntityAccount.TYPE_POP)
|
|
|
|
|
|
|
|
.setVisible(message.accountProtocol == EntityAccount.TYPE_IMAP ||
|
|
|
|
|
|
|
|
EntityFolder.INBOX.equals(message.folderType));
|
|
|
|
|
|
|
|
|
|
|
|
popupMenu.insertIcons(context);
|
|
|
|
popupMenu.insertIcons(context);
|
|
|
|
|
|
|
|
|
|
|
@ -5520,28 +5522,44 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|
|
|
protected Void onExecute(Context context, Bundle args) {
|
|
|
|
protected Void onExecute(Context context, Bundle args) {
|
|
|
|
long id = args.getLong("id");
|
|
|
|
long id = args.getLong("id");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EntityAccount account;
|
|
|
|
|
|
|
|
EntityFolder folder;
|
|
|
|
|
|
|
|
|
|
|
|
DB db = DB.getInstance(context);
|
|
|
|
DB db = DB.getInstance(context);
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
db.beginTransaction();
|
|
|
|
db.beginTransaction();
|
|
|
|
|
|
|
|
|
|
|
|
EntityMessage message = db.message().getMessage(id);
|
|
|
|
EntityMessage message = db.message().getMessage(id);
|
|
|
|
if (message == null || message.uid == null)
|
|
|
|
if (message == null)
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
|
|
EntityFolder folder = db.folder().getFolder(message.folder);
|
|
|
|
account = db.account().getAccount(message.account);
|
|
|
|
|
|
|
|
if (account == null)
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
folder = db.folder().getFolder(message.folder);
|
|
|
|
if (folder == null)
|
|
|
|
if (folder == null)
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (message.uid == null && account.protocol == EntityAccount.TYPE_IMAP)
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
if (account.protocol == EntityAccount.TYPE_POP && !EntityFolder.INBOX.equals(folder.type))
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
|
|
db.message().deleteMessage(id);
|
|
|
|
db.message().deleteMessage(id);
|
|
|
|
|
|
|
|
|
|
|
|
EntityOperation.queue(context, folder, EntityOperation.FETCH, message.uid);
|
|
|
|
if (account.protocol == EntityAccount.TYPE_IMAP)
|
|
|
|
|
|
|
|
EntityOperation.queue(context, folder, EntityOperation.FETCH, message.uid);
|
|
|
|
|
|
|
|
|
|
|
|
db.setTransactionSuccessful();
|
|
|
|
db.setTransactionSuccessful();
|
|
|
|
} finally {
|
|
|
|
} finally {
|
|
|
|
db.endTransaction();
|
|
|
|
db.endTransaction();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ServiceSynchronize.eval(context, "resync");
|
|
|
|
if (account.protocol == EntityAccount.TYPE_IMAP)
|
|
|
|
|
|
|
|
ServiceSynchronize.eval(context, "resync");
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
EntityOperation.sync(context, folder.id, true);
|
|
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|