Refactored RepositoryOpenViewModel to fix file system watch not working

This commit is contained in:
Abdelilah El Aissaoui 2024-09-14 15:04:24 +02:00
parent 8b17d68db4
commit 1b4b75d75b
No known key found for this signature in database
GPG Key ID: 7587FC860F594869
2 changed files with 5 additions and 5 deletions

View File

@ -94,7 +94,7 @@ fun AppTab(
is RepositorySelectionStatus.Open -> { is RepositorySelectionStatus.Open -> {
RepositoryOpenPage( RepositoryOpenPage(
repositoryOpenViewModel = tabViewModel.repositoryOpenViewModel, repositoryOpenViewModel = repositorySelectionStatusValue.viewModel,
onShowSettingsDialog = { showSettingsDialog = true }, onShowSettingsDialog = { showSettingsDialog = true },
onShowCloneDialog = { showCloneDialog = true }, onShowCloneDialog = { showCloneDialog = true },
) )

View File

@ -75,8 +75,6 @@ class TabViewModel @Inject constructor(
val errorsManager: ErrorsManager = tabState.errorsManager val errorsManager: ErrorsManager = tabState.errorsManager
val selectedItem: StateFlow<SelectedItem> = tabState.selectedItem val selectedItem: StateFlow<SelectedItem> = tabState.selectedItem
val repositoryOpenViewModel: RepositoryOpenViewModel = repositoryOpenViewModelProvider.get()
private val _repositorySelectionStatus = MutableStateFlow<RepositorySelectionStatus>(RepositorySelectionStatus.None) private val _repositorySelectionStatus = MutableStateFlow<RepositorySelectionStatus>(RepositorySelectionStatus.None)
val repositorySelectionStatus: StateFlow<RepositorySelectionStatus> val repositorySelectionStatus: StateFlow<RepositorySelectionStatus>
get() = _repositorySelectionStatus get() = _repositorySelectionStatus
@ -115,7 +113,6 @@ class TabViewModel @Inject constructor(
} }
repository.workTree // test if repository is valid repository.workTree // test if repository is valid
_repositorySelectionStatus.value = RepositorySelectionStatus.Open(repository)
val path = if (directory.name == ".git") { val path = if (directory.name == ".git") {
directory.parent directory.parent
@ -126,6 +123,9 @@ class TabViewModel @Inject constructor(
val git = Git(repository) val git = Git(repository)
tabState.initGit(git) tabState.initGit(git)
_repositorySelectionStatus.value = RepositorySelectionStatus.Open(repositoryOpenViewModelProvider.get())
tabState.refreshData(RefreshType.ALL_DATA) tabState.refreshData(RefreshType.ALL_DATA)
} catch (ex: Exception) { } catch (ex: Exception) {
onRepositoryChanged(null) onRepositoryChanged(null)
@ -196,5 +196,5 @@ class TabViewModel @Inject constructor(
sealed class RepositorySelectionStatus { sealed class RepositorySelectionStatus {
data object None : RepositorySelectionStatus() data object None : RepositorySelectionStatus()
data class Opening(val path: String) : RepositorySelectionStatus() data class Opening(val path: String) : RepositorySelectionStatus()
data class Open(val repository: Repository) : RepositorySelectionStatus() data class Open(val viewModel: RepositoryOpenViewModel) : RepositorySelectionStatus()
} }