0.2.76 - Icon Packs
This commit is contained in:
+44
-10
@@ -12,6 +12,19 @@ plugins {
|
||||
// the Jellyfin FFmpeg extension pins which line that can be.
|
||||
val media3Version = "1.9.4"
|
||||
|
||||
// Lifecycle and Activity move as one AndroidX stack: activity-compose depends on the
|
||||
// lifecycle artifacts, and lifecycle-runtime-compose depends on activity's ComponentActivity
|
||||
// contract, so a split upgrade resolves to a mixture Gradle picked rather than one the
|
||||
// libraries were tested as. Keep these two in step.
|
||||
val lifecycleVersion = "2.11.0"
|
||||
val activityVersion = "1.13.0"
|
||||
|
||||
// The icon packs a server-driven theme may name. One version across every pack: the
|
||||
// receiver objects (Lucide, FontAwesome.Solid) come from shared base artifacts, so a split
|
||||
// version resolves two copies of the same object and the extension properties stop
|
||||
// matching their receiver.
|
||||
val composeIconsVersion = "2.2.1"
|
||||
|
||||
// Set in gradle.properties (or ~/.gradle/gradle.properties, or -Pmemby.serverUrl=...).
|
||||
// Blank means "no hardwired server": the setup screen asks the user for an address.
|
||||
val embyServerUrl: String = (project.findProperty("memby.serverUrl") as String?).orEmpty().trim()
|
||||
@@ -50,7 +63,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.75"
|
||||
val defaultVersionName = "0.2.76"
|
||||
val membyVersionName: String =
|
||||
(project.findProperty("memby.versionName") as String?)
|
||||
?.trim()
|
||||
@@ -84,7 +97,11 @@ fun environmentSecret(key: String): String? {
|
||||
|
||||
android {
|
||||
namespace = "com.ponzischeme89.memby"
|
||||
compileSdk = 35
|
||||
// Raised to 37 by the Lifecycle 2.11 / Activity 1.13 upgrade, which refuse to be
|
||||
// consumed by a project compiled against anything older. This is a *compile* target
|
||||
// only — targetSdk stays 35, so no new runtime behaviour is opted into and the
|
||||
// televisions this ships to behave exactly as before.
|
||||
compileSdk = 37
|
||||
|
||||
defaultConfig {
|
||||
// Matches the Kotlin package. Changed from com.mattcohen.embyclientsname at
|
||||
@@ -209,20 +226,27 @@ kotlin {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
val composeBom = platform("androidx.compose:compose-bom:2024.12.01")
|
||||
// Moved with the Lifecycle 2.11 / Activity 1.13 upgrade, which depend on Compose 1.11
|
||||
// and so resolve past whatever this BOM says. Left at 2024.12.01 the BOM stopped being
|
||||
// a floor OR a ceiling: Gradle picked ui 1.11.0 beside foundation 1.10.3, which is a
|
||||
// Compose pair nobody published or tested together. The BOM's whole job is that the
|
||||
// artifacts move as one set, so it has to keep up with what depends on them.
|
||||
val composeBom = platform("androidx.compose:compose-bom:2026.06.01")
|
||||
implementation(composeBom)
|
||||
|
||||
// Core / lifecycle / activity
|
||||
implementation("androidx.core:core-ktx:1.15.0")
|
||||
implementation("androidx.activity:activity-compose:1.9.3")
|
||||
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.8.7")
|
||||
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7")
|
||||
implementation("androidx.lifecycle:lifecycle-runtime-compose:2.8.7")
|
||||
implementation("androidx.work:work-runtime-ktx:2.10.0")
|
||||
implementation("androidx.activity:activity-compose:$activityVersion")
|
||||
implementation("androidx.lifecycle:lifecycle-runtime-ktx:$lifecycleVersion")
|
||||
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycleVersion")
|
||||
implementation("androidx.lifecycle:lifecycle-runtime-compose:$lifecycleVersion")
|
||||
implementation("androidx.work:work-runtime-ktx:2.11.2")
|
||||
// ProcessLifecycleOwner: lets the status poll stop while no Memby screen is on top,
|
||||
// instead of hitting the gateway every ten seconds for as long as the process lives.
|
||||
implementation("androidx.lifecycle:lifecycle-process:2.8.7")
|
||||
implementation("androidx.savedstate:savedstate-ktx:1.2.1")
|
||||
implementation("androidx.lifecycle:lifecycle-process:$lifecycleVersion")
|
||||
// Pulled to 1.4.0 by lifecycle 2.11 regardless; declared at the resolved version so the
|
||||
// build file states what actually ships.
|
||||
implementation("androidx.savedstate:savedstate-ktx:1.4.0")
|
||||
// Measurement only: JankStats is enabled by PerformanceMonitor for debug builds.
|
||||
implementation("androidx.metrics:metrics-performance:1.0.0")
|
||||
// Installs the baseline profile below. Without it the profile is only honoured on
|
||||
@@ -238,6 +262,16 @@ dependencies {
|
||||
implementation("androidx.compose.foundation:foundation")
|
||||
implementation("androidx.compose.material:material-icons-extended")
|
||||
|
||||
// Server-driven icon packs. A theme names a pack (ui/theme/MembyIconPacks.kt) and the
|
||||
// television paints its marks from it, so a household can be moved off Material's
|
||||
// marks without an APK release — the same trade the palette makes.
|
||||
//
|
||||
// Pure Kotlin ImageVectors, one lazy val per icon, so R8 keeps only the ~70 slots the
|
||||
// packs below actually name. No .so, no per-ABI multiplier: this is a size decision,
|
||||
// but a small one, unlike the libmpv episode recorded further down this file.
|
||||
implementation("com.composables:icons-lucide-cmp:$composeIconsVersion")
|
||||
implementation("com.composables:icons-font-awesome-solid-cmp:$composeIconsVersion")
|
||||
|
||||
// Compose for TV
|
||||
implementation("androidx.tv:tv-material:1.1.0")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user