From 1b4b75d75b2c5c1144cde053efa10f76d1bd4e40 Mon Sep 17 00:00:00 2001 From: Abdelilah El Aissaoui Date: Sat, 14 Sep 2024 15:04:24 +0200 Subject: [PATCH] Refactored RepositoryOpenViewModel to fix file system watch not working --- src/main/kotlin/com/jetpackduba/gitnuro/ui/AppTab.kt | 2 +- .../com/jetpackduba/gitnuro/viewmodels/TabViewModel.kt | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/AppTab.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/AppTab.kt index f486bb2..82d7caa 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/AppTab.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/AppTab.kt @@ -94,7 +94,7 @@ fun AppTab( is RepositorySelectionStatus.Open -> { RepositoryOpenPage( - repositoryOpenViewModel = tabViewModel.repositoryOpenViewModel, + repositoryOpenViewModel = repositorySelectionStatusValue.viewModel, onShowSettingsDialog = { showSettingsDialog = true }, onShowCloneDialog = { showCloneDialog = true }, ) diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/TabViewModel.kt b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/TabViewModel.kt index f91e11e..ba592ec 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/TabViewModel.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/TabViewModel.kt @@ -75,8 +75,6 @@ class TabViewModel @Inject constructor( val errorsManager: ErrorsManager = tabState.errorsManager val selectedItem: StateFlow = tabState.selectedItem - val repositoryOpenViewModel: RepositoryOpenViewModel = repositoryOpenViewModelProvider.get() - private val _repositorySelectionStatus = MutableStateFlow(RepositorySelectionStatus.None) val repositorySelectionStatus: StateFlow get() = _repositorySelectionStatus @@ -115,7 +113,6 @@ class TabViewModel @Inject constructor( } repository.workTree // test if repository is valid - _repositorySelectionStatus.value = RepositorySelectionStatus.Open(repository) val path = if (directory.name == ".git") { directory.parent @@ -126,6 +123,9 @@ class TabViewModel @Inject constructor( val git = Git(repository) tabState.initGit(git) + + _repositorySelectionStatus.value = RepositorySelectionStatus.Open(repositoryOpenViewModelProvider.get()) + tabState.refreshData(RefreshType.ALL_DATA) } catch (ex: Exception) { onRepositoryChanged(null) @@ -196,5 +196,5 @@ class TabViewModel @Inject constructor( sealed class RepositorySelectionStatus { data object None : RepositorySelectionStatus() data class Opening(val path: String) : RepositorySelectionStatus() - data class Open(val repository: Repository) : RepositorySelectionStatus() + data class Open(val viewModel: RepositoryOpenViewModel) : RepositorySelectionStatus() } \ No newline at end of file