[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