Android: Update dependencies

Note: This also updates Kotlin to 2.2.21 which requires small adjustments in our Kotlin code.
This commit is contained in:
Simonx22 2025-11-11 16:48:12 -05:00
parent 731849c239
commit 220315737f
7 changed files with 29 additions and 27 deletions

View File

@ -122,35 +122,36 @@ android {
dependencies { dependencies {
baselineProfile(project(":benchmark")) baselineProfile(project(":benchmark"))
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4") coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5")
implementation("androidx.core:core-ktx:1.13.0") implementation("androidx.core:core-ktx:1.17.0")
implementation("androidx.appcompat:appcompat:1.6.1") implementation("androidx.appcompat:appcompat:1.7.1")
implementation("androidx.cardview:cardview:1.0.0") implementation("androidx.cardview:cardview:1.0.0")
implementation("androidx.recyclerview:recyclerview:1.3.2") implementation("androidx.recyclerview:recyclerview:1.4.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.4") implementation("androidx.constraintlayout:constraintlayout:2.2.1")
implementation("androidx.fragment:fragment-ktx:1.6.2") implementation("androidx.fragment:fragment-ktx:1.8.9")
implementation("androidx.slidingpanelayout:slidingpanelayout:1.2.0") implementation("androidx.slidingpanelayout:slidingpanelayout:1.2.0")
implementation("com.google.android.material:material:1.11.0") implementation("com.google.android.material:material:1.13.0")
implementation("androidx.core:core-splashscreen:1.0.1") implementation("androidx.core:core-splashscreen:1.2.0")
implementation("androidx.preference:preference-ktx:1.2.1") implementation("androidx.preference:preference-ktx:1.2.1")
implementation("androidx.profileinstaller:profileinstaller:1.3.1") implementation("androidx.profileinstaller:profileinstaller:1.4.1")
// Kotlin extensions for lifecycle components // Kotlin extensions for lifecycle components
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0") implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.4")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0") implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.9.4")
// Android TV UI libraries. // Android TV UI libraries.
implementation("androidx.leanback:leanback:1.0.0") implementation("androidx.leanback:leanback:1.2.0")
implementation("androidx.tvprovider:tvprovider:1.0.0") implementation("androidx.tvprovider:tvprovider:1.1.0")
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
// For loading game covers from disk and GameTDB // For loading game covers from disk and GameTDB
implementation("io.coil-kt:coil:2.6.0") implementation("io.coil-kt:coil:2.7.0")
// For loading custom GPU drivers // For loading custom GPU drivers
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3") implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2")
implementation("com.nononsenseapps:filepicker:4.2.1") implementation("com.nononsenseapps:filepicker:4.2.1")
} }

View File

@ -41,7 +41,7 @@ class GameRowPresenter : Presenter() {
return TvGameViewHolder(gameCard) return TvGameViewHolder(gameCard)
} }
override fun onBindViewHolder(viewHolder: ViewHolder, item: Any) { override fun onBindViewHolder(viewHolder: ViewHolder, item: Any?) {
val holder = viewHolder as TvGameViewHolder val holder = viewHolder as TvGameViewHolder
val context = holder.cardParent.context val context = holder.cardParent.context
val gameFile = item as GameFile val gameFile = item as GameFile

View File

@ -25,7 +25,7 @@ class SettingsRowPresenter : Presenter() {
return TvSettingsViewHolder(settingsCard) return TvSettingsViewHolder(settingsCard)
} }
override fun onBindViewHolder(viewHolder: ViewHolder, item: Any) { override fun onBindViewHolder(viewHolder: ViewHolder, item: Any?) {
val holder = viewHolder as TvSettingsViewHolder val holder = viewHolder as TvSettingsViewHolder
val context = holder.cardParent.context val context = holder.cardParent.context
val settingsItem = item as TvSettingsItem val settingsItem = item as TvSettingsItem

View File

@ -22,6 +22,6 @@ class TvGameViewHolder(itemView: View) : Presenter.ViewHolder(itemView) {
init { init {
itemView.tag = this itemView.tag = this
cardParent = itemView as ImageCardView cardParent = itemView as ImageCardView
imageScreenshot = cardParent.mainImageView imageScreenshot = cardParent.mainImageView!!
} }
} }

View File

@ -45,8 +45,8 @@ baselineProfile {
} }
dependencies { dependencies {
implementation("androidx.test.ext:junit:1.1.5") implementation("androidx.test.ext:junit:1.3.0")
implementation("androidx.test.espresso:espresso-core:3.5.1") implementation("androidx.test.espresso:espresso-core:3.7.0")
implementation("androidx.test.uiautomator:uiautomator:2.3.0") implementation("androidx.test.uiautomator:uiautomator:2.3.0")
implementation("androidx.benchmark:benchmark-macro-junit4:1.2.4") implementation("androidx.benchmark:benchmark-macro-junit4:1.4.1")
} }

View File

@ -1,9 +1,9 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins { plugins {
id("com.android.application") version "8.13.0" apply false id("com.android.application") version "8.13.1" apply false
id("com.android.library") version "8.13.0" apply false id("com.android.library") version "8.13.1" apply false
id("org.jetbrains.kotlin.android") version "1.8.21" apply false id("org.jetbrains.kotlin.android") version "2.2.21" apply false
id("com.android.test") version "8.13.0" apply false id("com.android.test") version "8.13.1" apply false
id("androidx.baselineprofile") version "1.3.3" apply false id("androidx.baselineprofile") version "1.3.3" apply false
} }

View File

@ -1,6 +1,7 @@
#Tue Nov 11 16:01:52 EST 2025
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip
networkTimeout=10000 networkTimeout=10000
validateDistributionUrl=true validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME