Skip to content

Webhook fork v0.1 (debug APK)

Choose a tag to compare

@d33mobile d33mobile released this 25 Apr 15:51
· 10 commits to webhook-http since this release

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).