Refactoring

This commit is contained in:
M66B 2019-09-19 21:42:09 +02:00
parent 18188b4535
commit e6b1e7f083
1 changed files with 24 additions and 7 deletions

View File

@ -208,21 +208,17 @@ class Core {
if (istore instanceof POP3Store) if (istore instanceof POP3Store)
switch (op.name) { switch (op.name) {
case EntityOperation.SEEN: case EntityOperation.SEEN:
db.message().setMessageUiSeen(folder.id, jargs.getBoolean(0)); onSeen(context, jargs, folder, message, (POP3Folder) ifolder);
break; break;
case EntityOperation.ANSWERED: case EntityOperation.ANSWERED:
case EntityOperation.ADD: case EntityOperation.ADD:
case EntityOperation.EXISTS: case EntityOperation.EXISTS:
break; break;
case EntityOperation.DELETE: case EntityOperation.DELETE:
if (!EntityFolder.INBOX.equals(folder.type)) onDelete(context, jargs, folder, message, (POP3Folder) ifolder);
db.message().deleteMessage(folder.id, op.message);
break; break;
case EntityOperation.SYNC: case EntityOperation.SYNC:
if (ifolder == null) onSynchronizeMessages(context, jargs, account, folder, (POP3Folder) ifolder, state);
db.folder().setFolderSyncState(folder.id, null);
else
onSynchronizeMessages(context, jargs, account, folder, (POP3Folder) ifolder, state);
break; break;
default: default:
Log.w(folder.name + " ignored=" + op.name); Log.w(folder.name + " ignored=" + op.name);
@ -428,6 +424,13 @@ class Core {
db.message().setMessageSeen(message.id, seen); db.message().setMessageSeen(message.id, seen);
} }
private static void onSeen(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, POP3Folder ifolder) throws JSONException {
// Mark message (un)seen
DB db = DB.getInstance(context);
db.message().setMessageUiSeen(folder.id, jargs.getBoolean(0));
}
private static void onFlag(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, IMAPFolder ifolder) throws MessagingException, JSONException { private static void onFlag(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, IMAPFolder ifolder) throws MessagingException, JSONException {
// Star/unstar message // Star/unstar message
DB db = DB.getInstance(context); DB db = DB.getInstance(context);
@ -801,6 +804,14 @@ class Core {
} }
} }
private static void onDelete(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, POP3Folder ifolder) throws MessagingException {
// Delete message
DB db = DB.getInstance(context);
if (!EntityFolder.INBOX.equals(folder.type))
db.message().deleteMessage(folder.id, message.id);
}
private static void onHeaders(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, IMAPFolder ifolder) throws MessagingException { private static void onHeaders(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, IMAPFolder ifolder) throws MessagingException {
// Download headers // Download headers
DB db = DB.getInstance(context); DB db = DB.getInstance(context);
@ -1121,6 +1132,12 @@ class Core {
EntityAccount account, final EntityFolder folder, EntityAccount account, final EntityFolder folder,
final POP3Folder ifolder, State state) throws MessagingException { final POP3Folder ifolder, State state) throws MessagingException {
DB db = DB.getInstance(context); DB db = DB.getInstance(context);
if (!EntityFolder.INBOX.equals(folder.type)) {
db.folder().setFolderSyncState(folder.id, null);
return;
}
try { try {
db.folder().setFolderSyncState(folder.id, "syncing"); db.folder().setFolderSyncState(folder.id, "syncing");