mirror of https://github.com/M66B/FairEmail.git
Added rules log type
This commit is contained in:
parent
e1557dc040
commit
c2e48ea1f1
|
@ -3538,11 +3538,12 @@ class Core {
|
|||
if (message.blocklist != null && message.blocklist) {
|
||||
boolean use_blocklist = prefs.getBoolean("use_blocklist", false);
|
||||
if (use_blocklist) {
|
||||
EntityLog.log(context, "Block list" +
|
||||
" folder=" + folder.name +
|
||||
" message=" + message.id +
|
||||
"@" + new Date(message.received) +
|
||||
":" + message.subject);
|
||||
EntityLog.log(context, EntityLog.Type.General, message,
|
||||
"Block list" +
|
||||
" folder=" + folder.name +
|
||||
" message=" + message.id +
|
||||
"@" + new Date(message.received) +
|
||||
":" + message.subject);
|
||||
EntityFolder junk = db.folder().getFolderByType(message.account, EntityFolder.JUNK);
|
||||
if (junk != null) {
|
||||
EntityOperation.queue(context, message, EntityOperation.MOVE, junk.id, false);
|
||||
|
|
|
@ -62,7 +62,7 @@ public class EntityLog {
|
|||
@NonNull
|
||||
public String data;
|
||||
|
||||
enum Type {General, Statistics, Scheduling, Network, Account, Protocol, Classification, Notification}
|
||||
enum Type {General, Statistics, Scheduling, Network, Account, Protocol, Classification, Notification, Rules}
|
||||
|
||||
private static final ExecutorService executor =
|
||||
Helper.getBackgroundExecutor(1, "log");
|
||||
|
|
|
@ -208,7 +208,8 @@ public class EntityOperation {
|
|||
jargs.put(1, autoread);
|
||||
jargs.put(3, autounflag);
|
||||
|
||||
EntityLog.log(context, "Move message=" + message.id +
|
||||
EntityLog.log(context, EntityLog.Type.General,message,
|
||||
"Move message=" + message.id +
|
||||
"@" + new Date(message.received) +
|
||||
":" + message.subject +
|
||||
" source=" + source.id + ":" + source.type + ":" + source.name + "" +
|
||||
|
|
|
@ -19,6 +19,8 @@ package eu.faircode.email;
|
|||
Copyright 2018-2021 by Marcel Bokhorst (M66B)
|
||||
*/
|
||||
|
||||
import static androidx.room.ForeignKey.CASCADE;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
|
@ -65,8 +67,6 @@ import javax.mail.internet.AddressException;
|
|||
import javax.mail.internet.InternetAddress;
|
||||
import javax.mail.internet.InternetHeaders;
|
||||
|
||||
import static androidx.room.ForeignKey.CASCADE;
|
||||
|
||||
@Entity(
|
||||
tableName = EntityRule.TABLE_NAME,
|
||||
foreignKeys = {
|
||||
|
@ -164,7 +164,7 @@ public class EntityRule {
|
|||
}
|
||||
} else {
|
||||
String formatted = ((personal == null ? "" : personal + " ") + "<" + email + ">");
|
||||
if (matches(context, value, formatted, regex)) {
|
||||
if (matches(context, message, value, formatted, regex)) {
|
||||
matches = true;
|
||||
break;
|
||||
}
|
||||
|
@ -191,7 +191,7 @@ public class EntityRule {
|
|||
InternetAddress ia = (InternetAddress) recipient;
|
||||
String personal = ia.getPersonal();
|
||||
String formatted = ((personal == null ? "" : personal + " ") + "<" + ia.getAddress() + ">");
|
||||
if (matches(context, value, formatted, regex)) {
|
||||
if (matches(context, message, value, formatted, regex)) {
|
||||
matches = true;
|
||||
break;
|
||||
}
|
||||
|
@ -206,7 +206,7 @@ public class EntityRule {
|
|||
String value = jsubject.getString("value");
|
||||
boolean regex = jsubject.getBoolean("regex");
|
||||
|
||||
if (!matches(context, value, message.subject, regex))
|
||||
if (!matches(context, message, value, message.subject, regex))
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -251,7 +251,7 @@ public class EntityRule {
|
|||
while (headers.hasMoreElements()) {
|
||||
Header header = headers.nextElement();
|
||||
String formatted = header.getName() + ": " + header.getValue();
|
||||
if (matches(context, value, formatted, regex)) {
|
||||
if (matches(context, message, value, formatted, regex)) {
|
||||
matches = true;
|
||||
break;
|
||||
}
|
||||
|
@ -303,7 +303,7 @@ public class EntityRule {
|
|||
return true;
|
||||
}
|
||||
|
||||
private boolean matches(Context context, String needle, String haystack, boolean regex) {
|
||||
private boolean matches(Context context, EntityMessage message, String needle, String haystack, boolean regex) {
|
||||
boolean matched = false;
|
||||
if (needle != null && haystack != null)
|
||||
if (regex) {
|
||||
|
@ -313,8 +313,9 @@ public class EntityRule {
|
|||
matched = haystack.toLowerCase().contains(needle.trim().toLowerCase());
|
||||
|
||||
if (matched)
|
||||
EntityLog.log(context, "Rule=" + name + ":" + order + " matched " +
|
||||
" needle=" + needle + " haystack=" + haystack + " regex=" + regex);
|
||||
EntityLog.log(context, EntityLog.Type.Rules, message,
|
||||
"Rule=" + name + ":" + order + " matched " +
|
||||
" needle=" + needle + " haystack=" + haystack + " regex=" + regex);
|
||||
else
|
||||
Log.i("Rule=" + name + ":" + order + " matched=" + matched +
|
||||
" needle=" + needle + " haystack=" + haystack + " regex=" + regex);
|
||||
|
@ -504,7 +505,8 @@ public class EntityRule {
|
|||
boolean attachments = jargs.optBoolean("attachments");
|
||||
|
||||
if (message.auto_submitted != null && message.auto_submitted) {
|
||||
EntityLog.log(context, "Auto submitted rule=" + name);
|
||||
EntityLog.log(context, EntityLog.Type.Rules, message,
|
||||
"Auto submitted rule=" + name);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -590,9 +592,10 @@ public class EntityRule {
|
|||
for (EntityMessage threaded : messages)
|
||||
if (!threaded.id.equals(message.id) &&
|
||||
MessageHelper.equal(threaded.from, from)) {
|
||||
EntityLog.log(context, "Answer loop" +
|
||||
" name=" + answer.name +
|
||||
" from=" + MessageHelper.formatAddresses(from));
|
||||
EntityLog.log(context, EntityLog.Type.Rules, message,
|
||||
"Answer loop" +
|
||||
" name=" + answer.name +
|
||||
" from=" + MessageHelper.formatAddresses(from));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -695,7 +698,8 @@ public class EntityRule {
|
|||
automation.putExtra(EXTRA_RECEIVED, DTF.format(message.received));
|
||||
|
||||
List<String> extras = Log.getExtras(automation.getExtras());
|
||||
EntityLog.log(context, "Sending " + automation + " " + TextUtils.join(" ", extras));
|
||||
EntityLog.log(context, EntityLog.Type.Rules, message,
|
||||
"Sending " + automation + " " + TextUtils.join(" ", extras));
|
||||
context.sendBroadcast(automation);
|
||||
|
||||
return true;
|
||||
|
@ -731,7 +735,8 @@ public class EntityRule {
|
|||
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
||||
int callState = tm.getCallState();
|
||||
if (callState != TelephonyManager.CALL_STATE_IDLE) {
|
||||
EntityLog.log(context, "Call state=" + callState + " rule=" + rule.name);
|
||||
EntityLog.log(context, EntityLog.Type.Rules, message,
|
||||
"Call state=" + callState + " rule=" + rule.name);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue