New Content Monitoring
JellyWatch monitors your Jellyfin server for newly added media items and sends a local notification when new content is detected.
How It Works
NewContentNotificationManagerruns a background polling coroutine.- On first activation, it silently fetches up to 100 recent items and stores their IDs as the baseline — no notification is sent on first run.
- On each subsequent check, it fetches the latest 100 recent items and compares against the stored baseline.
- If new item IDs are found, a notification is sent and the baseline is updated to the current set.
- A 1-minute cooldown (
NOTIFICATION_COOLDOWN_MS = 60000) prevents notification spam between consecutive checks.
Notification Content
The notification adapts based on how many new items were found:
- Single item — title is the item name; body describes the type (movie/episode/series).
- Multiple items — title shows the count (e.g. "3 new items"); body lists movies, episodes, and shows found.
- Image — the poster of the first new item is loaded and shown as a
BigPicturenotification. Falls back to aBigTextlist if the image cannot be loaded. - Episode grouping — episodes are grouped by series name with season info (e.g. "Breaking Bad: 3 episodes (S4)").
- 100-item cap — if 100+ new items are detected, a
+suffix is appended to indicate there may be more.
Supported Media Types
| Type | Displayed as |
|---|---|
| Movie | Listed individually |
| Episode | Grouped by series name |
| Series | Listed individually |
Notification Channel
New content notifications use the Android channel new_content_channel (New Content, IMPORTANCE_DEFAULT). It supports badge, vibration, and a custom notification sound.
Configuration
- Enable New content notifications in Settings → Notifications.
- Set the check interval — how often the app polls for new content:
| Interval | Setting value |
|---|---|
| 30 minutes | 30 |
| 1 hour (default) | 60 |
| 2 hours | 120 |
| 6 hours | 360 |
Resetting the Baseline
The seen content IDs are stored in SharedPreferences under the key seen_content_ids. Calling clearSeenContent() on NewContentNotificationManager wipes the baseline. The next check will re-initialize silently without sending a notification.
New content notifications are available in both Admin and Personal (WatchPass) mode.