diff --git a/src/app/features/settings/notifications/SystemNotification.tsx b/src/app/features/settings/notifications/SystemNotification.tsx
index f2aeeea..ad1aa78 100644
--- a/src/app/features/settings/notifications/SystemNotification.tsx
+++ b/src/app/features/settings/notifications/SystemNotification.tsx
@@ -172,6 +172,7 @@ type PushStatus = {
endpoint: string;
distributors: string[];
lastFailure: string;
+ autoStartBlocked: boolean;
};
/** Android-only section showing UnifiedPush registration status and controls. */
@@ -196,6 +197,7 @@ function AndroidPushNotifications() {
endpoint: s.endpoint || '',
distributors,
lastFailure: s.lastFailure || '',
+ autoStartBlocked: Boolean(s.autoStartBlocked),
}
: undefined
);
@@ -246,6 +248,13 @@ function AndroidPushNotifications() {
);
}
+ if (status.lastFailure === 'AUTO_START_BLOCKED' || status.autoStartBlocked) {
+ return (
+
+ Phone is blocking auto-start for Paarrot. Open App Boot / Auto-start settings, allow Paarrot (and ntfy), then tap Reset.
+
+ );
+ }
if (status.lastFailure) {
return (
diff --git a/src/app/utils/backgroundSync.ts b/src/app/utils/backgroundSync.ts
index afd18c8..2939f58 100644
--- a/src/app/utils/backgroundSync.ts
+++ b/src/app/utils/backgroundSync.ts
@@ -16,6 +16,8 @@ type UnifiedPushStatus = {
distributor: string;
distributors: string[] | string;
lastFailure?: string;
+ /** OEM App Boot / AUTO_START is blocking distributor broadcasts (e.g. TCL). */
+ autoStartBlocked?: boolean;
};
type UnifiedPushEndpointEvent = {