From e8fcb85727826052654192169971c1f9a7572146 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Mon, 24 Apr 2023 13:10:44 +0530 Subject: [PATCH] Show shimmer animation while fetching search results Signed-off-by: Aayush Gupta --- .../view/ui/search/SearchResultsActivity.kt | 32 ++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/aurora/store/view/ui/search/SearchResultsActivity.kt b/app/src/main/java/com/aurora/store/view/ui/search/SearchResultsActivity.kt index 90dc067fe..09dc241a2 100644 --- a/app/src/main/java/com/aurora/store/view/ui/search/SearchResultsActivity.kt +++ b/app/src/main/java/com/aurora/store/view/ui/search/SearchResultsActivity.kt @@ -46,6 +46,7 @@ import com.aurora.store.view.custom.recycler.EndlessRecyclerOnScrollListener import com.aurora.store.view.epoxy.views.AppProgressViewModel_ import com.aurora.store.view.epoxy.views.app.AppListViewModel_ import com.aurora.store.view.epoxy.views.app.NoAppViewModel_ +import com.aurora.store.view.epoxy.views.shimmer.AppListViewShimmerModel_ import com.aurora.store.view.ui.commons.BaseActivity import com.aurora.store.view.ui.downloads.DownloadActivity import com.aurora.store.view.ui.sheets.FilterSheet @@ -67,6 +68,7 @@ class SearchResultsActivity : BaseActivity(), OnSharedPreferenceChangeListener { var query: String? = null var searchBundle: SearchBundle = SearchBundle() + private var shimmerAnimationVisible = false override fun onConnected() { hideNetworkConnectivitySheet() @@ -91,16 +93,21 @@ class SearchResultsActivity : BaseActivity(), OnSharedPreferenceChangeListener { setContentView(B.root) - VM.liveData.observe(this, { - searchBundle = it - updateController(searchBundle) - }) - attachToolbar() attachSearch() attachRecycler() attachFilter() + VM.liveData.observe(this) { + if (shimmerAnimationVisible) { + endlessRecyclerOnScrollListener.resetPageCount() + B.recycler.clear() + shimmerAnimationVisible = false + } + searchBundle = it + updateController(searchBundle) + } + query = intent.getStringExtra(Constants.STRING_EXTRA) query?.let { updateQuery(it) @@ -165,7 +172,17 @@ class SearchResultsActivity : BaseActivity(), OnSharedPreferenceChangeListener { B.recycler.addOnScrollListener(endlessRecyclerOnScrollListener) } - private fun updateController(searchBundle: SearchBundle) { + private fun updateController(searchBundle: SearchBundle?) { + if (searchBundle == null) { + shimmerAnimationVisible = true + B.recycler.withModels { + for (i in 1..10) { + add(AppListViewShimmerModel_().id(i)) + } + } + return + } + val filteredAppList = filter(searchBundle.appList) if (filteredAppList.isEmpty()) { @@ -257,9 +274,8 @@ class SearchResultsActivity : BaseActivity(), OnSharedPreferenceChangeListener { } private fun queryViewModel(query: String) { + updateController(null) VM.observeSearchResults(query) - endlessRecyclerOnScrollListener.resetPageCount() - B.recycler.clear() } private fun filter(appList: MutableList): List {