diff --git a/sphinx/application/data/concepts/repositories/concept-repository-dashboard/src/main/java/chat/sphinx/concept_repository_dashboard/RepositoryDashboard.kt b/sphinx/application/data/concepts/repositories/concept-repository-dashboard/src/main/java/chat/sphinx/concept_repository_dashboard/RepositoryDashboard.kt index 51c5ac7d73..cba331ab8a 100644 --- a/sphinx/application/data/concepts/repositories/concept-repository-dashboard/src/main/java/chat/sphinx/concept_repository_dashboard/RepositoryDashboard.kt +++ b/sphinx/application/data/concepts/repositories/concept-repository-dashboard/src/main/java/chat/sphinx/concept_repository_dashboard/RepositoryDashboard.kt @@ -93,7 +93,7 @@ interface RepositoryDashboard { suspend fun didCancelRestore() - fun getAndSaveTransportKey() + fun getAndSaveTransportKey(forceGet: Boolean = false) fun saveTransportKey() fun getOrCreateHMacKey(forceGet: Boolean = false) diff --git a/sphinx/application/data/features/feature-repository/src/main/java/chat/sphinx/feature_repository/SphinxRepository.kt b/sphinx/application/data/features/feature-repository/src/main/java/chat/sphinx/feature_repository/SphinxRepository.kt index 78d7695dc3..abbfdcedab 100644 --- a/sphinx/application/data/features/feature-repository/src/main/java/chat/sphinx/feature_repository/SphinxRepository.kt +++ b/sphinx/application/data/features/feature-repository/src/main/java/chat/sphinx/feature_repository/SphinxRepository.kt @@ -6892,10 +6892,12 @@ abstract class SphinxRepository( } } - override fun getAndSaveTransportKey() { + override fun getAndSaveTransportKey(forceGet: Boolean) { applicationScope.launch(io) { - relayDataHandler.retrieveRelayTransportKey()?.let { - return@launch + if (!forceGet) { + relayDataHandler.retrieveRelayTransportKey()?.let { + return@launch + } } saveTransportKey() } diff --git a/sphinx/screens/dashboard/dashboard/src/main/java/chat/sphinx/dashboard/ui/DashboardViewModel.kt b/sphinx/screens/dashboard/dashboard/src/main/java/chat/sphinx/dashboard/ui/DashboardViewModel.kt index b745f14665..db4520edfb 100644 --- a/sphinx/screens/dashboard/dashboard/src/main/java/chat/sphinx/dashboard/ui/DashboardViewModel.kt +++ b/sphinx/screens/dashboard/dashboard/src/main/java/chat/sphinx/dashboard/ui/DashboardViewModel.kt @@ -169,7 +169,7 @@ internal class DashboardViewModel @Inject constructor( } private fun getRelayKeys() { - repositoryDashboard.getAndSaveTransportKey() + repositoryDashboard.getAndSaveTransportKey(forceGet = true) repositoryDashboard.getOrCreateHMacKey(forceGet = true) } diff --git a/sphinx/screens/onboard/onboard-connecting/src/main/java/chat/sphinx/onboard_connecting/ui/OnBoardConnectingViewModel.kt b/sphinx/screens/onboard/onboard-connecting/src/main/java/chat/sphinx/onboard_connecting/ui/OnBoardConnectingViewModel.kt index 95f32ee5cd..633efd580d 100644 --- a/sphinx/screens/onboard/onboard-connecting/src/main/java/chat/sphinx/onboard_connecting/ui/OnBoardConnectingViewModel.kt +++ b/sphinx/screens/onboard/onboard-connecting/src/main/java/chat/sphinx/onboard_connecting/ui/OnBoardConnectingViewModel.kt @@ -228,6 +228,8 @@ internal class OnBoardConnectingViewModel @Inject constructor( is Response.Success -> { transportKey = RsaPublicKey(loadResponse.value.transport_key.toCharArray()) + + relayDataHandler.persistRelayTransportKey(transportKey) } } }