Add: Syncing enabled repos when edited

This commit is contained in:
machiav3lli 2022-01-27 02:03:24 +01:00
parent 8c2f5011ef
commit a4639aaa63
2 changed files with 12 additions and 3 deletions

View File

@ -78,7 +78,16 @@ class PrefsRepositoriesFragment : BaseNavFragment() {
}
override fun setupLayout() {
viewModel.productsList.observe(requireActivity()) {
viewModel.repositories.observe(requireActivity()) {
// Function: sync when an enabled repo got edited
val enabledList = it.filter { it.enabled == 1 }
reposItemAdapter.adapterItems.filter(RepoItem::isEnabled).forEach { item ->
enabledList.firstOrNull { it.trueData?.id == item.item.id }?.let { repo ->
repo.trueData?.let { data ->
if (data != item.item) syncConnection.binder?.sync(data)
}
}
}
reposItemAdapter.set(
it.mapNotNull { dbRepo ->
dbRepo.trueData?.let { repo ->

View File

@ -8,10 +8,10 @@ import com.looker.droidify.database.entity.Repository
class RepositoriesViewModelX(val db: DatabaseX) : ViewModel() {
val productsList = MediatorLiveData<List<Repository>>()
val repositories = MediatorLiveData<List<Repository>>()
init {
productsList.addSource(db.repositoryDao.allLive, productsList::setValue)
repositories.addSource(db.repositoryDao.allLive, repositories::setValue)
}
class Factory(val db: DatabaseX) : ViewModelProvider.Factory {