[Android] Display the dedicated empty view in the search activity results

Nicolas Pomepuy git at videolan.org
Mon Feb 10 12:27:22 UTC 2025


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Wed Feb  5 14:35:52 2025 +0100| [d6ff10f4a9220ed33815b7533c7266db9e05e14f] | committer: Duncan McNamara

Display the dedicated empty view in the search activity results

Fixes #3142

> https://code.videolan.org/videolan/vlc-android/commit/d6ff10f4a9220ed33815b7533c7266db9e05e14f
---

 application/vlc-android/res/layout/search_activity.xml       | 12 +++++++-----
 .../vlc-android/src/org/videolan/vlc/gui/SearchActivity.kt   |  5 +++++
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/application/vlc-android/res/layout/search_activity.xml b/application/vlc-android/res/layout/search_activity.xml
index 1f61926527..ff25c35d9e 100644
--- a/application/vlc-android/res/layout/search_activity.xml
+++ b/application/vlc-android/res/layout/search_activity.xml
@@ -212,12 +212,14 @@
             </LinearLayout>
         </androidx.core.widget.NestedScrollView>
 
-        <TextView
+        <org.videolan.vlc.gui.view.EmptyLoadingStateView
+                android:id="@+id/audio_empty_loading"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
-                android:gravity="center"
-                android:text="@string/search_no_result"
-                android:textAppearance="@style/Result.Title"
-                android:visibility="@{searchAggregate.isEmpty ? View.VISIBLE : View.GONE}" />
+                app:empty_text="@string/search_no_result"
+                app:layout_constraintBottom_toBottomOf="parent"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toTopOf="parent" />
     </LinearLayout>
 </layout>
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/SearchActivity.kt b/application/vlc-android/src/org/videolan/vlc/gui/SearchActivity.kt
index 424efdcd02..b05b897ebe 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/SearchActivity.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/SearchActivity.kt
@@ -23,6 +23,7 @@ import org.videolan.vlc.R
 import org.videolan.vlc.databinding.SearchActivityBinding
 import org.videolan.vlc.gui.helpers.UiTools
 import org.videolan.vlc.gui.helpers.applyTheme
+import org.videolan.vlc.gui.view.EmptyLoadingState
 import org.videolan.vlc.media.MediaUtils
 
 open class SearchActivity : BaseActivity(), TextWatcher, TextView.OnEditorActionListener {
@@ -52,12 +53,16 @@ open class SearchActivity : BaseActivity(), TextWatcher, TextView.OnEditorAction
         }
         binding.searchEditText.addTextChangedListener(this)
         binding.searchEditText.setOnEditorActionListener(this)
+        binding.audioEmptyLoading.state = EmptyLoadingState.NONE
     }
 
     private fun performSearh(query: String?) {
         if (query != null && query.isNotEmpty()) lifecycleScope.launchWhenStarted {
             val searchAggregate = getFromMl { search(query, Settings.includeMissing, false) }
             binding.searchAggregate = searchAggregate
+            if (searchAggregate.isEmpty) {
+                binding.audioEmptyLoading.state = EmptyLoadingState.EMPTY_SEARCH
+            } else binding.audioEmptyLoading.state = EmptyLoadingState.NONE
             searchAggregate?.let { result ->
                 result.albums?.filterNotNull()?.let { (binding.albumsResults.adapter as SearchResultAdapter).add(it.toTypedArray()) }
                 result.artists?.filterNotNull()?.let { (binding.artistsResults.adapter as SearchResultAdapter).add(it.toTypedArray()) }



More information about the Android mailing list