From d9170079fa1631e35b8ee929bc60a122922ff4dd Mon Sep 17 00:00:00 2001 From: seoggyui Date: Tue, 23 Aug 2022 15:13:05 +0900 Subject: [PATCH] =?UTF-8?q?#6=20mypage=5Ffragment/=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20:=203=20=EC=9E=91=EC=84=B1=ED=95=9C=20?= =?UTF-8?q?=EB=A6=AC=EB=B7=B0=20=ED=99=94=EB=A9=B4=20=20-=20=EB=82=B4?= =?UTF-8?q?=EA=B0=80=20=EC=9E=91=EC=84=B1=ED=95=9C=20=EB=A6=AC=EB=B7=B0?= =?UTF-8?q?=EA=B0=80=20=EC=97=86=EB=8A=94=20=EA=B2=BD=EC=9A=B0=EC=9D=98=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../di/ui/MainFragmentViewModelModule.kt | 5 ++ .../nonreview/NonReviewFragment.kt | 71 +++++++++++++++++++ .../nonreview/NonReviewViewModel.kt | 20 ++++++ .../main/res/layout/fragment_non_review.xml | 47 ++++++++++++ 4 files changed, 143 insertions(+) create mode 100644 app/src/main/java/com/ftw/hometerview/ui/writtenreview/nonreview/NonReviewFragment.kt create mode 100644 app/src/main/java/com/ftw/hometerview/ui/writtenreview/nonreview/NonReviewViewModel.kt create mode 100644 app/src/main/res/layout/fragment_non_review.xml diff --git a/app/src/main/java/com/ftw/hometerview/di/ui/MainFragmentViewModelModule.kt b/app/src/main/java/com/ftw/hometerview/di/ui/MainFragmentViewModelModule.kt index 693e603..14b1290 100644 --- a/app/src/main/java/com/ftw/hometerview/di/ui/MainFragmentViewModelModule.kt +++ b/app/src/main/java/com/ftw/hometerview/di/ui/MainFragmentViewModelModule.kt @@ -100,4 +100,9 @@ class MainFragmentViewModelModule { ) } + @Provides + @FragmentScoped + fun provideNonReviewViewModel(): NonReviewViewModel { + return NonReviewViewModel() + } } diff --git a/app/src/main/java/com/ftw/hometerview/ui/writtenreview/nonreview/NonReviewFragment.kt b/app/src/main/java/com/ftw/hometerview/ui/writtenreview/nonreview/NonReviewFragment.kt new file mode 100644 index 0000000..1be2bcb --- /dev/null +++ b/app/src/main/java/com/ftw/hometerview/ui/writtenreview/nonreview/NonReviewFragment.kt @@ -0,0 +1,71 @@ +package com.ftw.hometerview.ui.writtenreview.nonreview + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.databinding.DataBindingUtil +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.lifecycleScope +import androidx.lifecycle.repeatOnLifecycle +import com.ftw.hometerview.R +import com.ftw.hometerview.databinding.FragmentNonReviewBinding +import dagger.hilt.android.AndroidEntryPoint +import kotlinx.coroutines.launch +import javax.inject.Inject + +@AndroidEntryPoint +class NonReviewFragment : Fragment() { + + companion object { + fun newInstance(): NonReviewFragment { + return NonReviewFragment() + } + } + + private var _binding: FragmentNonReviewBinding? = null + private val binding get() = _binding!! + + @Inject + lateinit var viewModel: NonReviewViewModel + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + _binding = DataBindingUtil.inflate( + inflater, + R.layout.fragment_non_review, + container, + false + ).apply { + viewModel = this@NonReviewFragment.viewModel + } + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + observeEvent() + } + + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } + + private fun observeEvent() { + lifecycleScope.launch { + repeatOnLifecycle(Lifecycle.State.STARTED) { + viewModel.event.collect { event -> + when (event) { + NonReviewViewModel.Event.None -> {} + NonReviewViewModel.Event.onClickWriteReview -> { + // ㄹㅣ뷰 작성 화면으로 이동 + } + } + } + } + } + } +} diff --git a/app/src/main/java/com/ftw/hometerview/ui/writtenreview/nonreview/NonReviewViewModel.kt b/app/src/main/java/com/ftw/hometerview/ui/writtenreview/nonreview/NonReviewViewModel.kt new file mode 100644 index 0000000..8ec4dbd --- /dev/null +++ b/app/src/main/java/com/ftw/hometerview/ui/writtenreview/nonreview/NonReviewViewModel.kt @@ -0,0 +1,20 @@ +package com.ftw.hometerview.ui.writtenreview.nonreview + +import kotlinx.coroutines.flow.* + +class NonReviewViewModel() { + + sealed class Event { + object None : Event() + object onClickWriteReview : Event() + } + + private val _event: MutableStateFlow = MutableStateFlow(Event.None) + val event: StateFlow = _event.asStateFlow() + + fun onClickWriteReview() { + _event.value = Event.onClickWriteReview + _event.value = Event.None + } + +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_non_review.xml b/app/src/main/res/layout/fragment_non_review.xml new file mode 100644 index 0000000..4fe970f --- /dev/null +++ b/app/src/main/res/layout/fragment_non_review.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + +