Show shimmer animation while fetching search results

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2023-04-24 13:10:44 +05:30
parent 2e024150de
commit e8fcb85727

View File

@@ -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<App>): List<App> {