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 577642234bb70ab78ced41845662cbc71f2ca723..05fd2b6f68a5038195dd1a81859802a8ffb2d808 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 997a8f36b55a42608c8a45721e2203a115ce1ac1..52b76dc3a30d38a1a3a51616a346bbe578bd71df 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 dffe35b106ed25ca8d7413f9bde9de6fd187e1eb..bb23b0c949028f7b00100bb63d5cd614f00ccf18 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()