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 = {