0.2.45 - Advanced analytics, logout old versions

This commit is contained in:
ponzischeme89
2026-08-10 20:24:22 +12:00
parent 63f0768507
commit 56c1167382
32 changed files with 1125 additions and 452 deletions
+18 -6
View File
@@ -42,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.43"
val defaultVersionName = "0.2.45"
val membyVersionName: String =
(project.findProperty("memby.versionName") as String?)
?.trim()
@@ -79,6 +79,15 @@ android {
versionCode = membyVersionCode
versionName = membyVersionName
// Every native library in this APK is packaged uncompressed (minSdk 23 means
// extractNativeLibs=false), so an ABI nobody runs is dead weight carried through
// every sideload. Android TV is ARM: the x86 slices existed only for the emulator,
// which is not how this app is ever tested. Removing them is not a compatibility
// decision to revisit — adding a native dependency is.
ndk {
abiFilters += listOf("arm64-v8a", "armeabi-v7a")
}
buildConfigField("String", "EMBY_SERVER_URL", "\"${embyServerUrl.replace("\"", "\\\"")}\"")
buildConfigField("String", "MEMBY_GATEWAY_URL", "\"${membyGatewayUrl.replace("\"", "\\\"")}\"")
buildConfigField("String", "SOURCE_CODE_URL", buildConfigString(membySourceUrl))
@@ -237,13 +246,16 @@ dependencies {
// surround track that is not bitstreamed is decoded to PCM instead of making the
// server re-encode the video beside it. This build targets Media3 1.5.x; Jellyfin's
// 1.5.0 extension is the matching published binary for that line.
//
// This is the ONLY native dependency the app carries, and it is 1.5MB per ABI because
// it links just the audio decoders it needs. It replaced a libmpv software-decoding
// fallback (io.github.abdallahmehiz:mpv-android-lib) that shipped a whole FFmpeg,
// libc++ and a 6MB subtitle font — 155MB of native code across four ABIs, which took
// the release APK from 3.1MB to 168MB and made every sideload a several-minute
// affair. A last-resort video path is not worth fifty times the app. If one is wanted
// again, it belongs behind a separately downloaded split, not in the base APK.
implementation("org.jellyfin.media3:media3-ffmpeg-decoder:1.5.0+1")
// Software-decoding fallback after Media3 exhausts its codec/container recovery.
// Kept out of the normal path: Android TV still gets hardware decode, passthrough,
// the full Memby OSD and the pre-roll from Media3 whenever the device can play it.
implementation("io.github.abdallahmehiz:mpv-android-lib:0.1.12")
debugImplementation("androidx.compose.ui:ui-tooling")
// Ahead-of-time compiles the startup + first-scroll path. Regenerate against a real