App v0.2.26 and gateway 0.1.20
Client: seek controls, Bazarr subtitle download and cast panel in the player; MDBList ratings strip; episode and schedule detail pages; series pace estimate; what's new panel; install-permission onboarding step; synced per-profile preferences; Emby outage banner. Gateway: rebuilt admin console (one fragment per page), preference history and restore, merged Continue Watching, Emby health probe, subtitle selection and Bazarr download, structured request logging with per-request identity, and embedded build version. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
2675e6d82b
commit
4a4df7a73c
+11
-1
@@ -32,6 +32,9 @@ fun buildConfigString(value: String): String =
|
||||
.replace("\r\n", "\\n")
|
||||
.replace("\n", "\\n") + "\""
|
||||
|
||||
// The About page's version history. Kept as one checked-in document rather than a Kotlin
|
||||
// list so a release only edits CHANGELOG.md, and the TV shows the history offline.
|
||||
val changelogText = rootProject.file("CHANGELOG.md").readText()
|
||||
val gplLicenseText = rootProject.file("LICENSE").readText()
|
||||
val projectNoticeText =
|
||||
rootProject.file("NOTICE").readText()
|
||||
@@ -39,7 +42,7 @@ val projectNoticeText =
|
||||
|
||||
// A release workflow can derive the app version from its Git tag without editing the
|
||||
// source tree. Local builds keep using the checked-in default.
|
||||
val defaultVersionName = "0.2.10"
|
||||
val defaultVersionName = "0.2.26"
|
||||
val membyVersionName: String =
|
||||
(project.findProperty("memby.versionName") as String?)
|
||||
?.trim()
|
||||
@@ -81,6 +84,7 @@ android {
|
||||
buildConfigField("String", "SOURCE_CODE_URL", buildConfigString(membySourceUrl))
|
||||
buildConfigField("String", "GPL_LICENSE_TEXT", buildConfigString(gplLicenseText))
|
||||
buildConfigField("String", "PROJECT_NOTICE_TEXT", buildConfigString(projectNoticeText))
|
||||
buildConfigField("String", "CHANGELOG_TEXT", buildConfigString(changelogText))
|
||||
}
|
||||
|
||||
// Release signing. Android identifies an app by (applicationId, signing key), so
|
||||
@@ -189,6 +193,9 @@ dependencies {
|
||||
// Installs the baseline profile below. Without it the profile is only honoured on
|
||||
// API 31+; a TV box on Android 9-11 — most of the installed base — would get nothing.
|
||||
implementation("androidx.profileinstaller:profileinstaller:1.4.1")
|
||||
// Names the playback launch phases in a systrace so :benchmark can measure them.
|
||||
// Free when tracing is off, which is every build a viewer ever runs.
|
||||
implementation("androidx.tracing:tracing-ktx:1.2.0")
|
||||
|
||||
// Compose (versions from BOM)
|
||||
implementation("androidx.compose.ui:ui")
|
||||
@@ -216,6 +223,9 @@ dependencies {
|
||||
implementation("androidx.media3:media3-exoplayer:1.5.1")
|
||||
implementation("androidx.media3:media3-exoplayer-hls:1.5.1")
|
||||
implementation("androidx.media3:media3-ui:1.5.1")
|
||||
// Lets the player pull its bytes through the app's one OkHttp stack instead of
|
||||
// media3's own HttpURLConnection client — see ui/player/PlayerEngine.kt.
|
||||
implementation("androidx.media3:media3-datasource-okhttp:1.5.1")
|
||||
|
||||
debugImplementation("androidx.compose.ui:ui-tooling")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user