Sync similar

pull/190/head
M66B 4 years ago
parent e3b64376e0
commit dc1c71f348

@ -2719,6 +2719,7 @@ class Core {
String[] labels = helper.getLabels();
boolean update = false;
boolean process = false;
boolean syncSimilar = false;
DB db = DB.getInstance(context);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
@ -2769,6 +2770,9 @@ class Core {
}
}
if (dup.seen != seen || dup.answered != answered || dup.flagged != flagged)
syncSimilar = true;
if (dup.flagged && dup.color != null)
color = dup.color;
}
@ -3033,6 +3037,7 @@ class Core {
if (seen)
message.ui_ignored = true;
Log.i(folder.name + " updated id=" + message.id + " uid=" + message.uid + " seen=" + seen);
syncSimilar = true;
}
if ((!message.answered.equals(answered) || !message.ui_answered.equals(message.answered)) &&
@ -3041,6 +3046,7 @@ class Core {
message.answered = answered;
message.ui_answered = answered;
Log.i(folder.name + " updated id=" + message.id + " uid=" + message.uid + " answered=" + answered);
syncSimilar = true;
}
if ((!message.flagged.equals(flagged) || !message.ui_flagged.equals(flagged)) &&
@ -3051,6 +3057,7 @@ class Core {
if (!flagged)
message.color = null;
Log.i(folder.name + " updated id=" + message.id + " uid=" + message.uid + " flagged=" + flagged);
syncSimilar = true;
}
if (!Objects.equals(flags, message.flags)) {
@ -3134,6 +3141,24 @@ class Core {
Log.d(folder.name + " unchanged uid=" + uid);
}
if (syncSimilar && account.isGmail())
for (EntityMessage similar : db.message().getMessagesBySimilarity(message.account, message.id, message.msgid)) {
if (similar.seen != message.seen) {
Log.i(folder.name + " Synchronize similar id=" + similar.id + " seen=" + message.seen);
db.message().setMessageSeen(similar.id, message.seen);
db.message().setMessageUiSeen(similar.id, message.seen);
}
if (similar.answered != message.answered) {
Log.i(folder.name + " Synchronize similar id=" + similar.id + " answered=" + message.answered);
db.message().setMessageAnswered(similar.id, message.answered);
}
if (similar.flagged != flagged) {
Log.i(folder.name + " Synchronize similar id=" + similar.id + " flagged=" + message.flagged);
db.message().setMessageFlagged(similar.id, message.flagged);
db.message().setMessageUiFlagged(similar.id, message.flagged, flagged ? similar.color : null);
}
}
List<String> fkeywords = new ArrayList<>(Arrays.asList(folder.keywords));
for (String keyword : keywords)

Loading…
Cancel
Save