[Android] Providers: take searchQuery into account
Duncan McNamara
git at videolan.org
Thu Sep 3 11:21:13 UTC 2026
vlc-android | branch: master | Duncan McNamara <dcn.mcnamara at gmail.com> | Thu Jul 23 16:35:32 2026 +0200| [be798e821a806c36fe9783a677fd405688265d9c] | committer: Nicolas Pomepuy
Providers: take searchQuery into account
When using Play All from a search in Video it would play the actual list
intead of the search results. We now check if a searchQuery exists and
return the list or the results of the query.
Fixes #3356
> https://code.videolan.org/videolan/vlc-android/commit/be798e821a806c36fe9783a677fd405688265d9c
---
.../org/videolan/vlc/providers/medialibrary/FoldersProvider.kt | 5 ++++-
.../videolan/vlc/providers/medialibrary/VideoGroupsProvider.kt | 5 ++++-
.../org/videolan/vlc/providers/medialibrary/VideosProvider.kt | 9 ++++++++-
3 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/application/vlc-android/src/org/videolan/vlc/providers/medialibrary/FoldersProvider.kt b/application/vlc-android/src/org/videolan/vlc/providers/medialibrary/FoldersProvider.kt
index a8f2a75c16..affdce2033 100644
--- a/application/vlc-android/src/org/videolan/vlc/providers/medialibrary/FoldersProvider.kt
+++ b/application/vlc-android/src/org/videolan/vlc/providers/medialibrary/FoldersProvider.kt
@@ -29,7 +29,10 @@ class FoldersProvider(context: Context, model: SortableModel, val type: Int) : M
override val isVideoPermDependant = true
- override fun getAll() : Array<Folder> = medialibrary.getFolders(type, sort, desc, Settings.includeMissing, onlyFavorites, getTotalCount(), 0)
+ override fun getAll() : Array<Folder> = if (model.filterQuery.isNullOrEmpty())
+ medialibrary.getFolders(type, sort, desc, Settings.includeMissing, onlyFavorites, getTotalCount(), 0)
+ else
+ medialibrary.searchFolders(model.filterQuery, sort, desc, Settings.includeMissing, onlyFavorites, getTotalCount(), 0)
override fun getTotalCount() = if (model.filterQuery.isNullOrEmpty()) medialibrary.getFoldersCount(type) else medialibrary.getFoldersCount(model.filterQuery)
diff --git a/application/vlc-android/src/org/videolan/vlc/providers/medialibrary/VideoGroupsProvider.kt b/application/vlc-android/src/org/videolan/vlc/providers/medialibrary/VideoGroupsProvider.kt
index 9b7be89ada..be844d8218 100644
--- a/application/vlc-android/src/org/videolan/vlc/providers/medialibrary/VideoGroupsProvider.kt
+++ b/application/vlc-android/src/org/videolan/vlc/providers/medialibrary/VideoGroupsProvider.kt
@@ -17,7 +17,10 @@ class VideoGroupsProvider(context: Context, model: SortableModel) : Medialibrary
override fun canSortByMediaNumber() = true
override val isVideoPermDependant = true
- override fun getAll() : Array<VideoGroup> = medialibrary.getVideoGroups(sort, desc, Settings.includeMissing, onlyFavorites, getTotalCount(), 0)
+ override fun getAll() : Array<VideoGroup> = if (model.filterQuery.isNullOrEmpty())
+ medialibrary.getVideoGroups(sort, desc, Settings.includeMissing, onlyFavorites, getTotalCount(), 0)
+ else
+ medialibrary.searchVideoGroups(model.filterQuery, sort, desc, Settings.includeMissing, onlyFavorites, getTotalCount(), 0)
override fun getTotalCount() = medialibrary.getVideoGroupsCount(model.filterQuery)
diff --git a/application/vlc-android/src/org/videolan/vlc/providers/medialibrary/VideosProvider.kt b/application/vlc-android/src/org/videolan/vlc/providers/medialibrary/VideosProvider.kt
index 8a4c4f9d4d..88416b6f86 100644
--- a/application/vlc-android/src/org/videolan/vlc/providers/medialibrary/VideosProvider.kt
+++ b/application/vlc-android/src/org/videolan/vlc/providers/medialibrary/VideosProvider.kt
@@ -62,9 +62,16 @@ class VideosProvider(val folder : Folder?, val group: VideoGroup?, context: Cont
return list
}
- override fun getAll(): Array<MediaWrapper> = when {
+ override fun getAll(): Array<MediaWrapper> = if (model.filterQuery == null) when {
folder !== null -> folder.getAll(Folder.TYPE_FOLDER_VIDEO, sort, desc, Settings.includeMissing).toTypedArray()
group !== null -> group.getAll(sort, desc, Settings.includeMissing, onlyFavorites).toTypedArray()
else -> medialibrary.getVideos(sort, desc, Settings.includeMissing, onlyFavorites)
+ } else {
+ val count = getTotalCount()
+ when {
+ folder !== null -> folder.searchTracks(model.filterQuery, Folder.TYPE_FOLDER_VIDEO, sort, desc, Settings.includeMissing, onlyFavorites, count, 0)
+ group !== null -> group.searchTracks(model.filterQuery, sort, desc, Settings.includeMissing, onlyFavorites, count, 0)
+ else -> medialibrary.searchVideo(model.filterQuery, sort, desc, Settings.includeMissing, onlyFavorites, count, 0)
+ }
}
}
More information about the Android
mailing list