From f7a9454441c4a7a4810862f1511fbff8af33a8b8 Mon Sep 17 00:00:00 2001 From: Ben Cohen Date: Tue, 18 Oct 2022 12:03:09 -0400 Subject: [PATCH] maildir: make checkmail update directory counts Non-selected folders will now have their total/unread/new counts updated in the background when a check-mail happens. Signed-off-by: Ben Cohen Acked-by: Robin Jarry --- worker/maildir/worker.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/worker/maildir/worker.go b/worker/maildir/worker.go index 3ac8d0b..ddb1bf6 100644 --- a/worker/maildir/worker.go +++ b/worker/maildir/worker.go @@ -733,6 +733,20 @@ func (w *Worker) handleCheckMail(msg *types.CheckMail) { if err != nil { w.err(msg, fmt.Errorf("checkmail: error running command: %w", err)) } else { + dirs, err := w.c.ListFolders() + if err != nil { + w.err(msg, fmt.Errorf("failed listing directories: %w", err)) + } + for _, name := range dirs { + err := w.c.SyncNewMail(w.c.Dir(name)) + if err != nil { + w.err(msg, fmt.Errorf("could not sync new mail: %w", err)) + } + dirInfo := w.getDirectoryInfo(name) + w.worker.PostMessage(&types.DirectoryInfo{ + Info: dirInfo, + }, nil) + } w.done(msg) } }