Skip to content
 
 

Repository files navigation

Gotify Android Build Status FOSSA Status latest release version F-Droid

Gotify Android connects to gotify/server and shows push notifications on new messages.

Features

  • show push notifications on new messages
  • view and delete messages
  • local message and application caching (Room) for offline access
  • automatic background sync: persists messages when received and on reconnect

Disable battery optimization

By default Android kills long running apps as they drain the battery. With enabled battery optimization, Gotify will be killed and you wont receive any notifications.

Here is one way to disable battery optimization for Gotify.

  • Open "Settings"
  • Search for "Battery Optimization"
  • Find "Gotify" and disable battery optimization

See also https://dontkillmyapp.com for phone manufacturer specific instructions to disable battery optimizations.

Minimize the Gotify foreground notification

Only possible for Android version >= 8

The foreground notification showing the connection status can be manually minimized to be less intrusive:

  • Open Settings -> Apps -> Gotify
  • Click Notifications
  • Click on Gotify foreground notification
  • Toggle the "Minimize" option / Select a different "Behavior" or "Importance" (depends on your Android version)
  • Restart Gotify

Message Priorities

Notification Gotify Priority
- 0
Icon in notification bar 1 - 3
Icon in notification bar + Sound 4 - 7
Icon in notification bar + Sound + Vibration 8 - 10

Building

Use Java 17 and execute the following command to build the apk.

$ ./gradlew build

Update client

  • Run ./gradlew generateSwaggerCode
  • Delete client/settings.gradle (client is a gradle sub project and must not have a settings.gradle)
  • Delete repositories block from client/build.gradle
  • Delete implementation "com.sun.xml.ws:jaxws-rt:x.x.x“ from client/build.gradle
  • Insert missing bracket in retryingIntercept method of class src/main/java/com/github/gotify/client/auth/OAuth
  • Commit changes

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

License

This project is licensed under the MIT License - see the LICENSE file for details

This fork / extra features

This repository contains a small fork of the original Gotify Android client with the following pragmatic additions aimed at improving offline usability:

  • Local persistence: messages and applications are stored in a Room database so the UI can show cached content when there is no network.
  • Instant offline UI: cached messages are loaded immediately on app start; network sync runs in the background and merges new messages without duplicating entries.
  • Search Functionality: Messages can be searched by title or content in each channel, with matching text highlighted in the results.
  • Enhanced Message Rendering: Full Markdown and HTML support for all messages, allowing styles like bold, italic, links, underlines, and tables to be displayed correctly.
  • Read state per channel: Messages can be marked as read locally and viewed in a dedicated Read view for the currently selected channel or for All Messages.
  • Favorites: Important messages can be starred locally and collected in a Favorites view from the navigation drawer.
  • Local state import/export: Read and favorite state can be exported and imported as JSON from Settings without exporting the full message payload.
  • Safer message actions: Swipe now marks messages as read instead of deleting them, and delete actions require confirmation.
  • Minimal behavioral change: when online the app still behaves like the original client; the caching layer is additive and only affects behavior when offline or when reconnecting.

Why this differs from the original

  • The upstream client focuses on live push notifications. This fork keeps that behavior but adds a lightweight local cache to make the app usable when the device is offline or the server is temporarily unreachable.
  • The fork also adds local-only message state management for read and favorite tracking. These states are stored on-device and do not require server-side changes.
  • The changes are intentionally small and follow the project's existing patterns (Room, repository layer, and existing model classes) to keep maintenance and merging straightforward.

About

An app for creating push notifications for new messages posted to gotify/server.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages