diff --git a/docs/publish.md b/docs/publish.md index 81c4bd44..d2f027a6 100644 --- a/docs/publish.md +++ b/docs/publish.md @@ -641,7 +641,7 @@ You can format messages using [Markdown](https://www.markdownguide.org/basic-syn By default, messages sent to ntfy are rendered as plain text. To enable Markdown, set the `X-Markdown` header (or any of its aliases: `Markdown`, or `md`) to `true` (or `1` or `yes`), or set the `Content-Type` header to `text/markdown`. -As of today, **Markdown is only supported in the web app.** Here's an example of how to enable Markdown formatting: +Here's an example of how to enable Markdown formatting: === "Command line (curl)" ``` diff --git a/docs/releases.md b/docs/releases.md index 97302aca..254c92af 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -7,11 +7,48 @@ and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/release | Component | Version | Release date | |------------------|---------|--------------| | ntfy server | v2.16.0 | Jan 19, 2026 | -| ntfy Android app | v1.21.1 | Jan 6, 2025 | +| ntfy Android app | v1.22.1 | Jan 20, 2026 | | ntfy iOS app | v1.3 | Nov 26, 2023 | Please check out the release notes for [upcoming releases](#not-released-yet) below. +### ntfy Android app v1.22.1 +Released January 20, 2026 + +This release adds support for [updating and deleting notifications](publish.md#updating--deleting-notifications) (requires server v2.16.0), +as well as [certificate management for self-signed certs and mTLS client certificates](subscribe/phone.md#manage-certificates), +and a new connection error dialog to help [troubleshoot connection issues](subscribe/phone.md#troubleshooting). + +
+ + + +**Features:** + +* Support for [updating and deleting notifications](publish.md#updating-deleting-notifications) + ([#303](https://github.com/binwiederhier/ntfy/issues/303), [#1536](https://github.com/binwiederhier/ntfy/pull/1536), + [ntfy-android#151](https://github.com/binwiederhier/ntfy-android/pull/151), thanks to [@wunter8](https://github.com/wunter8) + for the initial implementation) +* Support for self-signed certs and client certs for mTLS ([#215](https://github.com/binwiederhier/ntfy/issues/215), + [#530](https://github.com/binwiederhier/ntfy/issues/530), [ntfy-android#149](https://github.com/binwiederhier/ntfy-android/pull/149), + thanks to [@cyb3rko](https://github.com/cyb3rko) for reviewing) +* Connection error dialog to help diagnose connection issues + +**Bug fixes + maintenance:** + +* Use server-specific user for attachment downloads ([#1529](https://github.com/binwiederhier/ntfy/issues/1529), + thanks to [@ManInDark](https://github.com/ManInDark) for reporting and testing) +* Fix crash in sharing dialog (thanks to [@rogeliodh](https://github.com/rogeliodh)) +* Fix crash when exiting multi-delete in detail view +* Fix potential crashes with icon downloader and backuper + ## ntfy server v2.16.0 Released January 19, 2026 @@ -41,6 +78,13 @@ This is the first feature release in a long time. After all the SDK updates, fix and the framework updates, this release ships a lot of highly requested features: Sending messages through the app (WhatsApp-style), support for passing headers to your proxy, an in-app language switcher, and more. + + If you are waiting for a feature, please 👍 the corresponding [GitHub issue](https://github.com/binwiederhier/ntfy/issues?q=is%3Aissue%20state%3Aopen%20sort%3Areactions-%2B1-desc). If you like ntfy, please consider purchasing [ntfy Pro](https://ntfy.sh/app) to support us. @@ -1621,23 +1665,4 @@ and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/release ## Not released yet -### ntfy Android app v1.22.x (UNRELEASED) - -**Features:** - -* Support for [updating and deleting notifications](publish.md#updating-deleting-notifications) - ([#303](https://github.com/binwiederhier/ntfy/issues/303), [#1536](https://github.com/binwiederhier/ntfy/pull/1536), - [ntfy-android#151](https://github.com/binwiederhier/ntfy-android/pull/151), thanks to [@wunter8](https://github.com/wunter8) - for the initial implementation) -* Support for self-signed certs and client certs for mTLS ([#215](https://github.com/binwiederhier/ntfy/issues/215), - [#530](https://github.com/binwiederhier/ntfy/issues/530), [ntfy-android#149](https://github.com/binwiederhier/ntfy-android/pull/149), - thanks to [@cyb3rko](https://github.com/cyb3rko) for reviewing) -* Connection error dialog to help diagnose connection issues - -**Bug fixes + maintenance:** - -* Use server-specific user for attachment downloads ([#1529](https://github.com/binwiederhier/ntfy/issues/1529), - thanks to [@ManInDark](https://github.com/ManInDark) for reporting and testing) -* Fix crash in sharing dialog (thanks to [@rogeliodh](https://github.com/rogeliodh)) -* Fix crash when exiting multi-delete in detail view -* Fix potential crashes with icon downloader and backuper +_Nothing here_ \ No newline at end of file diff --git a/docs/static/css/extra.css b/docs/static/css/extra.css index ceea68c0..fb44f4cc 100644 --- a/docs/static/css/extra.css +++ b/docs/static/css/extra.css @@ -92,7 +92,7 @@ figure video { } .screenshots img { - max-height: 230px; + max-height: 350px; max-width: 350px; margin: 3px; border-radius: 5px; diff --git a/docs/static/img/android-screenshot-certs-manage.jpg b/docs/static/img/android-screenshot-certs-manage.jpg new file mode 100644 index 00000000..613e9745 Binary files /dev/null and b/docs/static/img/android-screenshot-certs-manage.jpg differ diff --git a/docs/static/img/android-screenshot-certs-warning-dialog.jpg b/docs/static/img/android-screenshot-certs-warning-dialog.jpg new file mode 100644 index 00000000..e92105e9 Binary files /dev/null and b/docs/static/img/android-screenshot-certs-warning-dialog.jpg differ diff --git a/docs/static/img/android-screenshot-connection-error-dialog.jpg b/docs/static/img/android-screenshot-connection-error-dialog.jpg new file mode 100644 index 00000000..a004ad73 Binary files /dev/null and b/docs/static/img/android-screenshot-connection-error-dialog.jpg differ diff --git a/docs/static/img/android-screenshot-connection-error-warning.jpg b/docs/static/img/android-screenshot-connection-error-warning.jpg new file mode 100644 index 00000000..a019046f Binary files /dev/null and b/docs/static/img/android-screenshot-connection-error-warning.jpg differ diff --git a/docs/static/img/android-screenshot-custom-headers-add.jpg b/docs/static/img/android-screenshot-custom-headers-add.jpg new file mode 100644 index 00000000..3a1e7d89 Binary files /dev/null and b/docs/static/img/android-screenshot-custom-headers-add.jpg differ diff --git a/docs/static/img/android-screenshot-custom-headers.jpg b/docs/static/img/android-screenshot-custom-headers.jpg new file mode 100644 index 00000000..090071f9 Binary files /dev/null and b/docs/static/img/android-screenshot-custom-headers.jpg differ diff --git a/docs/static/img/android-screenshot-language-chinese.jpg b/docs/static/img/android-screenshot-language-chinese.jpg new file mode 100644 index 00000000..f31cc9cc Binary files /dev/null and b/docs/static/img/android-screenshot-language-chinese.jpg differ diff --git a/docs/static/img/android-screenshot-language-german.jpg b/docs/static/img/android-screenshot-language-german.jpg new file mode 100644 index 00000000..254f4999 Binary files /dev/null and b/docs/static/img/android-screenshot-language-german.jpg differ diff --git a/docs/static/img/android-screenshot-language-hebrew.jpg b/docs/static/img/android-screenshot-language-hebrew.jpg new file mode 100644 index 00000000..c4235666 Binary files /dev/null and b/docs/static/img/android-screenshot-language-hebrew.jpg differ diff --git a/docs/static/img/android-screenshot-language-selection.jpg b/docs/static/img/android-screenshot-language-selection.jpg new file mode 100644 index 00000000..f39befde Binary files /dev/null and b/docs/static/img/android-screenshot-language-selection.jpg differ diff --git a/docs/static/img/android-screenshot-publish-dialog.jpg b/docs/static/img/android-screenshot-publish-dialog.jpg new file mode 100644 index 00000000..6d1e2f6c Binary files /dev/null and b/docs/static/img/android-screenshot-publish-dialog.jpg differ diff --git a/docs/static/img/android-screenshot-publish-message-bar.jpg b/docs/static/img/android-screenshot-publish-message-bar.jpg new file mode 100644 index 00000000..12957400 Binary files /dev/null and b/docs/static/img/android-screenshot-publish-message-bar.jpg differ diff --git a/docs/subscribe/phone.md b/docs/subscribe/phone.md index 602a0d45..a022b2a7 100644 --- a/docs/subscribe/phone.md +++ b/docs/subscribe/phone.md @@ -102,6 +102,23 @@ notifications. Firebase is overall pretty bad at delivering messages in time, bu The ntfy Android app uses Firebase only for the main host `ntfy.sh`, and only in the Google Play flavor of the app. It won't use Firebase for any self-hosted servers, and not at all in the F-Droid flavor. +## Publishing messages +_Supported on:_ :material-android: + +The Android app allows you to **publish messages directly from the app**, without needing to use curl or any other +tool. When enabled in the settings (Settings → General → Show message bar), a **message bar** appears at the bottom +of the topic view (it's enabled by default). You can type a message and tap the send button to publish it instantly. +If the message bar is disabled, you can tap the floating action button (FAB) at the bottom right instead. + +For more options, tap the expand button next to the send button to open the full **publish dialog**. The dialog lets +you compose a full notification with all available options, including title, tags, priority, click URL, email +forwarding, delayed delivery, attachments, Markdown formatting, and phone calls. + + + ## Share to topic _Supported on:_ :material-android: @@ -135,6 +152,67 @@ or to simply directly link to a topic from a mobile website. | `ntfy://
@@ -239,3 +320,29 @@ The following intent extras are supported when for the intent with the `io.hecke
| `message` ❤️ | ✔ | *String* | `Some message` | Message body; **you must set this** |
| `tags` | - | *String* | `tag1,tag2,..` | Comma-separated list of [tags](../publish.md#tags-emojis) |
| `priority` | - | *String or Int (between 1-5)* | `4` | Message [priority](../publish.md#message-priority) with 1=min, 3=default and 5=max |
+
+## Troubleshooting
+
+### Connection error dialog
+_Supported on:_ :material-android:
+
+If the app has trouble connecting to a ntfy server, a **warning icon** will appear in the app bar. Tapping it opens
+the **connection error dialog**, which shows detailed information about the connection problem and helps you diagnose
+the issue.
+
+
+
+Common connection errors include:
+
+| Error | Description |
+|-------|-------------|
+| Connection refused | The server may be down or the address may be incorrect |
+| WebSocket not supported | The server may not support WebSocket connections, or a proxy is blocking them |
+| Not authorized (401/403) | Username/password may be incorrect, or access credentials have expired |
+| Certificate not trusted | The server is using a self-signed certificate (see [Manage certificates](#manage-certificates)) |
+
+If you're having persistent connection issues, you can also check the app logs under **Settings → Advanced → Record logs**
+and share them for debugging.
diff --git a/tools/shrink-png.sh b/tools/shrink-png.sh
new file mode 100755
index 00000000..b64ae53b
--- /dev/null
+++ b/tools/shrink-png.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+#
+# Shrinks PNG files to a max height of 1200px
+# Usage: ./shrink-png.sh file1.png file2.png ...
+#
+
+MAX_HEIGHT=1200
+
+if [ $# -eq 0 ]; then
+ echo "Usage: $0 file1.png file2.png ..."
+ exit 1
+fi
+
+for file in "$@"; do
+ if [ ! -f "$file" ]; then
+ echo "File not found: $file"
+ continue
+ fi
+
+ height=$(identify -format "%h" "$file")
+ if [ "$height" -gt "$MAX_HEIGHT" ]; then
+ echo "Shrinking $file (${height}px -> ${MAX_HEIGHT}px)"
+ convert "$file" -resize "x${MAX_HEIGHT}" "$file"
+ else
+ echo "Skipping $file (${height}px <= ${MAX_HEIGHT}px)"
+ fi
+done