From 9349d28bf54bf0991d72b1289d15054cbab3f4f2 Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 5 Mar 2025 09:31:54 +0200 Subject: [PATCH] [MS-923] adding internal counter for the amount of loaded candidates in MatchViewModel. This way the new state does need to access old state for update, and no longer exhausts resources to send updates to the LiveData observer --- .../main/java/com/simprints/matcher/screen/MatchViewModel.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/feature/matcher/src/main/java/com/simprints/matcher/screen/MatchViewModel.kt b/feature/matcher/src/main/java/com/simprints/matcher/screen/MatchViewModel.kt index 8c428a7881..6d440d371e 100644 --- a/feature/matcher/src/main/java/com/simprints/matcher/screen/MatchViewModel.kt +++ b/feature/matcher/src/main/java/com/simprints/matcher/screen/MatchViewModel.kt @@ -34,6 +34,7 @@ internal class MatchViewModel @Inject constructor( ) : ViewModel() { var isInitialized = false private set + private var candidatesLoaded = 0 var shouldCheckPermission: Boolean = true @@ -55,11 +56,13 @@ internal class MatchViewModel @Inject constructor( else -> fingerprintMatcher } val project = configManager.getProject(authStore.signedInProjectId) + candidatesLoaded = 0 matcherUseCase(params, project).collect { matcherState -> when (matcherState) { MatcherUseCase.MatcherState.CandidateLoaded -> { (_matchState.value as? MatchState.LoadingCandidates)?.let { currentState -> - _matchState.postValue(currentState.copy(loaded = currentState.loaded + 1)) + candidatesLoaded++ + _matchState.postValue(currentState.copy(loaded = candidatesLoaded)) } }