Refactoring

pull/152/head
M66B 7 years ago
parent fb2e7e840f
commit b40bb3110f

@ -130,51 +130,51 @@ class Core {
switch (op.name) { switch (op.name) {
case EntityOperation.SEEN: case EntityOperation.SEEN:
doSeen(folder, (IMAPFolder) ifolder, message, jargs, context, db); onSeen(context, jargs, folder, message, (IMAPFolder) ifolder);
break; break;
case EntityOperation.FLAG: case EntityOperation.FLAG:
doFlag(folder, (IMAPFolder) ifolder, message, jargs, context, db); onFlag(context, jargs, folder, message, (IMAPFolder) ifolder);
break; break;
case EntityOperation.ANSWERED: case EntityOperation.ANSWERED:
doAnswered(folder, (IMAPFolder) ifolder, message, jargs, context, db); onAnswered(context, jargs, folder, message, (IMAPFolder) ifolder);
break; break;
case EntityOperation.KEYWORD: case EntityOperation.KEYWORD:
doKeyword(folder, (IMAPFolder) ifolder, message, jargs, context, db); onKeyword(context, jargs, folder, message, (IMAPFolder) ifolder);
break; break;
case EntityOperation.ADD: case EntityOperation.ADD:
doAdd(folder, isession, (IMAPStore) istore, (IMAPFolder) ifolder, message, jargs, context, db); onAdd(context, jargs, folder, message, isession, (IMAPStore) istore, (IMAPFolder) ifolder);
break; break;
case EntityOperation.MOVE: case EntityOperation.MOVE:
doMove(folder, isession, (IMAPStore) istore, (IMAPFolder) ifolder, message, jargs, context, db); onMove(context, jargs, folder, message, isession, (IMAPStore) istore, (IMAPFolder) ifolder);
break; break;
case EntityOperation.DELETE: case EntityOperation.DELETE:
doDelete(folder, (IMAPFolder) ifolder, message, jargs, context, db); onDelete(context, jargs, folder, message, (IMAPFolder) ifolder);
break; break;
case EntityOperation.HEADERS: case EntityOperation.HEADERS:
doHeaders(folder, (IMAPFolder) ifolder, message, context, db); onHeaders(context, folder, message, (IMAPFolder) ifolder);
break; break;
case EntityOperation.RAW: case EntityOperation.RAW:
doRaw(folder, (IMAPFolder) ifolder, message, jargs, context, db); onRaw(context, jargs, folder, message, (IMAPFolder) ifolder);
break; break;
case EntityOperation.BODY: case EntityOperation.BODY:
doBody(folder, (IMAPFolder) ifolder, message, context, db); onBody(context, folder, message, (IMAPFolder) ifolder);
break; break;
case EntityOperation.ATTACHMENT: case EntityOperation.ATTACHMENT:
doAttachment(folder, op, (IMAPFolder) ifolder, message, jargs, context, db); onAttachment(context, jargs, folder, message, op, (IMAPFolder) ifolder);
break; break;
case EntityOperation.SYNC: case EntityOperation.SYNC:
synchronizeMessages(context, account, folder, (IMAPFolder) ifolder, jargs, state); onSynchronizeMessages(context, account, folder, (IMAPFolder) ifolder, jargs, state);
break; break;
default: default:
@ -248,8 +248,10 @@ class Core {
} }
} }
private static void doSeen(EntityFolder folder, IMAPFolder ifolder, EntityMessage message, JSONArray jargs, Context context, DB db) throws MessagingException, JSONException { private static void onSeen(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, IMAPFolder ifolder) throws MessagingException, JSONException {
// Mark message (un)seen // Mark message (un)seen
DB db = DB.getInstance(context);
if (!ifolder.getPermanentFlags().contains(Flags.Flag.SEEN)) { if (!ifolder.getPermanentFlags().contains(Flags.Flag.SEEN)) {
db.message().setMessageSeen(message.id, false); db.message().setMessageSeen(message.id, false);
db.message().setMessageUiSeen(message.id, false); db.message().setMessageUiSeen(message.id, false);
@ -269,8 +271,10 @@ class Core {
db.message().setMessageSeen(message.id, seen); db.message().setMessageSeen(message.id, seen);
} }
private static void doFlag(EntityFolder folder, IMAPFolder ifolder, EntityMessage message, JSONArray jargs, Context context, DB db) 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);
if (!ifolder.getPermanentFlags().contains(Flags.Flag.FLAGGED)) { if (!ifolder.getPermanentFlags().contains(Flags.Flag.FLAGGED)) {
db.message().setMessageFlagged(message.id, false); db.message().setMessageFlagged(message.id, false);
db.message().setMessageUiFlagged(message.id, false); db.message().setMessageUiFlagged(message.id, false);
@ -290,8 +294,10 @@ class Core {
db.message().setMessageFlagged(message.id, flagged); db.message().setMessageFlagged(message.id, flagged);
} }
private static void doAnswered(EntityFolder folder, IMAPFolder ifolder, EntityMessage message, JSONArray jargs, Context context, DB db) throws MessagingException, JSONException { private static void onAnswered(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, IMAPFolder ifolder) throws MessagingException, JSONException {
// Mark message (un)answered // Mark message (un)answered
DB db = DB.getInstance(context);
if (!ifolder.getPermanentFlags().contains(Flags.Flag.ANSWERED)) { if (!ifolder.getPermanentFlags().contains(Flags.Flag.ANSWERED)) {
db.message().setMessageAnswered(message.id, false); db.message().setMessageAnswered(message.id, false);
db.message().setMessageUiAnswered(message.id, false); db.message().setMessageUiAnswered(message.id, false);
@ -311,8 +317,10 @@ class Core {
db.message().setMessageAnswered(message.id, answered); db.message().setMessageAnswered(message.id, answered);
} }
private static void doKeyword(EntityFolder folder, IMAPFolder ifolder, EntityMessage message, JSONArray jargs, Context context, DB db) throws MessagingException, JSONException { private static void onKeyword(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, IMAPFolder ifolder) throws MessagingException, JSONException {
// Set/reset user flag // Set/reset user flag
DB db = DB.getInstance(context);
if (!ifolder.getPermanentFlags().contains(Flags.Flag.USER)) { if (!ifolder.getPermanentFlags().contains(Flags.Flag.USER)) {
db.message().setMessageKeywords(message.id, DB.Converters.fromStringArray(null)); db.message().setMessageKeywords(message.id, DB.Converters.fromStringArray(null));
return; return;
@ -348,8 +356,10 @@ class Core {
} }
} }
private static void doAdd(EntityFolder folder, Session isession, IMAPStore istore, IMAPFolder ifolder, EntityMessage message, JSONArray jargs, Context context, DB db) throws MessagingException, JSONException, IOException { private static void onAdd(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, Session isession, IMAPStore istore, IMAPFolder ifolder) throws MessagingException, JSONException, IOException {
// Add message // Add message
DB db = DB.getInstance(context);
if (TextUtils.isEmpty(message.msgid)) if (TextUtils.isEmpty(message.msgid))
throw new IllegalArgumentException("Message ID missing"); throw new IllegalArgumentException("Message ID missing");
@ -424,8 +434,10 @@ class Core {
} }
} }
private static void doMove(EntityFolder folder, Session isession, IMAPStore istore, IMAPFolder ifolder, EntityMessage message, JSONArray jargs, Context context, DB db) throws JSONException, MessagingException, IOException { private static void onMove(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, Session isession, IMAPStore istore, IMAPFolder ifolder) throws JSONException, MessagingException, IOException {
// Move message // Move message
DB db = DB.getInstance(context);
Message imessage = ifolder.getMessageByUID(message.uid); Message imessage = ifolder.getMessageByUID(message.uid);
if (imessage == null) if (imessage == null)
throw new MessageRemovedException(); throw new MessageRemovedException();
@ -528,8 +540,10 @@ class Core {
} }
} }
private static void doDelete(EntityFolder folder, IMAPFolder ifolder, EntityMessage message, JSONArray jargs, Context context, DB db) throws MessagingException { private static void onDelete(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, IMAPFolder ifolder) throws MessagingException {
// Delete message // Delete message
DB db = DB.getInstance(context);
if (TextUtils.isEmpty(message.msgid)) if (TextUtils.isEmpty(message.msgid))
throw new IllegalArgumentException("Message ID missing"); throw new IllegalArgumentException("Message ID missing");
@ -543,7 +557,10 @@ class Core {
db.message().deleteMessage(message.id); db.message().deleteMessage(message.id);
} }
private static void doHeaders(EntityFolder folder, IMAPFolder ifolder, EntityMessage message, Context context, DB db) throws MessagingException { private static void onHeaders(Context context, EntityFolder folder, EntityMessage message, IMAPFolder ifolder) throws MessagingException {
// Download headers
DB db = DB.getInstance(context);
if (message.headers != null) if (message.headers != null)
return; return;
@ -555,7 +572,10 @@ class Core {
db.message().setMessageHeaders(message.id, helper.getHeaders()); db.message().setMessageHeaders(message.id, helper.getHeaders());
} }
private static void doRaw(EntityFolder folder, IMAPFolder ifolder, EntityMessage message, JSONArray jargs, Context context, DB db) throws MessagingException, IOException, JSONException { private static void onRaw(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, IMAPFolder ifolder) throws MessagingException, IOException, JSONException {
// Download raw message
DB db = DB.getInstance(context);
if (message.raw == null || !message.raw) { if (message.raw == null || !message.raw) {
IMAPMessage imessage = (IMAPMessage) ifolder.getMessageByUID(message.uid); IMAPMessage imessage = (IMAPMessage) ifolder.getMessageByUID(message.uid);
if (imessage == null) if (imessage == null)
@ -584,8 +604,10 @@ class Core {
} }
} }
private static void doBody(EntityFolder folder, IMAPFolder ifolder, EntityMessage message, Context context, DB db) throws MessagingException, IOException { private static void onBody(Context context, EntityFolder folder, EntityMessage message, IMAPFolder ifolder) throws MessagingException, IOException {
// Download message body // Download message body
DB db = DB.getInstance(context);
if (message.content) if (message.content)
return; return;
@ -603,8 +625,10 @@ class Core {
db.message().setMessageWarning(message.id, parts.getWarnings(message.warning)); db.message().setMessageWarning(message.id, parts.getWarnings(message.warning));
} }
private static void doAttachment(EntityFolder folder, EntityOperation op, IMAPFolder ifolder, EntityMessage message, JSONArray jargs, Context context, DB db) throws JSONException, MessagingException, IOException { private static void onAttachment(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, EntityOperation op, IMAPFolder ifolder) throws JSONException, MessagingException, IOException {
// Download attachment // Download attachment
DB db = DB.getInstance(context);
int sequence = jargs.getInt(0); int sequence = jargs.getInt(0);
// Get attachment // Get attachment
@ -652,7 +676,7 @@ class Core {
} }
} }
static void synchronizeFolders(Context context, EntityAccount account, Store istore, State state) throws MessagingException { static void onSynchronizeFolders(Context context, EntityAccount account, Store istore, State state) throws MessagingException {
DB db = DB.getInstance(context); DB db = DB.getInstance(context);
try { try {
db.beginTransaction(); db.beginTransaction();
@ -757,7 +781,7 @@ class Core {
} }
} }
static void synchronizeMessages(Context context, EntityAccount account, final EntityFolder folder, IMAPFolder ifolder, JSONArray jargs, State state) throws JSONException, MessagingException, IOException { static void onSynchronizeMessages(Context context, EntityAccount account, final EntityFolder folder, IMAPFolder ifolder, JSONArray jargs, State state) throws JSONException, MessagingException, IOException {
final DB db = DB.getInstance(context); final DB db = DB.getInstance(context);
try { try {
int sync_days = jargs.getInt(0); int sync_days = jargs.getInt(0);

@ -680,7 +680,7 @@ public class ServiceSynchronize extends LifecycleService {
EntityLog.log(this, account.name + " connected"); EntityLog.log(this, account.name + " connected");
// Update folder list // Update folder list
Core.synchronizeFolders(this, account, istore, state); Core.onSynchronizeFolders(this, account, istore, state);
// Open synchronizing folders // Open synchronizing folders
final ExecutorService pollExecutor = Executors.newSingleThreadExecutor(Helper.backgroundThreadFactory); final ExecutorService pollExecutor = Executors.newSingleThreadExecutor(Helper.backgroundThreadFactory);

@ -264,7 +264,7 @@ public class ServiceUI extends IntentService {
Log.i(account.name + " connected"); Log.i(account.name + " connected");
// Synchronize folders // Synchronize folders
Core.synchronizeFolders(this, account, istore, new Core.State()); Core.onSynchronizeFolders(this, account, istore, new Core.State());
// Connect folder // Connect folder
Log.i(folder.name + " connecting"); Log.i(folder.name + " connecting");
@ -279,7 +279,7 @@ public class ServiceUI extends IntentService {
Core.processOperations(this, account, folder, isession, istore, ifolder, new Core.State()); Core.processOperations(this, account, folder, isession, istore, ifolder, new Core.State());
// Synchronize messages // Synchronize messages
Core.synchronizeMessages(this, account, folder, (IMAPFolder) ifolder, folder.getSyncArgs(), new Core.State()); Core.onSynchronizeMessages(this, account, folder, (IMAPFolder) ifolder, folder.getSyncArgs(), new Core.State());
} catch (Throwable ex) { } catch (Throwable ex) {
Log.w(ex); Log.w(ex);

Loading…
Cancel
Save