This patch adds Immich integration for remote images with local caching and pruning. It adds image rotation to the crop flow and stores rotation with the crop state. It adds progress tracking and size checks during image download to avoid oversized assets. - Add Immich caching with size limits and automatic pruning - Extend crop handling to support rotation and persist it - Improve download progress and error messaging
WallpaperFlow
WallpaperFlow ist eine freie Tauri-2-App für Android, die aus einer frei wählbaren Bildsammlung in einem einstellbaren Zeitintervall ein neues Sperrbildschirmbild setzt.
Was bereits umgesetzt ist
- Mehrfachauswahl über den Android-Systemdialog
- kein festes Bilderlimit; Originale werden in den privaten App-Speicher kopiert
- Wechsel nur für den Sperrbildschirm oder für das allgemeine Hintergrundbild
- zufällige oder fortlaufende Reihenfolge
- manueller Wechsel über „Nächstes Motiv“
- automatischer Wechsel alle 5, 15 oder 30 Minuten beziehungsweise alle 1, 3, 6 oder 12 Stunden
- Neustart des Dienstes nach einem Geräte-Neustart, soweit die Android-Version Hintergrundstarts zulässt
- lokale Vorschaubilder; die Originalbilder verlassen das Gerät nicht
- optionaler Import aus einem selbst gehosteten Immich-Server über einen eingeschränkten API-Key
- vollständig lokale Oberfläche in Deutsch, Englisch, Französisch, Spanisch, Italienisch, Niederländisch, Polnisch, Portugiesisch, Japanisch, Koreanisch und vereinfachtem Chinesisch
Android hält den Zeitgeber über einen Foreground Service aktiv. Solange ein Wechselintervall ausgewählt ist, zeigt das System deshalb eine dauerhafte, stille Benachrichtigung. Auf Geräten mit aggressivem Energiesparen muss LockScreenWallpaper gegebenenfalls von der Akku-Optimierung ausgenommen werden.
Entwicklung
npm install
npm run dev
npm run build
cargo check --manifest-path src-tauri/Cargo.toml
Android-Projekt erzeugen und bauen
Benötigt werden Android Studio/SDK, NDK 28 oder neuer, JDK 17+ und die Rust-Android-Targets.
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
npm run tauri android init
npm run tauri android build -- --apk
Für ein angeschlossenes Gerät:
npm run tauri android dev
Der native Android-Code liegt als lokales Tauri-Plugin in plugins/android. Er wird beim Android-Build automatisch eingebunden.
Wichtige Android-Hinweise
- Android erlaubt keinen komplett unsichtbaren, dauerhaft laufenden Zeitgeber. Der automatische Wechsel verwendet deshalb einen Foreground Service.
WallpaperManager.FLAG_LOCKist ab Android 7 verfügbar. Auf älteren Geräten setzt die App das allgemeine Hintergrundbild.- Hersteller können Hintergrunddienste zusätzlich einschränken. Besonders bei Samsung/Xiaomi kann eine Ausnahme von der Akku-Optimierung nötig sein.
- „Ohne Limit“ bedeutet: kein App-Zähler wie Samsungs 15-Bilder-Grenze. Praktisch begrenzen freier Gerätespeicher und Dateisystem die Sammlung.
Datenschutz
WallpaperFlow verarbeitet importierte Bilder lokal auf dem Gerät. Die optionale Immich-Anbindung kommuniziert ausschließlich mit dem vom Nutzer eingetragenen, selbst gehosteten Server und lädt nur ausdrücklich ausgewählte Bilder herunter. Die App enthält keine Werbung, kein Tracking und keine Analysedienste. Bilder werden nicht hochgeladen oder an andere Server weitergegeben.
Weitere Einzelheiten stehen in der Datenschutzerklärung.
Veröffentlichungen
Für eine neue Veröffentlichung müssen die Version in package.json, src-tauri/tauri.conf.json und src-tauri/Cargo.toml gemeinsam erhöht und ein passender Git-Tag angelegt werden, beispielsweise v0.1.0. Der Android-versionCode muss bei jeder Veröffentlichung steigen.
Die Metadaten für F-Droid liegen unter fastlane/metadata/android. Das Buildrezept für F-Droid befindet sich in .fdroid.yml.
Lizenz
Copyright (C) 2026 Christoph
WallpaperFlow ist freie Software und steht unter der GNU General Public License Version 3.0 (GPL-3.0-only). Die vollständigen Lizenzbedingungen stehen in LICENSE.