/photoprism-android-client

📸 A convenient Android gallery for your PhotoPrism library with plenty of useful features

Primary LanguageKotlinGNU General Public License v3.0GPL-3.0

Icon Gallery for PhotoPrism

GitHub discussions GitHub contributors Sponsors

This Android app brings a convenient mobile gallery experience for PhotoPrism.

It does not support all the official web app functionality, but nevertheless has plenty of useful features:

  • Sending photos and videos to Gmail, Telegram or any other app
  • Grouping the content by days and months
  • Timeline scroll that lets you quickly jump to a specific month
  • Configurable search
  • Search bookmarks that let you save search configurations and apply them later
  • Enhanced live photo viewer, which works best with Samsung and Apple shots
  • Full-screen slideshow with configurable speed and video autoplay
  • Deleting items without archiving them first
  • Importing photos and videos trough sharing
  • Endless session without the need to re-enter the password
  • Connection to both private and public libraries
  • Support of mTLS (mutual TLS), HTTP basic auth and SSO like Authelia, Cloudflare Access, etc.
  • TV compatibility to easily browse your library with a remote-control (Search is only available with a mouse for now. Install through APK)
  • Extensions that bring extra features to the app

The gallery is not intended to sync content with the library. For this, I recommend Autosync.

Compatibility

The gallery runs on Android 5.0+ and it is confirmed to work with PhotoPrism versions from July 11, 2024 down to October 9, 2021. It may work with older ones though, I just haven't tested it.

Download

APK APK from the latest release

F-Droid F-Droid

Google Play Google Play (has no extension store)

Sponsors

Sayantan Santra Philipp Daniel Fuchs Hulmgulm Jonas Gustavsson Florian Voswinkel Koen Koppens Radon Rosborough Michael Mayer Theresa Gresch Juha Lehtiranta Neil Castelino Seth For Privacy C-Iaens Tobias Fiechter ippocratis
…and 3 anonymous sponsors.

I am very grateful to everyone supporting this project ❤️ To join this public list, email me the transaction reference once it is complete. By the way, sponsors get extensions for free.

License

I reject the concept of intellectual property. Claiming ownership over information that can be replicated perfectly and endlessly is inherently flawed. Consequently, any efforts to uphold such form of ownership inevitably result in some people gaining unjustifiable control over other's tangible resources, such as computers, printing equipment, construction materials, etc. 1 When talking specifically about source code licensing – without a state violently enforcing copyright monopolies, it would be ludicrous to assume that a mere text file in a directory enables someone to restrict processing copies of this information by others on their very own computers. However, there is such a file in this repository bearing the GPLv3 license. Why?

One would expect someone with such an attitude to not use the license at all, use a permissive license, or explicitly unlicense. But for me, to do so is to voluntarily limit my means of defense. To act as a gentleman with those who readily exploit state violence against you is to lose. In a world where copyright monopolies are violently enforced, I choose GPLv3 for the software I really care for, because under the current circumstances this license is a tool that:

  • Allows others to freely use, modify and distribute this software, without the risk of being sued;
  • Enables me to pull all the valuable changes from public forks back to the trunk, also without the risk of being sued;
  • Knocks down a peg individuals or companies willing to monopolize their use case or modifications of this software.

Tech stack

  • Kotlin
  • Classic views & ViewModel
  • RxJava for concurrency
  • Koin for dependency injection
  • OkHTTP & Retrofit for networking
  • Room database
  • kotlin-logging & slf4j-handroid for logging
  • Picasso for images & ExoPlayer for videos
  • FastAdapter for lists
  • Offline License Key for extensions activation