mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-06-08 16:59:55 +00:00
REVERT(3677ee646a2b6e4da8ee2a62dc323dd36766b939): Improve: Convert setup*() functions to suspend function
- migrate back to LiveData from Flow
This commit is contained in:
parent
3677ee646a
commit
d3283cc6e4
@ -3,17 +3,14 @@ package com.looker.droidify.ui.fragments
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
|
||||
abstract class BaseNavFragment : Fragment() {
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
lifecycleScope.launchWhenCreated {
|
||||
setupAdapters()
|
||||
setupLayout()
|
||||
}
|
||||
}
|
||||
|
||||
abstract suspend fun setupAdapters()
|
||||
abstract suspend fun setupLayout()
|
||||
abstract fun setupAdapters()
|
||||
abstract fun setupLayout()
|
||||
}
|
@ -15,7 +15,6 @@ import com.mikepenz.fastadapter.FastAdapter
|
||||
import com.mikepenz.fastadapter.paged.PagedModelAdapter
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
|
||||
// TODO create categories layouts that hold the apps in horizontal layout
|
||||
class ExploreFragment : MainNavFragmentX() {
|
||||
@ -49,7 +48,7 @@ class ExploreFragment : MainNavFragmentX() {
|
||||
.subscribe { repositories = it }
|
||||
}
|
||||
|
||||
override suspend fun setupAdapters() {
|
||||
override fun setupAdapters() {
|
||||
appsItemAdapter = PagedModelAdapter<Product, VAppItem>(PRODUCT_ASYNC_DIFFER_CONFIG) {
|
||||
it.data_item?.let { item -> VAppItem(item, repositories[it.repository_id]) }
|
||||
}
|
||||
@ -62,8 +61,8 @@ class ExploreFragment : MainNavFragmentX() {
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun setupLayout() {
|
||||
viewModel.productsList.collectLatest {
|
||||
override fun setupLayout() {
|
||||
viewModel.productsList.observe(viewLifecycleOwner) {
|
||||
appsItemAdapter.submitList(it)
|
||||
appsFastAdapter?.notifyDataSetChanged()
|
||||
}
|
||||
|
@ -17,7 +17,6 @@ import com.mikepenz.fastadapter.FastAdapter
|
||||
import com.mikepenz.fastadapter.paged.PagedModelAdapter
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
|
||||
class InstalledFragment : MainNavFragmentX() {
|
||||
|
||||
@ -53,7 +52,7 @@ class InstalledFragment : MainNavFragmentX() {
|
||||
.subscribe { repositories = it }
|
||||
}
|
||||
|
||||
override suspend fun setupAdapters() {
|
||||
override fun setupAdapters() {
|
||||
installedItemAdapter = PagedModelAdapter<Product, VAppItem>(PRODUCT_ASYNC_DIFFER_CONFIG) {
|
||||
it.data_item?.let { item -> VAppItem(item, repositories[it.repository_id]) }
|
||||
}
|
||||
@ -75,14 +74,14 @@ class InstalledFragment : MainNavFragmentX() {
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun setupLayout() {
|
||||
override fun setupLayout() {
|
||||
binding.buttonUpdated.setOnClickListener {
|
||||
binding.updatedRecycler.apply {
|
||||
visibility = if (visibility == View.VISIBLE) View.GONE else View.VISIBLE
|
||||
}
|
||||
}
|
||||
|
||||
viewModel.productsList.collectLatest {
|
||||
viewModel.productsList.observe(viewLifecycleOwner) {
|
||||
binding.updatedBar.visibility =
|
||||
if (it.any { item -> item.data_item?.canUpdate == true }) View.VISIBLE else View.GONE
|
||||
updatedItemAdapter.submitList(it)
|
||||
|
@ -17,7 +17,6 @@ import com.mikepenz.fastadapter.FastAdapter
|
||||
import com.mikepenz.fastadapter.paged.PagedModelAdapter
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
|
||||
class LatestFragment : MainNavFragmentX() {
|
||||
|
||||
@ -54,7 +53,7 @@ class LatestFragment : MainNavFragmentX() {
|
||||
.subscribe { repositories = it }
|
||||
}
|
||||
|
||||
override suspend fun setupAdapters() {
|
||||
override fun setupAdapters() {
|
||||
updatedItemAdapter = PagedModelAdapter<Product, VAppItem>(PRODUCT_ASYNC_DIFFER_CONFIG) {
|
||||
it.data_item?.let { item -> VAppItem(item, repositories[it.repository_id]) }
|
||||
}
|
||||
@ -76,8 +75,8 @@ class LatestFragment : MainNavFragmentX() {
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun setupLayout() {
|
||||
viewModel.productsList.collectLatest {
|
||||
override fun setupLayout() {
|
||||
viewModel.productsList.observe(requireActivity()) {
|
||||
newItemAdapter.submitList(it)
|
||||
updatedItemAdapter.submitList(it)
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ class PrefsRepositoriesFragment : BaseNavFragment() {
|
||||
return binding.root
|
||||
}
|
||||
|
||||
override suspend fun setupAdapters() {
|
||||
override fun setupAdapters() {
|
||||
syncConnection.bind(requireContext())
|
||||
|
||||
reposFastAdapter = FastAdapter.with(reposItemAdapter)
|
||||
@ -52,7 +52,7 @@ class PrefsRepositoriesFragment : BaseNavFragment() {
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun setupLayout() {
|
||||
override fun setupLayout() {
|
||||
viewModel.productsList.observe(requireActivity()) {
|
||||
reposItemAdapter.set(
|
||||
it.mapNotNull { dbRepo ->
|
||||
|
@ -1,8 +1,8 @@
|
||||
package com.looker.droidify.ui.viewmodels
|
||||
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.asFlow
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import androidx.paging.DataSource
|
||||
import androidx.paging.LivePagedListBuilder
|
||||
@ -88,8 +88,8 @@ class MainNavFragmentViewModelX(val db: DatabaseX, source: Source) : ViewModel()
|
||||
.setEnablePlaceholders(false)
|
||||
.build()
|
||||
}
|
||||
val request = request(source)
|
||||
val productsList: Flow<PagedList<Product>> by lazy {
|
||||
private val request = request(source)
|
||||
val productsList: LiveData<PagedList<Product>> by lazy {
|
||||
LivePagedListBuilder(
|
||||
db.productDao.queryList(
|
||||
installed = request.installed,
|
||||
@ -99,7 +99,7 @@ class MainNavFragmentViewModelX(val db: DatabaseX, source: Source) : ViewModel()
|
||||
order = request.order,
|
||||
numberOfItems = request.numberOfItems
|
||||
), pagedListConfig
|
||||
).build().asFlow()
|
||||
).build()
|
||||
}
|
||||
|
||||
fun fillList(source: Source) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user