Skip to content

Releases: d33mobile/notification-http

Webhook fork v0.2 (debug APK)

Choose a tag to compare

@d33mobile d33mobile released this 25 Apr 15:55

Bug-fix release prompted by real-device testing of v0.1.

Changes since v0.1

  • Skip-ongoing now also catches FLAG_FOREGROUND_SERVICE. v0.1 only checked FLAG_ONGOING_EVENT, which apps set via Notification.Builder.setOngoing(true). Foreground-service notifications (LibreTorrent download progress, music players, step counters, voice recorders, …) often only carry FLAG_FOREGROUND_SERVICE — set by the system on the notification passed to Service.startForeground(). Either flag now suppresses webhook delivery when the toggle is on.
  • App label prefixed to Title. Webhook subscribers couldn't tell from a glance which app a notification came from when the title was generic ("Online", a contact name, a torrent's ↓ 3 B/s). The Title is now <app-label>: <notification-title> (e.g. LibreTorrent: działa w tle). Falls back to bare label when the notification title is empty or already equals the label, and to the package name when the app has been uninstalled. Tags continues to carry the package name for grep/automation.
  • Settings label tweak: Skip "ongoing" notifications (quotes) — clearer that "ongoing" refers to the notification flag, not the adjective.

Carried over from v0.1

  • Optional ntfy.sh-compatible HTTP webhook per logged notification.
  • Per-app filter reuses upstream's whitelist/blacklist.
  • Offline-resilient: pending deliveries persisted in the same Room transaction as the log row, drained by WorkManager with NetworkType.CONNECTED constraint and exponential backoff. Survives airplane mode / process kill / reboot.
  • UTF-8 in title via RFC 2047 encoded-word.

Verification

  • 12/12 Robolectric + MockWebServer cases (./gradlew :app:test)
  • 2/2 instrumented WebhookE2ETest on real Room + WorkManager + HTTP

Install

adb install -r notification-http-debug.apk
adb shell cmd notification allow_listener de.jl.notificationlog/.service.NotificationListenerService

Settings → enable "Forward notifications via HTTP", paste your https://ntfy.example.com/<topic> and an optional bearer token. Self-host guide: NTFY.pl.md (Polish).

Webhook fork v0.1 (debug APK)

Choose a tag to compare

@d33mobile d33mobile released this 25 Apr 15:51

First release of the unofficial webhook fork of jonas-l/notificationlog-android (GPL-3.0-or-later).

This is a debug-signed APK (no production signing key). Install with adb install. Replace freely with later releases.

What's in it

  • All upstream NotificationLog functionality is intact.
  • New: optional ntfy.sh-compatible HTTP webhook per logged notification (Title/Tags/Authorization headers, body = text).
  • Per-app filter reuses the existing whitelist/blacklist (one source of truth).
  • Offline-resilient: pending deliveries are persisted to Room in the same transaction as the log row, drained by a WorkManager OneTimeWorkRequest with NetworkType.CONNECTED constraint and exponential backoff. Survives airplane mode / process kill / reboot.
  • Skip-ongoing toggle (default ON) suppresses webhook spam from foreground services (LibreTorrent, step counters, music players, …). Local log keeps full history.
  • UTF-8 in title encoded via RFC 2047 (=?utf-8?B?…?=) so Polish/German/etc. characters survive.

Permissions added beyond upstream

  • INTERNET, ACCESS_NETWORK_STATE — for HTTP delivery
  • usesCleartextTraffic="true" — for self-hosted ntfy on http:// LAN endpoints

Verification on this device

  • 11/11 Robolectric + MockWebServer cases (./gradlew :app:test)
  • 2/2 instrumented WebhookE2ETest on real Room + WorkManager + HTTP (./gradlew :app:connectedAndroidTest, ran on API 28 TCG emulator)
  • Live tested against a real phone POSTing to a mock ntfy server

Install

```
adb install -r notification-http-debug.apk
adb shell cmd notification allow_listener de.jl.notificationlog/.service.NotificationListenerService
```

Settings → enable "Forward notifications via HTTP", paste your https://ntfy.example.com/<topic> and an optional bearer token. Self-host guide: NTFY.pl.md (Polish).