diff --git a/FAQ.md b/FAQ.md
index 08ef14dc16..8add1f8546 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -2333,6 +2333,14 @@ despite FairEmail explicitly requesting not to show a badge for this notificatio
Note that Tesla Unread is [not supported anymore](https://forum.xda-developers.com/android/general/bad-news-tesla-unread-devoloper-t3920415).
+FairEmail does send a new message count intent as well:
+
+```
+eu.faircode.email.NEW_MESSAGE_COUNT
+```
+
+The number of new, unread messages will be in an integer "*count*" parameter.
+
diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java
index 23a8685913..3b43f43b2f 100644
--- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java
+++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java
@@ -116,6 +116,8 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
private static final int BACKOFF_ERROR_AFTER = 16; // seconds
private static final long WIDGET_UPDATE_DELAY = 2500L; // milliseconds
+ private static final String ACTION_NEW_MESSAGE_COUNT = BuildConfig.APPLICATION_ID + ".NEW_MESSAGE_COUNT";
+
private static final List PREF_EVAL = Collections.unmodifiableList(Arrays.asList(
"enabled", "poll_interval" // restart account(s)
));
@@ -539,6 +541,16 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
if (lastCount == null || !lastCount.equals(count)) {
lastCount = count;
+ // Broadcast new message count
+ try {
+ Intent intent = new Intent(ACTION_NEW_MESSAGE_COUNT);
+ intent.putExtra("count", count);
+ sendBroadcast(intent);
+ } catch (Throwable ex) {
+ Log.e(ex);
+ }
+
+ // Update badge
try {
if (count == 0 || !badge)
ShortcutBadger.removeCount(ServiceSynchronize.this);