From f74d813fb93472bc4983bd3667844cd66ef27b17 Mon Sep 17 00:00:00 2001 From: Reza Moallemi Date: Sun, 9 Jun 2024 16:24:35 -0700 Subject: [PATCH] #70 Simplify handling trakt login status --- .../trakt/auth/GetTraktAuthStateUseCase.kt | 3 +-- .../auth/impl/GetTraktAuthStateUseCaseImpl.kt | 19 +++++-------------- .../domain/trakt/auth/model/TraktAuthState.kt | 7 ------- .../feature/settings/SettingsViewModel.kt | 3 +-- .../trakt/login/TraktLoginViewModel.kt | 3 +-- 5 files changed, 8 insertions(+), 27 deletions(-) delete mode 100644 domain/trakt/auth/src/main/java/io/filmtime/domain/trakt/auth/model/TraktAuthState.kt diff --git a/domain/trakt/auth/src/main/java/io/filmtime/domain/trakt/auth/GetTraktAuthStateUseCase.kt b/domain/trakt/auth/src/main/java/io/filmtime/domain/trakt/auth/GetTraktAuthStateUseCase.kt index 7947465f..dba5e07c 100644 --- a/domain/trakt/auth/src/main/java/io/filmtime/domain/trakt/auth/GetTraktAuthStateUseCase.kt +++ b/domain/trakt/auth/src/main/java/io/filmtime/domain/trakt/auth/GetTraktAuthStateUseCase.kt @@ -1,9 +1,8 @@ package io.filmtime.domain.trakt.auth -import io.filmtime.domain.trakt.auth.model.TraktAuthState import kotlinx.coroutines.flow.Flow interface GetTraktAuthStateUseCase { - suspend operator fun invoke(): Flow + suspend operator fun invoke(): Flow } diff --git a/domain/trakt/auth/src/main/java/io/filmtime/domain/trakt/auth/impl/GetTraktAuthStateUseCaseImpl.kt b/domain/trakt/auth/src/main/java/io/filmtime/domain/trakt/auth/impl/GetTraktAuthStateUseCaseImpl.kt index 03dfc218..520fc2bb 100644 --- a/domain/trakt/auth/src/main/java/io/filmtime/domain/trakt/auth/impl/GetTraktAuthStateUseCaseImpl.kt +++ b/domain/trakt/auth/src/main/java/io/filmtime/domain/trakt/auth/impl/GetTraktAuthStateUseCaseImpl.kt @@ -1,23 +1,14 @@ package io.filmtime.domain.trakt.auth.impl -import io.filmtime.data.storage.trakt.TraktAuthLocalSource +import io.filmtime.data.trakt.auth.TraktAuthRepository import io.filmtime.domain.trakt.auth.GetTraktAuthStateUseCase -import io.filmtime.domain.trakt.auth.model.TraktAuthState -import io.filmtime.domain.trakt.auth.model.TraktAuthState.LoggedIn -import io.filmtime.domain.trakt.auth.model.TraktAuthState.SignedOut import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.map import javax.inject.Inject internal class GetTraktAuthStateUseCaseImpl @Inject constructor( - private val traktAuthLocalSource: TraktAuthLocalSource, + private val traktAuthRepository: TraktAuthRepository, ) : GetTraktAuthStateUseCase { - override suspend fun invoke(): Flow = - traktAuthLocalSource.tokens.map { - if (it == null) { - SignedOut - } else { - LoggedIn - } - } + + override suspend fun invoke(): Flow = + traktAuthRepository.isLoggedIn } diff --git a/domain/trakt/auth/src/main/java/io/filmtime/domain/trakt/auth/model/TraktAuthState.kt b/domain/trakt/auth/src/main/java/io/filmtime/domain/trakt/auth/model/TraktAuthState.kt deleted file mode 100644 index deea564e..00000000 --- a/domain/trakt/auth/src/main/java/io/filmtime/domain/trakt/auth/model/TraktAuthState.kt +++ /dev/null @@ -1,7 +0,0 @@ -package io.filmtime.domain.trakt.auth.model - -sealed class TraktAuthState { - data object Initial : TraktAuthState() - data object LoggedIn : TraktAuthState() - data object SignedOut : TraktAuthState() -} diff --git a/feature/settings/src/main/java/io/filmtime/feature/settings/SettingsViewModel.kt b/feature/settings/src/main/java/io/filmtime/feature/settings/SettingsViewModel.kt index 4b54b8e9..b980ea75 100644 --- a/feature/settings/src/main/java/io/filmtime/feature/settings/SettingsViewModel.kt +++ b/feature/settings/src/main/java/io/filmtime/feature/settings/SettingsViewModel.kt @@ -5,7 +5,6 @@ import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel import io.filmtime.domain.trakt.auth.GetTraktAuthStateUseCase import io.filmtime.domain.trakt.auth.LogoutTraktUseCase -import io.filmtime.domain.trakt.auth.model.TraktAuthState import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.collect @@ -30,7 +29,7 @@ class SettingsViewModel @Inject constructor( private fun observeTraktState() = viewModelScope.launch { getTraktAuthState() .onEach { state -> - _state.update { it.copy(isTraktLoggedIn = state == TraktAuthState.LoggedIn) } + _state.update { it.copy(isTraktLoggedIn = state) } } .collect() } diff --git a/feature/trakt-login/src/main/java/io/filmtime/feature/trakt/login/TraktLoginViewModel.kt b/feature/trakt-login/src/main/java/io/filmtime/feature/trakt/login/TraktLoginViewModel.kt index b6684f6c..ce96c64e 100644 --- a/feature/trakt-login/src/main/java/io/filmtime/feature/trakt/login/TraktLoginViewModel.kt +++ b/feature/trakt-login/src/main/java/io/filmtime/feature/trakt/login/TraktLoginViewModel.kt @@ -7,7 +7,6 @@ import io.filmtime.data.model.GeneralError import io.filmtime.data.model.Result import io.filmtime.domain.trakt.auth.GetTraktAccessTokenUseCase import io.filmtime.domain.trakt.auth.GetTraktAuthStateUseCase -import io.filmtime.domain.trakt.auth.model.TraktAuthState import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update @@ -23,7 +22,7 @@ class TraktLoginViewModel @Inject constructor( private val _loginState: MutableStateFlow = MutableStateFlow(value = LoginState.Initial) val loginState = _loginState.asStateFlow() - private val _traktState: MutableStateFlow = MutableStateFlow(value = TraktAuthState.Initial) + private val _traktState: MutableStateFlow = MutableStateFlow(false) val traktState = _traktState.asStateFlow() init {