mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-23 11:22:12 +00:00
Fix: Calling the data repository with the real id
This commit is contained in:
parent
814052d821
commit
9e022d477d
@ -183,7 +183,7 @@ class MainApplication : Application(), ImageLoaderFactory {
|
||||
}
|
||||
|
||||
private fun forceSyncAll() {
|
||||
db.repositoryDao.all.mapNotNull { it.data }.forEach {
|
||||
db.repositoryDao.all.mapNotNull { it.trueData }.forEach {
|
||||
if (it.lastModified.isNotEmpty() || it.entityTag.isNotEmpty()) {
|
||||
db.repositoryDao.put(it.copy(lastModified = "", entityTag = ""))
|
||||
}
|
||||
|
@ -21,6 +21,9 @@ class Repository {
|
||||
@ColumnInfo(typeAffinity = ColumnInfo.BLOB)
|
||||
var data: Repository? = null
|
||||
|
||||
val trueData: Repository?
|
||||
get() = data?.copy(id = id)
|
||||
|
||||
class IdAndDeleted {
|
||||
@ColumnInfo(name = "_id")
|
||||
var id = 0L
|
||||
|
@ -153,7 +153,7 @@ class EditRepositoryFragment() : ScreenFragment() {
|
||||
}
|
||||
|
||||
if (savedInstanceState == null) {
|
||||
val repository = repositoryId?.let { screenActivity.db.repositoryDao.get(it)?.data }
|
||||
val repository = repositoryId?.let { screenActivity.db.repositoryDao.get(it)?.trueData }
|
||||
if (repository == null) {
|
||||
val clipboardManager =
|
||||
requireContext().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||
@ -232,7 +232,7 @@ class EditRepositoryFragment() : ScreenFragment() {
|
||||
}
|
||||
|
||||
lifecycleScope.launch {
|
||||
val list = screenActivity.db.repositoryDao.all.mapNotNull { it.data }
|
||||
val list = screenActivity.db.repositoryDao.all.mapNotNull { it.trueData }
|
||||
takenAddresses = list.asSequence().filter { it.id != repositoryId }
|
||||
.flatMap { (it.mirrors + it.address).asSequence() }
|
||||
.map { it.withoutKnownPath }.toSet()
|
||||
@ -448,7 +448,7 @@ class EditRepositoryFragment() : ScreenFragment() {
|
||||
MessageDialog(MessageDialog.Message.CantEditSyncing).show(childFragmentManager)
|
||||
invalidateState()
|
||||
} else {
|
||||
val repository = repositoryId?.let { screenActivity.db.repositoryDao.get(it)?.data }
|
||||
val repository = repositoryId?.let { screenActivity.db.repositoryDao.get(it)?.trueData }
|
||||
?.edit(address, fingerprint, authentication)
|
||||
?: Repository.newRepository(address, fingerprint, authentication)
|
||||
val changedRepository = screenActivity.db.repositoryDao.put(repository)
|
||||
|
@ -98,7 +98,7 @@ class RepositoryFragment() : ScreenFragment() {
|
||||
}
|
||||
|
||||
private fun updateRepositoryView() {
|
||||
val repository = screenActivity.db.repositoryDao.get(repositoryId)?.data
|
||||
val repository = screenActivity.db.repositoryDao.get(repositoryId)?.trueData
|
||||
val layout = layout!!
|
||||
layout.removeAllViews()
|
||||
if (repository == null) {
|
||||
|
@ -143,7 +143,7 @@ class ScreenshotsFragment() : DialogFragment() {
|
||||
.map { it ->
|
||||
Pair(
|
||||
it.find { it.repositoryId == repositoryId },
|
||||
db.repositoryDao.get(repositoryId)?.data
|
||||
db.repositoryDao.get(repositoryId)?.trueData
|
||||
)
|
||||
}
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
|
@ -247,7 +247,7 @@ class TabsFragment : ScreenFragment() {
|
||||
repositoriesDisposable = Observable.just(Unit)
|
||||
//.concatWith(Database.observable(Database.Subject.Repositories)) // TODO have to be replaced like whole rxJava
|
||||
.observeOn(Schedulers.io())
|
||||
.flatMapSingle { RxUtils.querySingle { screenActivity.db.repositoryDao.all.mapNotNull { it.data } } }
|
||||
.flatMapSingle { RxUtils.querySingle { screenActivity.db.repositoryDao.all.mapNotNull { it.trueData } } }
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe { it ->
|
||||
setSectionsAndUpdate(null, it.asSequence().filter { it.enabled }
|
||||
|
@ -96,9 +96,8 @@ class SyncService : ConnectionService<SyncService.Binder>() {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO fix sync (better management of repositories' ids
|
||||
fun sync(request: SyncRequest) {
|
||||
val ids = db.repositoryDao.all.mapNotNull { it.data }
|
||||
val ids = db.repositoryDao.all.mapNotNull { it.trueData }
|
||||
.asSequence().filter { it.enabled }.map { it.id }.toList()
|
||||
sync(ids, request)
|
||||
}
|
||||
@ -143,7 +142,7 @@ class SyncService : ConnectionService<SyncService.Binder>() {
|
||||
}
|
||||
|
||||
fun deleteRepository(repositoryId: Long): Boolean {
|
||||
val repository = db.repositoryDao.get(repositoryId)?.data
|
||||
val repository = db.repositoryDao.get(repositoryId)?.trueData
|
||||
return repository != null && run {
|
||||
setEnabled(repository, false)
|
||||
db.repositoryDao.markAsDeleted(repository.id)
|
||||
@ -331,7 +330,7 @@ class SyncService : ConnectionService<SyncService.Binder>() {
|
||||
if (currentTask == null) {
|
||||
if (tasks.isNotEmpty()) {
|
||||
val task = tasks.removeAt(0)
|
||||
val repository = db.repositoryDao.get(task.repositoryId)?.data
|
||||
val repository = db.repositoryDao.get(task.repositoryId)?.trueData
|
||||
if (repository != null && repository.enabled) {
|
||||
val lastStarted = started
|
||||
val newStarted =
|
||||
|
@ -138,7 +138,7 @@ class AppDetailFragment() : ScreenFragment(), AppDetailAdapter.Callbacks {
|
||||
}
|
||||
.flatMapSingle { products ->
|
||||
RxUtils
|
||||
.querySingle { screenActivity.db.repositoryDao.all.mapNotNull { it.data } }
|
||||
.querySingle { screenActivity.db.repositoryDao.all.mapNotNull { it.trueData } }
|
||||
.map { it ->
|
||||
it.asSequence().map { Pair(it.id, it) }.toMap()
|
||||
.let {
|
||||
|
@ -79,7 +79,7 @@ class AppListFragment() : BaseFragment(), CursorOwner.Callback {
|
||||
repositoriesDisposable = Observable.just(Unit)
|
||||
//.concatWith(Database.observable(Database.Subject.Repositories)) // TODO have to be replaced like whole rxJava
|
||||
.observeOn(Schedulers.io())
|
||||
.flatMapSingle { RxUtils.querySingle { screenActivity.db.repositoryDao.all.mapNotNull { it.data } } }
|
||||
.flatMapSingle { RxUtils.querySingle { screenActivity.db.repositoryDao.all.mapNotNull { it.trueData } } }
|
||||
.map { it.asSequence().map { Pair(it.id, it) }.toMap() }
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe { (recyclerView?.adapter as? AppListAdapter)?.repositories = it }
|
||||
|
@ -61,7 +61,7 @@ class ExploreFragment : MainNavFragmentX(), CursorOwner.Callback {
|
||||
repositoriesDisposable = Observable.just(Unit)
|
||||
//.concatWith(Database.observable(Database.Subject.Repositories)) TODO have to be replaced like whole rxJava
|
||||
.observeOn(Schedulers.io())
|
||||
.flatMapSingle { RxUtils.querySingle { mainActivityX.db.repositoryDao.all.mapNotNull { it.data } } }
|
||||
.flatMapSingle { RxUtils.querySingle { mainActivityX.db.repositoryDao.all.mapNotNull { it.trueData } } }
|
||||
.map { list -> list.asSequence().map { Pair(it.id, it) }.toMap() }
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe { (binding.recyclerView.adapter as? AppListAdapter)?.repositories = it }
|
||||
|
@ -59,7 +59,7 @@ class InstalledFragment : MainNavFragmentX(), CursorOwner.Callback {
|
||||
repositoriesDisposable = Observable.just(Unit)
|
||||
//.concatWith(Database.observable(Database.Subject.Repositories)) TODO have to be replaced like whole rxJava
|
||||
.observeOn(Schedulers.io())
|
||||
.flatMapSingle { RxUtils.querySingle { mainActivityX.db.repositoryDao.all.mapNotNull { it.data } } }
|
||||
.flatMapSingle { RxUtils.querySingle { mainActivityX.db.repositoryDao.all.mapNotNull { it.trueData } } }
|
||||
.map { list -> list.asSequence().map { Pair(it.id, it) }.toMap() }
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe { (binding.recyclerView.adapter as? AppListAdapter)?.repositories = it }
|
||||
|
@ -60,7 +60,7 @@ class LatestFragment : MainNavFragmentX(), CursorOwner.Callback {
|
||||
repositoriesDisposable = Observable.just(Unit)
|
||||
//.concatWith(Database.observable(Database.Subject.Repositories)) TODO have to be replaced like whole rxJava
|
||||
.observeOn(Schedulers.io())
|
||||
.flatMapSingle { RxUtils.querySingle { mainActivityX.db.repositoryDao.all.mapNotNull { it.data } } }
|
||||
.flatMapSingle { RxUtils.querySingle { mainActivityX.db.repositoryDao.all.mapNotNull { it.trueData } } }
|
||||
.map { list -> list.asSequence().map { Pair(it.id, it) }.toMap() }
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe { (binding.recyclerView.adapter as? AppListAdapter)?.repositories = it }
|
||||
|
Loading…
x
Reference in New Issue
Block a user