mirror of https://github.com/M66B/FairEmail.git
Added notifying ignore state
This commit is contained in:
parent
303c4a4eca
commit
b4f37fca7c
|
@ -2964,6 +2964,7 @@ class Core {
|
||||||
try {
|
try {
|
||||||
db.beginTransaction();
|
db.beginTransaction();
|
||||||
|
|
||||||
|
message.notifying = EntityMessage.NOTIFYING_IGNORE;
|
||||||
message.id = db.message().insertMessage(message);
|
message.id = db.message().insertMessage(message);
|
||||||
Log.i(folder.name + " added id=" + message.id + " uid=" + message.uid);
|
Log.i(folder.name + " added id=" + message.id + " uid=" + message.uid);
|
||||||
|
|
||||||
|
@ -2979,7 +2980,7 @@ class Core {
|
||||||
runRules(context, imessage, account, folder, message, rules);
|
runRules(context, imessage, account, folder, message, rules);
|
||||||
if (download && !message.ui_hide &&
|
if (download && !message.ui_hide &&
|
||||||
MessageClassifier.isEnabled(context) && folder.auto_classify_source)
|
MessageClassifier.isEnabled(context) && folder.auto_classify_source)
|
||||||
db.message().setMessageUiHide(message.id, true);
|
db.message().setMessageUiHide(message.id, true); // keep local value
|
||||||
|
|
||||||
db.setTransactionSuccessful();
|
db.setTransactionSuccessful();
|
||||||
} catch (SQLiteConstraintException ex) {
|
} catch (SQLiteConstraintException ex) {
|
||||||
|
@ -2996,6 +2997,7 @@ class Core {
|
||||||
db.endTransaction();
|
db.endTransaction();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
if (message.received > account.created)
|
if (message.received > account.created)
|
||||||
updateContactInfo(context, folder, message);
|
updateContactInfo(context, folder, message);
|
||||||
|
|
||||||
|
@ -3039,6 +3041,9 @@ class Core {
|
||||||
db.message().setMessageUiHide(message.id, false);
|
db.message().setMessageUiHide(message.id, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} finally {
|
||||||
|
db.message().setMessageNotifying(message.id, 0);
|
||||||
|
}
|
||||||
|
|
||||||
reportNewMessage(context, account, folder, message);
|
reportNewMessage(context, account, folder, message);
|
||||||
} else {
|
} else {
|
||||||
|
@ -3559,6 +3564,11 @@ class Core {
|
||||||
|
|
||||||
// Current
|
// Current
|
||||||
for (TupleMessageEx message : messages) {
|
for (TupleMessageEx message : messages) {
|
||||||
|
if (message.notifying == EntityMessage.NOTIFYING_IGNORE) {
|
||||||
|
Log.e("Notify ignore");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// Check if notification channel enabled
|
// Check if notification channel enabled
|
||||||
if (message.notifying == 0 && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && pro) {
|
if (message.notifying == 0 && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && pro) {
|
||||||
String channelId = message.getNotificationChannelId();
|
String channelId = message.getNotificationChannelId();
|
||||||
|
|
|
@ -475,7 +475,8 @@ public interface DaoMessage {
|
||||||
" WHERE account.`synchronize`" +
|
" WHERE account.`synchronize`" +
|
||||||
" AND folder.notify" +
|
" AND folder.notify" +
|
||||||
" AND (account.created IS NULL OR message.received > account.created OR message.sent > account.created)" +
|
" AND (account.created IS NULL OR message.received > account.created OR message.sent > account.created)" +
|
||||||
" AND (notifying <> 0 OR NOT (message.ui_seen OR message.ui_hide))" +
|
" AND message.notifying <> " + EntityMessage.NOTIFYING_IGNORE +
|
||||||
|
" AND (message.notifying <> 0 OR NOT (message.ui_seen OR message.ui_hide))" +
|
||||||
" ORDER BY message.received DESC")
|
" ORDER BY message.received DESC")
|
||||||
LiveData<List<TupleMessageEx>> liveUnseenNotify();
|
LiveData<List<TupleMessageEx>> liveUnseenNotify();
|
||||||
|
|
||||||
|
@ -487,6 +488,7 @@ public interface DaoMessage {
|
||||||
" WHERE (:account IS NULL OR account.id = :account)" +
|
" WHERE (:account IS NULL OR account.id = :account)" +
|
||||||
" AND account.`synchronize`" +
|
" AND account.`synchronize`" +
|
||||||
" AND folder.notify" +
|
" AND folder.notify" +
|
||||||
|
" AND message.notifying <> " + EntityMessage.NOTIFYING_IGNORE +
|
||||||
" AND NOT (message.ui_seen OR message.ui_hide)" +
|
" AND NOT (message.ui_seen OR message.ui_hide)" +
|
||||||
" GROUP BY account.id" +
|
" GROUP BY account.id" +
|
||||||
" ORDER BY account.id")
|
" ORDER BY account.id")
|
||||||
|
@ -499,6 +501,7 @@ public interface DaoMessage {
|
||||||
" WHERE (:account IS NULL OR account.id = :account)" +
|
" WHERE (:account IS NULL OR account.id = :account)" +
|
||||||
" AND account.`synchronize`" +
|
" AND account.`synchronize`" +
|
||||||
" AND folder.notify" +
|
" AND folder.notify" +
|
||||||
|
" AND message.notifying <> " + EntityMessage.NOTIFYING_IGNORE +
|
||||||
" AND NOT (message.ui_seen OR message.ui_hide)")
|
" AND NOT (message.ui_seen OR message.ui_hide)")
|
||||||
TupleMessageStats getWidgetUnseen(Long account);
|
TupleMessageStats getWidgetUnseen(Long account);
|
||||||
|
|
||||||
|
|
|
@ -89,6 +89,8 @@ import static androidx.room.ForeignKey.SET_NULL;
|
||||||
public class EntityMessage implements Serializable {
|
public class EntityMessage implements Serializable {
|
||||||
static final String TABLE_NAME = "message";
|
static final String TABLE_NAME = "message";
|
||||||
|
|
||||||
|
static final int NOTIFYING_IGNORE = -2;
|
||||||
|
|
||||||
static final Integer ENCRYPT_NONE = 0;
|
static final Integer ENCRYPT_NONE = 0;
|
||||||
static final Integer PGP_SIGNENCRYPT = 1;
|
static final Integer PGP_SIGNENCRYPT = 1;
|
||||||
static final Integer PGP_SIGNONLY = 2;
|
static final Integer PGP_SIGNONLY = 2;
|
||||||
|
|
Loading…
Reference in New Issue