Skip to content

Commit

Permalink
feat #725: PokeFriend를 isAnonymous에 따른 분기처리추가
Browse files Browse the repository at this point in the history
  • Loading branch information
chattymin committed Jun 3, 2024
1 parent 52117e4 commit 1609210
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ import org.sopt.official.common.util.serializableExtra
import org.sopt.official.common.util.ui.setVisible
import org.sopt.official.common.util.viewBinding
import org.sopt.official.domain.poke.entity.PokeFriendOfFriendList
import org.sopt.official.domain.poke.entity.PokeRandomUserList
import org.sopt.official.domain.poke.entity.PokeUser
import org.sopt.official.domain.poke.type.PokeMessageType
import org.sopt.official.feature.poke.R
Expand Down Expand Up @@ -86,9 +87,9 @@ class PokeMainActivity : AppCompatActivity() {
}

private fun initData() {
viewModel.getPokeMe()
// viewModel.getPokeMe()
viewModel.getPokeFriend()
viewModel.getPokeFriendOfFriend()
// viewModel.getPokeFriendOfFriend()
}

private fun initListener() {
Expand Down Expand Up @@ -182,9 +183,9 @@ class PokeMainActivity : AppCompatActivity() {
.onEach {
when (it) {
is UiState.Loading -> "Loading"
is UiState.Success<List<PokeFriendOfFriendList>> -> {
setPokeFriendOfFriendVisible(it.data)
initPokeFriendOfFriendView(it.data)
is UiState.Success<List<PokeRandomUserList.PokeRandomUsers>> -> {
// setPokeFriendOfFriendVisible(it.data)
// initPokeFriendOfFriendView(it.data)
}

is UiState.ApiError -> showPokeToast(getString(R.string.toast_poke_error))
Expand Down Expand Up @@ -294,12 +295,18 @@ class PokeMainActivity : AppCompatActivity() {
)
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.poke_user_profile_url, pokeFriendItem.playgroundId))))
}
pokeFriendItem.profileImage.takeIf { it.isNotEmpty() }?.let {
imgUserProfilePokeMyFriend.load(it) { transformations(CircleCropTransformation()) }
} ?: imgUserProfilePokeMyFriend.setImageResource(R.drawable.ic_empty_profile)

