From 81c656bb87052e2d902b3dbbd099f8207fe31da5 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Wed, 22 Nov 2023 13:11:15 +0200 Subject: [PATCH] Cancel refresh work on switch user session remove --- .../futo/circles/auth/feature/log_in/LogInViewModel.kt | 9 ++++++--- .../circles/auth/feature/token/RefreshTokenManager.kt | 6 +++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/auth/src/main/java/org/futo/circles/auth/feature/log_in/LogInViewModel.kt b/auth/src/main/java/org/futo/circles/auth/feature/log_in/LogInViewModel.kt index fe4aecd2c..9c50802a2 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/log_in/LogInViewModel.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/log_in/LogInViewModel.kt @@ -3,16 +3,18 @@ package org.futo.circles.auth.feature.log_in import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import dagger.hilt.android.lifecycle.HiltViewModel -import org.futo.circles.core.extensions.Response -import org.futo.circles.core.extensions.launchBg import org.futo.circles.auth.feature.log_in.switch_user.SwitchUserDataSource +import org.futo.circles.auth.feature.token.RefreshTokenManager import org.futo.circles.core.base.SingleEventLiveData +import org.futo.circles.core.extensions.Response +import org.futo.circles.core.extensions.launchBg import javax.inject.Inject @HiltViewModel class LogInViewModel @Inject constructor( private val loginDataSource: LoginDataSource, - private val switchUserDataSource: SwitchUserDataSource + private val switchUserDataSource: SwitchUserDataSource, + private val refreshTokenManager: RefreshTokenManager ) : ViewModel() { val loginResultLiveData = SingleEventLiveData<Response<Unit>>() @@ -28,6 +30,7 @@ class LogInViewModel @Inject constructor( fun removeSwitchUser(id: String) { launchBg { switchUserDataSource.removeSwitchUser(id) + refreshTokenManager.cancelTokenRefreshingById(id) switchUsersLiveData.postValue(switchUserDataSource.getSwitchUsersList()) } } diff --git a/auth/src/main/java/org/futo/circles/auth/feature/token/RefreshTokenManager.kt b/auth/src/main/java/org/futo/circles/auth/feature/token/RefreshTokenManager.kt index 743c4f6b9..ef14c6f28 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/token/RefreshTokenManager.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/token/RefreshTokenManager.kt @@ -51,7 +51,11 @@ class RefreshTokenManager @Inject constructor( fun cancelTokenRefreshing(session: Session) { val credentials = session.sessionParams.credentials - WorkManager.getInstance(context).cancelUniqueWork(credentials.sessionId()) + cancelTokenRefreshingById(credentials.sessionId()) + } + + fun cancelTokenRefreshingById(credentialsSessionId: String) { + WorkManager.getInstance(context).cancelUniqueWork(credentialsSessionId) } } \ No newline at end of file -- GitLab