Try to match the new mail flag clear of TB102.0b7

This commit is contained in:
Ximi1970
2022-06-20 20:48:48 +02:00
parent 4d2b7f2a62
commit 143602cd20
2 changed files with 53 additions and 70 deletions

View File

@@ -27,6 +27,7 @@ SysTrayX.Messaging = {
filters: undefined,
unread: {},
new: {},
displayedFolder: undefined,
init: async function () {
// Send the startup positions?
@@ -198,20 +199,8 @@ SysTrayX.Messaging = {
}
if (SysTrayX.Messaging.countType === "1") {
let count = 0;
SysTrayX.Messaging.filters.forEach((filter) => {
const accountId = filter.accountId;
filter.folders.forEach((path) => {
if (SysTrayX.Messaging.new[accountId] !== undefined) {
if (SysTrayX.Messaging.new[accountId][path] !== undefined) {
count = count + SysTrayX.Messaging.new[accountId][path].length;
}
}
});
});
getNewMailCount();
// console.debug("listenerNewMail: New count");
SysTrayX.Link.postSysTrayXMessage({ unreadMail: count });
}
},
@@ -256,20 +245,8 @@ SysTrayX.Messaging = {
folderInfo.unreadMessageCount;
if (SysTrayX.Messaging.countType === "0") {
let count = 0;
SysTrayX.Messaging.filters.forEach((filter) => {
const accountId = filter.accountId;
filter.folders.forEach((path) => {
if (SysTrayX.Messaging.unread[accountId] !== undefined) {
if (SysTrayX.Messaging.unread[accountId][path] !== undefined) {
count = count + SysTrayX.Messaging.unread[accountId][path];
}
}
});
});
getUnreadMailCount();
// console.debug("listenerFolderInfoChanged: Unread count");
SysTrayX.Link.postSysTrayXMessage({ unreadMail: count });
} else {
// Check if the new mails have been read, remove from new storage
const messages = SysTrayX.Messaging.new[folder.accountId][folder.path];
@@ -291,21 +268,8 @@ SysTrayX.Messaging = {
...newMessages,
];
let count = 0;
SysTrayX.Messaging.filters.forEach((filter) => {
const accountId = filter.accountId;
filter.folders.forEach((path) => {
if (SysTrayX.Messaging.new[accountId] !== undefined) {
if (SysTrayX.Messaging.new[accountId][path] !== undefined) {
count =
count + SysTrayX.Messaging.new[accountId][path].length;
}
}
});
});
getNewMailCount();
// console.debug("listenerFolderInfoChanged: New count");
SysTrayX.Link.postSysTrayXMessage({ unreadMail: count });
}
}
}
@@ -912,43 +876,27 @@ SysTrayX.Window = {
},
folderChanged: function (tab, displayedFolder) {
/*
/*
console.debug("Folder changed tab: " + JSON.stringify(tab));
console.debug(
"Folder changed displayFolder: " + JSON.stringify(displayedFolder)
"Folder changed displayedFolder: " + JSON.stringify(displayedFolder)
);
*/
// console.debug("New storage: " + JSON.stringify(SysTrayX.Messaging.new));
// Clear all other new items except this one for this account
// to emulate TBs new handling
//
Object.keys(SysTrayX.Messaging.new).forEach((accountId) => {
console.debug("Testing: " + accountId);
if (accountId !== displayedFolder.accountId) {
SysTrayX.Messaging.new[accountId] = undefined;
console.debug("Removed: " + accountId);
const oldDisplayedFolder = SysTrayX.Messaging.displayedFolder;
if (oldDisplayedFolder !== undefined) {
if (oldDisplayedFolder.accountId === displayedFolder.accountId) {
SysTrayX.Messaging.new[oldDisplayedFolder.accountId][
oldDisplayedFolder.path
] = [];
}
});
// console.debug("New storage cleaned: " + JSON.stringify(SysTrayX.Messaging.new));
if (SysTrayX.Messaging.countType === "1") {
let count = 0;
SysTrayX.Messaging.filters.forEach((filter) => {
const accountId = filter.accountId;
filter.folders.forEach((path) => {
if (SysTrayX.Messaging.new[accountId] !== undefined) {
if (SysTrayX.Messaging.new[accountId][path] !== undefined) {
count = count + SysTrayX.Messaging.new[accountId][path].length;
}
}
});
});
// console.debug("listenerNewMail: New count");
SysTrayX.Link.postSysTrayXMessage({ unreadMail: count });
if (SysTrayX.Messaging.countType === "1") {
getNewMailCount();
// console.debug("listenerNewMail: New count");
}
}
SysTrayX.Messaging.displayedFolder = displayedFolder;
},
};

View File

@@ -363,3 +363,38 @@ async function addFolderToFilters(newFolder) {
});
}
}
// Count the unread mail
const getUnreadMailCount = () => {
let count = 0;
SysTrayX.Messaging.filters.forEach((filter) => {
const accountId = filter.accountId;
filter.folders.forEach((path) => {
if (SysTrayX.Messaging.unread[accountId] !== undefined) {
if (SysTrayX.Messaging.unread[accountId][path] !== undefined) {
count = count + SysTrayX.Messaging.unread[accountId][path];
}
}
});
});
SysTrayX.Link.postSysTrayXMessage({ unreadMail: count });
}
// Count the new mail
const getNewMailCount = () => {
let count = 0;
SysTrayX.Messaging.filters.forEach((filter) => {
const accountId = filter.accountId;
filter.folders.forEach((path) => {
if (SysTrayX.Messaging.new[accountId] !== undefined) {
if (SysTrayX.Messaging.new[accountId][path] !== undefined) {
count = count + SysTrayX.Messaging.new[accountId][path].length;
}
}
});
});
SysTrayX.Link.postSysTrayXMessage({ unreadMail: count });
}