diff --git a/app/src/main/java/com/egobook/app/ui/shop/StoreFragment.kt b/app/src/main/java/com/egobook/app/ui/shop/StoreFragment.kt index ef47b353..0dedca7c 100644 --- a/app/src/main/java/com/egobook/app/ui/shop/StoreFragment.kt +++ b/app/src/main/java/com/egobook/app/ui/shop/StoreFragment.kt @@ -88,6 +88,13 @@ class StoreFragment: Fragment() { viewModel.loadEquippedItems() } + lifecycleScope.launch { + viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) { + viewModel.ink.collect { ink -> + binding.tvInk.text = ink.value.toString() + } + } + } viewLifecycleOwner.lifecycleScope.launch { diff --git a/app/src/main/java/com/egobook/app/ui/shop/StoreViewModel.kt b/app/src/main/java/com/egobook/app/ui/shop/StoreViewModel.kt index feedbbdf..316b1abe 100644 --- a/app/src/main/java/com/egobook/app/ui/shop/StoreViewModel.kt +++ b/app/src/main/java/com/egobook/app/ui/shop/StoreViewModel.kt @@ -3,6 +3,8 @@ package com.egobook.app.ui.shop import android.util.Log import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope +import com.egobook.app.ui.home.repository.UserRepository +import com.egobook.app.ui.home.user.Ink import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow @@ -22,9 +24,15 @@ data class CustomItemState( ) @HiltViewModel class StoreViewModel @Inject constructor( - private val storeRepository: StoreRepository + private val storeRepository: StoreRepository, + private val userRepository: UserRepository ) : ViewModel() { + init { + loadInk() + } + private val _ink = MutableStateFlow(Ink(0)) + val ink: StateFlow = _ink.asStateFlow() private val _toastEvent = MutableSharedFlow() val toastEvent = _toastEvent.asSharedFlow() private val _equippedItems = MutableStateFlow>(emptyList()) @@ -66,6 +74,13 @@ class StoreViewModel @Inject constructor( } } + fun loadInk() { + viewModelScope.launch { + val user = userRepository.load() + _ink.update { user.ink } + } + } + fun loadEquippedItems() { viewModelScope.launch { _equippedItems.value = storeRepository.loadEquippedItems() @@ -98,6 +113,7 @@ class StoreViewModel @Inject constructor( val purchaseState = storeRepository.purchaseItems(item) if (purchaseState.isSuccess) { loadItems(item.type, true) + loadInk() _toastEvent.emit("구매가 완료되었어요") } else { _toastEvent.emit("잉크가 부족해요") diff --git a/app/src/main/res/layout/fragment_store.xml b/app/src/main/res/layout/fragment_store.xml index 9138f3c8..e7002e55 100644 --- a/app/src/main/res/layout/fragment_store.xml +++ b/app/src/main/res/layout/fragment_store.xml @@ -56,12 +56,12 @@ android:src="@drawable/ink_icon" />