From 818f225ad630d5db65391e13fe512d5e1a3a7ab1 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Mon, 19 Dec 2022 14:36:58 +0200 Subject: [PATCH] Add switchToSessionWithId logic --- .../matrix/android/sdk/api/auth/AuthenticationService.kt | 5 +++++ .../org/matrix/android/sdk/internal/SessionManager.kt | 9 +++++++-- .../sdk/internal/auth/DefaultAuthenticationService.kt | 5 +++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/AuthenticationService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/AuthenticationService.kt index 57764223..05fd2b6f 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/AuthenticationService.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/AuthenticationService.kt @@ -152,6 +152,11 @@ interface AuthenticationService { deviceId: String? = null ): Session + /** + * Added for switch user + */ + suspend fun switchToSessionWithId(id: String) + /** * Added for switch user */ diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/SessionManager.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/SessionManager.kt index 997a8f36..52b76dc3 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/SessionManager.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/SessionManager.kt @@ -74,10 +74,15 @@ internal class SessionManager @Inject constructor( } //Added for switch user - fun getAllSessionParams(): List<SessionParams> { - return sessionParamsStore.getAll() + suspend fun setActiveSessionAsLast(sessionId: String) { + val sessionParams = sessionParamsStore.get(sessionId) ?: return + sessionParamsStore.delete(sessionId) + sessionParamsStore.save(sessionParams) } + //Added for switch user + fun getAllSessionParams(): List<SessionParams> = sessionParamsStore.getAll() + //Added for switch user suspend fun removeSession(sessionId: String) { sessionComponents.remove(sessionId) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/DefaultAuthenticationService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/DefaultAuthenticationService.kt index dffe35b1..bb23b0c9 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/DefaultAuthenticationService.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/DefaultAuthenticationService.kt @@ -487,6 +487,11 @@ internal class DefaultAuthenticationService @Inject constructor( } } + //Added for switch user + override suspend fun switchToSessionWithId(id: String) { + sessionManager.setActiveSessionAsLast(id) + } + //Added for switch user override fun getAllAuthSessionsParams(): List<SessionParams> = sessionManager.getAllSessionParams() -- GitLab