feat(android): reach desktop feature parity and fix 16 KB page-size crash

Swap lazysodium/JNA for a pure-Java Bouncy Castle crypto envelope so the
APK ships no native .so files (resolves the Android 15 16 KB alignment
crash) while staying byte-compatible with the desktop libsodium sync.

Bring the Android app up to the desktop feature set: full item CRUD with
an add/edit screen and FAB, inline editing on the detail view (status,
rating, favorite, per-unit/segment watched toggles, delete), online
metadata search (TMDB/OpenLibrary/AniList/RAWG) that pre-fills the editor,
library filtering and sorting, a statistics view, and settings polish for
dark mode and provider API keys/language.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Tronax 2026-06-21 01:40:55 +02:00
parent de353f0218
commit c0389bd8d2
Signed by: Tronax
SSH key fingerprint: SHA256:2pKKXDZucWvaF/GzXNz0FY53EAO1YDLN80bqS+TTz/o
24 changed files with 2162 additions and 75 deletions

View file

@ -12,8 +12,7 @@ navigation = "2.7.7"
room = "2.6.1"
serialization = "1.7.3"
coil = "2.7.0"
lazysodium = "5.1.0"
jna = "5.13.0"
bouncycastle = "1.78.1"
securityCrypto = "1.1.0-alpha06"
[libraries]
@ -35,8 +34,7 @@ androidx-room-ktx = { group = "androidx.room", name = "room-ktx", version.ref =
androidx-room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" }
kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "serialization" }
coil-compose = { group = "io.coil-kt", name = "coil-compose", version.ref = "coil" }
lazysodium-android = { group = "com.goterl", name = "lazysodium-android", version.ref = "lazysodium" }
jna = { group = "net.java.dev.jna", name = "jna", version.ref = "jna" }
bouncycastle = { group = "org.bouncycastle", name = "bcprov-jdk18on", version.ref = "bouncycastle" }
androidx-security-crypto = { group = "androidx.security", name = "security-crypto", version.ref = "securityCrypto" }
[plugins]