if (pokeFriendItem.isAnonymous) {
imgUserProfilePokeMyFriend.load(pokeFriendItem.anonymousImage) { transformations(CircleCropTransformation()) }
tvUserNamePokeMyFriend.text = pokeFriendItem.anonymousName
} else {
pokeFriendItem.profileImage.takeIf { it.isNotEmpty() }?.let {
imgUserProfilePokeMyFriend.load(it) { transformations(CircleCropTransformation()) }
} ?: imgUserProfilePokeMyFriend.setImageResource(R.drawable.ic_empty_profile)
tvUserNamePokeMyFriend.text = pokeFriendItem.name
tvUserGenerationPokeMyFriend.text = "${pokeFriendItem.generation}${pokeFriendItem.part}"
}
imgUserProfilePokeMyFriendOutline.setRelationStrokeColor(pokeFriendItem.relationName)
tvUserNamePokeMyFriend.text = pokeFriendItem.name
tvUserGenerationPokeMyFriend.text = "${pokeFriendItem.generation}${pokeFriendItem.part}"
tvCountPokeMyFriend.text = "${pokeFriendItem.pokeNum}"
btnPokeMyFriend.isEnabled = !pokeFriendItem.isAlreadyPoke
btnPokeMyFriend.setOnClickListener {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,12 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.launch
import org.sopt.official.domain.poke.entity.PokeFriendOfFriendList
import org.sopt.official.domain.poke.entity.PokeRandomUserList
import org.sopt.official.domain.poke.entity.PokeUser
import org.sopt.official.domain.poke.entity.onApiError
import org.sopt.official.domain.poke.entity.onFailure
import org.sopt.official.domain.poke.entity.onSuccess
import org.sopt.official.domain.poke.usecase.GetPokeFriendOfFriendListUseCase
import org.sopt.official.domain.poke.usecase.GetOnboardingPokeUserListUseCase
import org.sopt.official.domain.poke.usecase.GetPokeFriendUseCase
import org.sopt.official.domain.poke.usecase.GetPokeMeUseCase
import org.sopt.official.domain.poke.usecase.PokeUserUseCase
Expand All @@ -45,19 +46,19 @@ import timber.log.Timber

@HiltViewModel
class PokeMainViewModel @Inject constructor(
private val getPokeMeUseCase: GetPokeMeUseCase,
private val getPokeFriendUseCase: GetPokeFriendUseCase,
private val getPokeFriendOfFriendListUseCase: GetPokeFriendOfFriendListUseCase,
private val pokeUserUseCase: PokeUserUseCase,
private val getPokeMeUseCase: GetPokeMeUseCase, // 누가 나를 찔렀어요
private val getPokeFriendUseCase: GetPokeFriendUseCase, // 내 친구를 찔러보세요
private val getOnboardingPokeUserListUseCase: GetOnboardingPokeUserListUseCase, // 내 친구의 친구를 찔러보세요
private val pokeUserUseCase: PokeUserUseCase, // 콕 찌르기
) : ViewModel() {
private val _pokeMeUiState = MutableStateFlow<UiState<PokeUser>>(UiState.Loading)
val pokeMeUiState: StateFlow<UiState<PokeUser>> get() = _pokeMeUiState

private val _pokeFriendUiState = MutableStateFlow<UiState<PokeUser>>(UiState.Loading)
val pokeFriendUiState: StateFlow<UiState<PokeUser>> get() = _pokeFriendUiState

private val _pokeFriendOfFriendUiState = MutableStateFlow<UiState<List<PokeFriendOfFriendList>>>(UiState.Loading)
val pokeFriendOfFriendUiState: StateFlow<UiState<List<PokeFriendOfFriendList>>> get() = _pokeFriendOfFriendUiState
private val _pokeFriendOfFriendUiState = MutableStateFlow<UiState<List<PokeRandomUserList.PokeRandomUsers>>>(UiState.Loading)
val pokeFriendOfFriendUiState: StateFlow<UiState<List<PokeRandomUserList.PokeRandomUsers>>> get() = _pokeFriendOfFriendUiState

private val _pokeUserUiState = MutableStateFlow<UiState<PokeUser>>(UiState.Loading)
val pokeUserUiState: StateFlow<UiState<PokeUser>> get() = _pokeUserUiState
Expand Down Expand Up @@ -99,9 +100,9 @@ class PokeMainViewModel @Inject constructor(
fun getPokeFriendOfFriend() {
viewModelScope.launch {
_pokeFriendOfFriendUiState.emit(UiState.Loading)
getPokeFriendOfFriendListUseCase.invoke()
getOnboardingPokeUserListUseCase.invoke(randomType = "ALL", size = 6)
.onSuccess {
_pokeFriendOfFriendUiState.emit(UiState.Success(it))
_pokeFriendOfFriendUiState.emit(UiState.Success(it.randomInfoList))
}
.onApiError { statusCode, responseMessage ->
_pokeFriendOfFriendUiState.emit(UiState.ApiError(statusCode, responseMessage))
Expand Down Expand Up @@ -157,10 +158,10 @@ class PokeMainViewModel @Inject constructor(
)
}
}
if (_pokeFriendOfFriendUiState.value is UiState.Success<List<PokeFriendOfFriendList>>) {
val oldData = (_pokeFriendOfFriendUiState.value as UiState.Success<List<PokeFriendOfFriendList>>).data
if (_pokeFriendOfFriendUiState.value is UiState.Success<List<PokeRandomUserList.PokeRandomUsers>>) {
val oldData = (_pokeFriendOfFriendUiState.value as UiState.Success<List<PokeRandomUserList.PokeRandomUsers>>).data
for (friend in oldData) {
friend.friendList.find { it.userId == userId }?.isAlreadyPoke = true
friend.userInfoList.find { it.userId == userId }?.isAlreadyPoke = true
}
_pokeFriendOfFriendUiState.emit(UiState.Loading)
_pokeFriendOfFriendUiState.emit(UiState.Success(oldData))
Expand Down

0 comments on commit 1609210

Please sign in to comment.