Skip to content

Commit

Permalink
#70 Simplify handling trakt login status
Browse files Browse the repository at this point in the history
  • Loading branch information
moallemi committed Jun 9, 2024
1 parent ff486c7 commit f74d813
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 27 deletions.
Original file line number Diff line number Diff line change
@@ -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<TraktAuthState>
suspend operator fun invoke(): Flow<Boolean>
}
Original file line number Diff line number Diff line change
@@ -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<TraktAuthState> =
traktAuthLocalSource.tokens.map {
if (it == null) {
SignedOut
} else {
LoggedIn
}
}

override suspend fun invoke(): Flow<Boolean> =
traktAuthRepository.isLoggedIn
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -23,7 +22,7 @@ class TraktLoginViewModel @Inject constructor(
private val _loginState: MutableStateFlow<LoginState> = MutableStateFlow(value = LoginState.Initial)
val loginState = _loginState.asStateFlow()

private val _traktState: MutableStateFlow<TraktAuthState> = MutableStateFlow(value = TraktAuthState.Initial)
private val _traktState: MutableStateFlow<Boolean> = MutableStateFlow(false)
val traktState = _traktState.asStateFlow()

init {
Expand Down

0 comments on commit f74d813

Please sign in to comment.