feat(backend): Phase 2.1 scaffolding for bookshelf-api + ABS

- Port BookshelfApiService, AudiobookshelfApiService and all models from Book's Story.
- Add Hilt 2.56.1 plugin, @HiltAndroidApp, NetworkModule, BackendModule.
- Add Retrofit/OkHttp/Kotlinx Serialization dependencies.
- Provide minimal SharedPreferences-based ServerSettings for URL/token storage.
- Copy UriUtils (fixUriScheme/normalizeUri) from Book's Story.
- No wiring into UI yet; OPDS/Gutenberg/LocalFolder still present.
- ':app:assembleOssDebug' passes (APK ~80 MB).
This commit is contained in:
Atte149 2026-06-24 11:15:24 +03:00
parent 9e30933077
commit 88113d9de6
25 changed files with 1070 additions and 0 deletions

View file

@ -23,6 +23,11 @@ material3WindowSizeClassAndroid = "1.3.2"
credentials = "1.5.0"
composeMultiplatform = "1.8.2"
ksp = "2.2.0-2.0.2"
hilt = "2.56.1"
hiltNavigationCompose = "1.2.0"
retrofit = "2.11.0"
retrofitKotlinxSerialization = "2.11.0"
okhttpLogging = "4.12.0"
[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
@ -56,6 +61,13 @@ androidx-runner = { group = "androidx.test", name = "runner", version.ref = "and
androidx-material3-window-size-class1-android = { group = "androidx.compose.material3", name = "material3-window-size-class-android", version.ref = "material3WindowSizeClassAndroid" }
androidx-credentials = { group = "androidx.credentials", name = "credentials", version.ref = "credentials" }
hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" }
hilt-compiler = { group = "com.google.dagger", name = "hilt-compiler", version.ref = "hilt" }
hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "hiltNavigationCompose" }
retrofit = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" }
retrofit-kotlinx-serialization = { group = "com.squareup.retrofit2", name = "converter-kotlinx-serialization", version.ref = "retrofitKotlinxSerialization" }
okhttp-logging = { group = "com.squareup.okhttp3", name = "logging-interceptor", version.ref = "okhttpLogging" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
@ -65,6 +77,7 @@ kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "ko
kotlin-ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
compose-multiplatform = { id = "org.jetbrains.compose", version.ref = "composeMultiplatform" }
hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
# Add plugins required by pdfiumandroid
android-library = { id = "com.android.library", version.ref = "agp" }