[Android] Bump android gradle plugin and kotlin versions
Nicolas Pomepuy
git at videolan.org
Thu Apr 24 06:44:39 UTC 2025
vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Fri Mar 21 08:51:34 2025 +0100| [119d7632f63fc67f1bd3ac092b49b179c8845ee4] | committer: Nicolas Pomepuy
Bump android gradle plugin and kotlin versions
> https://code.videolan.org/videolan/vlc-android/commit/119d7632f63fc67f1bd3ac092b49b179c8845ee4
---
.../src/org/videolan/vlc/gui/DebugLogActivity.kt | 2 +-
.../src/org/videolan/vlc/util/FilterDelegate.kt | 37 +++++++++++-----------
.../src/org/videolan/vlc/viewmodels/BaseModel.kt | 2 +-
build.gradle | 4 +--
buildsystem/compile.sh | 4 +--
buildsystem/gitlab/.gitlab-ci.yml | 2 +-
6 files changed, 26 insertions(+), 25 deletions(-)
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/DebugLogActivity.kt b/application/vlc-android/src/org/videolan/vlc/gui/DebugLogActivity.kt
index 4d59c31475..0aeaaa37f0 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/DebugLogActivity.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/DebugLogActivity.kt
@@ -157,7 +157,7 @@ class DebugLogActivity : FragmentActivity(), DebugLogService.Client.Callback {
share(File(path))
}
} else {
- UiTools.snacker(window.decorView.findViewById(android.R.id.content), R.string.dump_logcat_failure)
+ UiTools.snacker(this, R.string.dump_logcat_failure)
}
}
diff --git a/application/vlc-android/src/org/videolan/vlc/util/FilterDelegate.kt b/application/vlc-android/src/org/videolan/vlc/util/FilterDelegate.kt
index 8b173c9735..99a5e2f71f 100644
--- a/application/vlc-android/src/org/videolan/vlc/util/FilterDelegate.kt
+++ b/application/vlc-android/src/org/videolan/vlc/util/FilterDelegate.kt
@@ -1,15 +1,15 @@
package org.videolan.vlc.util
-import androidx.lifecycle.MutableLiveData
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.videolan.medialibrary.interfaces.media.MediaWrapper
import org.videolan.medialibrary.media.MediaLibraryItem
import org.videolan.resources.AppContextProvider
+import org.videolan.tools.livedata.LiveDataset
import org.videolan.vlc.media.MediaUtils
import java.util.Locale
-open class FilterDelegate<T : MediaLibraryItem>(val dataset: MutableLiveData<out List<T>>) {
+open class FilterDelegate<T : MediaLibraryItem>(val dataset: LiveDataset<T>) {
var sourceSet: List<T>? = null
protected fun initSource() : List<T>? {
@@ -21,13 +21,14 @@ open class FilterDelegate<T : MediaLibraryItem>(val dataset: MutableLiveData<out
protected open suspend fun filteringJob(charSequence: CharSequence?) : MutableList<T>? {
if (charSequence !== null) initSource()?.let {
- return withContext(Dispatchers.Default) { mutableListOf<T>().apply {
- val queryStrings = charSequence.trim().toString().split(" ")
- for (item in it) for (query in queryStrings)
- if (item.title.contains(query, true)) {
- this.add(item)
- break
- }
+ return withContext(Dispatchers.Default) {
+ mutableListOf<T>().apply {
+ val queryStrings = charSequence.trim().toString().split(" ")
+ for (item in it) for (query in queryStrings)
+ if (item.title.contains(query, true)) {
+ this.add(item)
+ break
+ }
}
}
}
@@ -36,17 +37,17 @@ open class FilterDelegate<T : MediaLibraryItem>(val dataset: MutableLiveData<out
private fun publish(list: MutableList<T>?) {
sourceSet?.let {
- if (list !== null)
- dataset.value = list
- else {
+ list?.let {
dataset.value = it
+ } ?: run {
+ dataset.value = it.toMutableList()
sourceSet = null
}
}
}
}
-class PlaylistFilterDelegate(dataset: MutableLiveData<out List<MediaWrapper>>) : FilterDelegate<MediaWrapper>(dataset) {
+class PlaylistFilterDelegate(dataset: LiveDataset<MediaWrapper>) : FilterDelegate<MediaWrapper>(dataset) {
override suspend fun filteringJob(charSequence: CharSequence?): MutableList<MediaWrapper>? {
if (charSequence !== null) initSource()?.let { list ->
@@ -61,11 +62,11 @@ class PlaylistFilterDelegate(dataset: MutableLiveData<out List<MediaWrapper>>) :
val genre = MediaUtils.getMediaGenre(AppContextProvider.appContext, media).lowercase(Locale.getDefault())
for (queryString in queryStrings) {
if (title.contains(queryString) ||
- location.contains(queryString) ||
- artist.contains(queryString) ||
- albumArtist.contains(queryString) ||
- album.contains(queryString) ||
- genre.contains(queryString)) {
+ location.contains(queryString) ||
+ artist.contains(queryString) ||
+ albumArtist.contains(queryString) ||
+ album.contains(queryString) ||
+ genre.contains(queryString)) {
this.add(media)
break
}
diff --git a/application/vlc-android/src/org/videolan/vlc/viewmodels/BaseModel.kt b/application/vlc-android/src/org/videolan/vlc/viewmodels/BaseModel.kt
index 8acb78d443..702bfce9b4 100644
--- a/application/vlc-android/src/org/videolan/vlc/viewmodels/BaseModel.kt
+++ b/application/vlc-android/src/org/videolan/vlc/viewmodels/BaseModel.kt
@@ -40,7 +40,7 @@ private const val TAG = "VLC/BaseModel"
abstract class BaseModel<T : MediaLibraryItem>(context: Context, val coroutineContextProvider: CoroutineContextProvider) : SortableModel(context) {
- private val filter by lazy(LazyThreadSafetyMode.NONE) { FilterDelegate(dataset) }
+ private val filter by lazy(LazyThreadSafetyMode.NONE) { FilterDelegate<T>(dataset) }
val dataset = LiveDataset<T>()
open val loading = MutableLiveData<Boolean>().apply { value = false }
diff --git a/build.gradle b/build.gradle
index 65f5e7485a..89b9d8d180 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
- ext.android_plugin_version = '8.5.0'
- ext.kotlin_version = '1.9.22'
+ ext.android_plugin_version = '8.9.1'
+ ext.kotlin_version = '2.1.0'
ext.kotlinx_version = '1.7.1'
repositories {
flatDir dirs: "gradle/plugins"
diff --git a/buildsystem/compile.sh b/buildsystem/compile.sh
index 862110d8c6..84ff66c576 100755
--- a/buildsystem/compile.sh
+++ b/buildsystem/compile.sh
@@ -259,8 +259,8 @@ fi
if [ ! -d "gradle/wrapper" ]; then
diagnostic "Downloading gradle"
- GRADLE_VERSION=8.7
- GRADLE_SHA256=544c35d6bd849ae8a5ed0bcea39ba677dc40f49df7d1835561582da2009b961d
+ GRADLE_VERSION=8.13
+ GRADLE_SHA256=20f1b1176237254a6fc204d8434196fa11a4cfb387567519c61556e8710aed78
GRADLE_URL=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip
wget ${GRADLE_URL} 2>/dev/null || curl -O ${GRADLE_URL} || fail "gradle: download failed"
echo $GRADLE_SHA256 gradle-${GRADLE_VERSION}-bin.zip | sha256sum -c || fail "gradle: hash mismatch"
diff --git a/buildsystem/gitlab/.gitlab-ci.yml b/buildsystem/gitlab/.gitlab-ci.yml
index d37a889263..c9ca209362 100644
--- a/buildsystem/gitlab/.gitlab-ci.yml
+++ b/buildsystem/gitlab/.gitlab-ci.yml
@@ -1,7 +1,7 @@
cache:
paths:
- .gradle/
- - gradle-8.7/
+ - gradle-8.13/
- gradle/
- gradlew
More information about the Android
mailing list