@@ -2,12 +2,23 @@ package com.smarttoolfactory.propertyfindar
22
33import android.os.Bundle
44import android.view.View
5+ import androidx.core.os.bundleOf
6+ import androidx.fragment.app.activityViewModels
7+ import androidx.navigation.fragment.findNavController
8+ import com.google.android.material.bottomnavigation.BottomNavigationView
59import com.smarttoolfactory.core.ui.fragment.DynamicNavigationFragment
10+ import com.smarttoolfactory.core.util.observe
11+ import com.smarttoolfactory.core.viewmodel.PropertyDetailNavigationVM
612import com.smarttoolfactory.propertyfindar.databinding.FragmentMainBinding
713import com.smarttoolfactory.propertyfindar.ui.BottomNavigationFragmentStateAdapter
814
915class MainFragment : DynamicNavigationFragment <FragmentMainBinding >() {
1016
17+ /* *
18+ * ViewModel for navigating to property detail screen from Main Fragment
19+ */
20+ private val propertyDetailNavigationVM by activityViewModels<PropertyDetailNavigationVM >()
21+
1122 override fun getLayoutRes (): Int = R .layout.fragment_main
1223
1324 override fun onViewCreated (view : View , savedInstanceState : Bundle ? ) {
@@ -51,7 +62,26 @@ class MainFragment : DynamicNavigationFragment<FragmentMainBinding>() {
5162 }
5263 }
5364 }
54- false
65+ subscribePropertyDetailNavigation()
66+ }
67+
68+ /* *
69+ * Navigates to Property Detail fragment from this fragment that replacing main fragment
70+ * that contains [BottomNavigationView]
71+ */
72+ private fun subscribePropertyDetailNavigation () {
73+ viewLifecycleOwner.observe(propertyDetailNavigationVM.goToPropertyDetailFromMain) {
74+
75+ it.getContentIfNotHandled()?.let { propertyItem ->
76+ val bundle = bundleOf(" property" to propertyItem)
77+
78+ findNavController()
79+ .navigate(
80+ R .id.action_mainFragment_to_propertyDetailFragment,
81+ bundle
82+ )
83+ }
84+ }
5585 }
5686
5787 override fun onDestroyView () {
0 commit comments