diff --git a/src/main/kotlin/com/looker/droidify/ui/fragments/PrefsRepositoriesFragment.kt b/src/main/kotlin/com/looker/droidify/ui/fragments/PrefsRepositoriesFragment.kt index 3c6dce35..1a026bd5 100644 --- a/src/main/kotlin/com/looker/droidify/ui/fragments/PrefsRepositoriesFragment.kt +++ b/src/main/kotlin/com/looker/droidify/ui/fragments/PrefsRepositoriesFragment.kt @@ -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 -> diff --git a/src/main/kotlin/com/looker/droidify/ui/viewmodels/RepositoriesViewModelX.kt b/src/main/kotlin/com/looker/droidify/ui/viewmodels/RepositoriesViewModelX.kt index 3f4da5ce..ab846412 100644 --- a/src/main/kotlin/com/looker/droidify/ui/viewmodels/RepositoriesViewModelX.kt +++ b/src/main/kotlin/com/looker/droidify/ui/viewmodels/RepositoriesViewModelX.kt @@ -8,10 +8,10 @@ import com.looker.droidify.database.entity.Repository class RepositoriesViewModelX(val db: DatabaseX) : ViewModel() { - val productsList = MediatorLiveData>() + val repositories = MediatorLiveData>() init { - productsList.addSource(db.repositoryDao.allLive, productsList::setValue) + repositories.addSource(db.repositoryDao.allLive, repositories::setValue) } class Factory(val db: DatabaseX) : ViewModelProvider.Factory {