mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-23 11:22:12 +00:00
Update: Replace repositories observable disposable with Room-RxJava's Flowable
This commit is contained in:
parent
70eee26048
commit
4547ef8a55
@ -7,6 +7,7 @@ import androidx.sqlite.db.SimpleSQLiteQuery
|
||||
import androidx.sqlite.db.SupportSQLiteQuery
|
||||
import com.looker.droidify.*
|
||||
import com.looker.droidify.entity.ProductItem
|
||||
import io.reactivex.rxjava3.core.Flowable
|
||||
|
||||
|
||||
interface BaseDao<T> {
|
||||
@ -53,6 +54,9 @@ interface RepositoryDao : BaseDao<Repository> {
|
||||
@get:Query("SELECT * FROM repository WHERE deleted == 0 ORDER BY _id ASC")
|
||||
val all: List<Repository>
|
||||
|
||||
@get:Query("SELECT * FROM repository WHERE deleted == 0 ORDER BY _id ASC")
|
||||
val allFlowable: Flowable<List<Repository>>
|
||||
|
||||
@get:Query("SELECT _id, deleted FROM repository WHERE deleted != 0 and enabled == 0 ORDER BY _id ASC")
|
||||
val allDisabledDeleted: List<Repository.IdAndDeleted>
|
||||
|
||||
|
@ -13,13 +13,12 @@ import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.looker.droidify.R
|
||||
import com.looker.droidify.database.CursorOwner
|
||||
import com.looker.droidify.databinding.FragmentExploreXBinding
|
||||
import com.looker.droidify.entity.Repository
|
||||
import com.looker.droidify.ui.adapters.AppListAdapter
|
||||
import com.looker.droidify.ui.viewmodels.MainNavFragmentViewModelX
|
||||
import com.looker.droidify.utility.RxUtils
|
||||
import com.looker.droidify.widget.RecyclerFastScroller
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.core.Observable
|
||||
import io.reactivex.rxjava3.disposables.Disposable
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import kotlinx.coroutines.flow.first
|
||||
import kotlinx.coroutines.launch
|
||||
@ -31,7 +30,7 @@ class ExploreFragment : MainNavFragmentX(), CursorOwner.Callback {
|
||||
|
||||
override val source = Source.AVAILABLE
|
||||
|
||||
private var repositoriesDisposable: Disposable? = null
|
||||
private var repositories: Map<Long, Repository> = mapOf()
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
@ -61,21 +60,18 @@ class ExploreFragment : MainNavFragmentX(), CursorOwner.Callback {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
mainActivityX.attachCursorOwner(this, viewModel.request(source))
|
||||
repositoriesDisposable = Observable.just(Unit)
|
||||
//.concatWith(Database.observable(Database.Subject.Repositories)) TODO have to be replaced like whole rxJava
|
||||
viewModel.db.repositoryDao.allFlowable
|
||||
.observeOn(Schedulers.io())
|
||||
.flatMapSingle { RxUtils.querySingle { mainActivityX.db.repositoryDao.all.mapNotNull { it.trueData } } }
|
||||
.flatMapSingle { list -> RxUtils.querySingle { list.mapNotNull { it.trueData } } }
|
||||
.map { list -> list.asSequence().map { Pair(it.id, it) }.toMap() }
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe { (binding.recyclerView.adapter as? AppListAdapter)?.repositories = it }
|
||||
.subscribe { repositories = it }
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
|
||||
mainActivityX.detachCursorOwner(this)
|
||||
repositoriesDisposable?.dispose()
|
||||
repositoriesDisposable = null
|
||||
}
|
||||
|
||||
override fun onCursorData(request: CursorOwner.Request, cursor: Cursor?) {
|
||||
|
@ -20,8 +20,6 @@ import com.looker.droidify.widget.RecyclerFastScroller
|
||||
import com.mikepenz.fastadapter.FastAdapter
|
||||
import com.mikepenz.fastadapter.adapters.ItemAdapter
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.core.Observable
|
||||
import io.reactivex.rxjava3.disposables.Disposable
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
|
||||
class InstalledFragment : MainNavFragmentX(), CursorOwner.Callback {
|
||||
@ -37,7 +35,6 @@ class InstalledFragment : MainNavFragmentX(), CursorOwner.Callback {
|
||||
override val source = Source.INSTALLED
|
||||
|
||||
private var repositories: Map<Long, Repository> = mapOf()
|
||||
private var repositoriesDisposable: Disposable? = null
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
@ -76,10 +73,9 @@ class InstalledFragment : MainNavFragmentX(), CursorOwner.Callback {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
mainActivityX.attachCursorOwner(this, viewModel.request(source))
|
||||
repositoriesDisposable = Observable.just(Unit)
|
||||
//.concatWith(Database.observable(Database.Subject.Repositories)) TODO have to be replaced like whole rxJava
|
||||
viewModel.db.repositoryDao.allFlowable
|
||||
.observeOn(Schedulers.io())
|
||||
.flatMapSingle { RxUtils.querySingle { mainActivityX.db.repositoryDao.all.mapNotNull { it.trueData } } }
|
||||
.flatMapSingle { list -> RxUtils.querySingle { list.mapNotNull { it.trueData } } }
|
||||
.map { list -> list.asSequence().map { Pair(it.id, it) }.toMap() }
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe { repositories = it }
|
||||
@ -89,8 +85,6 @@ class InstalledFragment : MainNavFragmentX(), CursorOwner.Callback {
|
||||
super.onDestroyView()
|
||||
|
||||
mainActivityX.detachCursorOwner(this)
|
||||
repositoriesDisposable?.dispose()
|
||||
repositoriesDisposable = null
|
||||
}
|
||||
|
||||
override fun onCursorData(request: CursorOwner.Request, cursor: Cursor?) {
|
||||
|
@ -20,8 +20,6 @@ import com.looker.droidify.widget.RecyclerFastScroller
|
||||
import com.mikepenz.fastadapter.FastAdapter
|
||||
import com.mikepenz.fastadapter.adapters.ItemAdapter
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.core.Observable
|
||||
import io.reactivex.rxjava3.disposables.Disposable
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
|
||||
class LatestFragment : MainNavFragmentX(), CursorOwner.Callback {
|
||||
@ -37,7 +35,6 @@ class LatestFragment : MainNavFragmentX(), CursorOwner.Callback {
|
||||
override val source = Source.AVAILABLE
|
||||
|
||||
private var repositories: Map<Long, Repository> = mapOf()
|
||||
private var repositoriesDisposable: Disposable? = null
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
@ -76,10 +73,9 @@ class LatestFragment : MainNavFragmentX(), CursorOwner.Callback {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
mainActivityX.attachCursorOwner(this, viewModel.request(source))
|
||||
repositoriesDisposable = Observable.just(Unit)
|
||||
//.concatWith(Database.observable(Database.Subject.Repositories)) TODO have to be replaced like whole rxJava
|
||||
viewModel.db.repositoryDao.allFlowable
|
||||
.observeOn(Schedulers.io())
|
||||
.flatMapSingle { RxUtils.querySingle { mainActivityX.db.repositoryDao.all.mapNotNull { it.trueData } } }
|
||||
.flatMapSingle { list -> RxUtils.querySingle { list.mapNotNull { it.trueData } } }
|
||||
.map { list -> list.asSequence().map { Pair(it.id, it) }.toMap() }
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe { repositories = it }
|
||||
@ -89,8 +85,6 @@ class LatestFragment : MainNavFragmentX(), CursorOwner.Callback {
|
||||
super.onDestroyView()
|
||||
|
||||
mainActivityX.detachCursorOwner(this)
|
||||
repositoriesDisposable?.dispose()
|
||||
repositoriesDisposable = null
|
||||
}
|
||||
|
||||
override fun onCursorData(request: CursorOwner.Request, cursor: Cursor?) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user