diff --git a/core/data/src/main/java/com/android/mediproject/core/data/user/UserInfoRepositoryImpl.kt b/core/data/src/main/java/com/android/mediproject/core/data/user/UserInfoRepositoryImpl.kt index 2048399c3..73bec257c 100644 --- a/core/data/src/main/java/com/android/mediproject/core/data/user/UserInfoRepositoryImpl.kt +++ b/core/data/src/main/java/com/android/mediproject/core/data/user/UserInfoRepositoryImpl.kt @@ -4,21 +4,17 @@ import com.android.mediproject.core.datastore.AppDataStore import com.android.mediproject.core.model.user.AccountState import com.android.mediproject.core.network.datasource.user.UserInfoDataSource import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.channelFlow import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.zip -import javax.inject.Inject -import javax.inject.Singleton -@Singleton -class UserInfoRepositoryImpl @Inject constructor( +class UserInfoRepositoryImpl( private val userInfoDataSource: UserInfoDataSource, private val appDataStore: AppDataStore, ) : UserInfoRepository { private val _myAccountInfo = MutableStateFlow(AccountState.Unknown) - - override val myAccountInfo get() = _myAccountInfo as StateFlow + override val myAccountInfo = _myAccountInfo.asStateFlow() override suspend fun updateMyAccountInfo(accountState: AccountState) { _myAccountInfo.value = accountState @@ -65,5 +61,4 @@ class UserInfoRepositoryImpl @Inject constructor( trySend(it) } } - } diff --git a/core/domain/src/main/java/com/android/mediproject/core/domain/SignUseCase.kt b/core/domain/src/main/java/com/android/mediproject/core/domain/SignUseCase.kt index 9e1a69a3d..e0ed79f41 100644 --- a/core/domain/src/main/java/com/android/mediproject/core/domain/SignUseCase.kt +++ b/core/domain/src/main/java/com/android/mediproject/core/domain/SignUseCase.kt @@ -5,9 +5,7 @@ import com.android.mediproject.core.data.user.UserInfoRepository import com.android.mediproject.core.model.sign.LoginParameter import com.android.mediproject.core.model.sign.SignUpParameter import com.android.mediproject.core.model.user.AccountState -import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.channelFlow -import kotlinx.coroutines.flow.collectLatest +import kotlinx.coroutines.flow.map import javax.inject.Inject import javax.inject.Singleton @@ -15,15 +13,13 @@ import javax.inject.Singleton class SignUseCase @Inject constructor( private val signRepository: SignRepository, private val userInfoRepository: UserInfoRepository, ) { - suspend fun login(loginParameter: LoginParameter): Result = signRepository.login(loginParameter) + suspend fun login(loginParameter: LoginParameter) = signRepository.login(loginParameter) suspend fun signUp(signUpParameter: SignUpParameter): Result = signRepository.signUp(signUpParameter) suspend fun signOut() = signRepository.signOut() - val savedEmail: Flow = channelFlow { - userInfoRepository.myAccountInfo.collectLatest { - trySend(if (it is AccountState.SignedIn) it.email else "") - } + val savedEmail = userInfoRepository.myAccountInfo.map { + if (it is AccountState.SignedIn) it.email else "" } }