From b2a0f8f846706ce1324b8682dfc8f082f159022d Mon Sep 17 00:00:00 2001 From: Tomas Timinskas Date: Sun, 18 Feb 2024 15:15:46 -0300 Subject: [PATCH] Force getting relay transport key on launch and restore --- .../concept_repository_dashboard/RepositoryDashboard.kt | 2 +- .../chat/sphinx/feature_repository/SphinxRepository.kt | 8 +++++--- .../java/chat/sphinx/dashboard/ui/DashboardViewModel.kt | 2 +- .../onboard_connecting/ui/OnBoardConnectingViewModel.kt | 2 ++ 4 files changed, 9 insertions(+), 5 deletions(-) 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) } } }