Optimize seen/flag operation

pull/182/head
M66B 5 years ago
parent 6d15d9318d
commit a70dee58c6

@ -109,20 +109,22 @@ public class EntityOperation {
if (SEEN.equals(name)) { if (SEEN.equals(name)) {
boolean seen = jargs.getBoolean(0); boolean seen = jargs.getBoolean(0);
boolean ignore = jargs.optBoolean(1, true); boolean ignore = jargs.optBoolean(1, true);
for (EntityMessage similar : db.message().getMessagesBySimilarity(message.account, message.id, message.msgid)) { for (EntityMessage similar : db.message().getMessagesBySimilarity(message.account, message.id, message.msgid))
db.message().setMessageUiSeen(similar.id, seen); if (message.ui_seen != seen || message.ui_ignored != ignore) {
db.message().setMessageUiIgnored(similar.id, ignore); db.message().setMessageUiSeen(similar.id, seen);
queue(context, similar.account, similar.folder, similar.id, name, jargs); db.message().setMessageUiIgnored(similar.id, ignore);
} queue(context, similar.account, similar.folder, similar.id, name, jargs);
}
return; return;
} else if (FLAG.equals(name)) { } else if (FLAG.equals(name)) {
boolean flagged = jargs.getBoolean(0); boolean flagged = jargs.getBoolean(0);
Integer color = (jargs.length() > 1 && !jargs.isNull(1) ? jargs.getInt(1) : null); Integer color = (jargs.length() > 1 && !jargs.isNull(1) ? jargs.getInt(1) : null);
for (EntityMessage similar : db.message().getMessagesBySimilarity(message.account, message.id, message.msgid)) { for (EntityMessage similar : db.message().getMessagesBySimilarity(message.account, message.id, message.msgid))
db.message().setMessageUiFlagged(similar.id, flagged, flagged ? color : null); if (message.ui_flagged != flagged || !Objects.equals(message.color, color)) {
queue(context, similar.account, similar.folder, similar.id, name, jargs); db.message().setMessageUiFlagged(similar.id, flagged, flagged ? color : null);
} queue(context, similar.account, similar.folder, similar.id, name, jargs);
}
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean auto_important = prefs.getBoolean("auto_important", false); boolean auto_important = prefs.getBoolean("auto_important", false);

Loading…
Cancel
Save