[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