Add intrumented testing and a small fix for nav from shortcuts.

This commit is contained in:
Alex Hart
2026-05-08 14:44:12 -03:00
committed by Michelle Tang
parent 43a1c93961
commit 2efc115410
2 changed files with 865 additions and 17 deletions
@@ -144,21 +144,7 @@ class MainNavigationViewModel(
viewModelScope.launch {
internalDetailLocation.collect { location ->
when (location) {
is MainNavigationDetailLocation.Conversation -> {
internalActiveChatThreadId.update { location.controllerKey }
}
is MainNavigationDetailLocation.CallLinkDetails -> {
internalActiveCallId.update { location.controllerKey }
}
is MainNavigationDetailLocation.Calls -> {
internalActiveCallId.update { location.controllerKey }
}
else -> Unit
}
updateActiveStateForLocation(location)
}
}
}
@@ -187,8 +173,9 @@ class MainNavigationViewModel(
earlyFocusedPaneRequested = null
earlyNavigationDetailLocationRequested?.let {
goTo(it)
earlyNavigationDetailLocationRequested?.let { detail ->
lockPaneToSecondary = false
updateActiveStateForLocation(detail)
}
return this.navigator!!
@@ -238,6 +225,24 @@ class MainNavigationViewModel(
}
}
private fun updateActiveStateForLocation(location: MainNavigationDetailLocation) {
when (location) {
is MainNavigationDetailLocation.Conversation -> {
internalActiveChatThreadId.update { location.controllerKey }
}
is MainNavigationDetailLocation.CallLinkDetails -> {
internalActiveCallId.update { location.controllerKey }
}
is MainNavigationDetailLocation.Calls -> {
internalActiveCallId.update { location.controllerKey }
}
else -> Unit
}
}
private fun goToConversation(location: MainNavigationDetailLocation.Conversation) = viewModelScope.launch {
val args = location.conversationArgs
val liveRecipient = Recipient.live(args.recipientId)