Forráskód Böngészése

add navigators for measures

MrOzOn 5 éve
szülő
commit
ea1b8459c3

+ 8 - 0
app/src/main/java/com/mrozon/healthdiary/di/NavigationModule.kt

@@ -28,4 +28,12 @@ interface NavigationModule {
     @Reusable
     @Binds
     fun editPersonNavigator(navigator: EditPersonNavigatorImpl): EditPersonNavigator
+
+    @Reusable
+    @Binds
+    fun editMeasureNavigator(navigator: EditMeasureNavigatorImpl): EditMeasureNavigator
+
+    @Reusable
+    @Binds
+    fun listMeasureNavigator(navigator: ListMeasureNavigatorImpl): ListMeasureNavigator
 }

+ 15 - 0
app/src/main/java/com/mrozon/healthdiary/navigation/EditMeasureNavigatorImpl.kt

@@ -0,0 +1,15 @@
+package com.mrozon.healthdiary.navigation
+
+import androidx.navigation.NavController
+import com.mrozon.core_api.navigation.EditMeasureNavigator
+import com.mrozon.core_api.navigation.EditPersonNavigator
+import com.mrozon.healthdiary.R
+import javax.inject.Inject
+
+class EditMeasureNavigatorImpl @Inject constructor()
+    : EditMeasureNavigator {
+
+    override fun navigateToListMeasure(navController: NavController) {
+        navController.navigate(R.id.action_editMeasureFragment_to_listMeasureFragment)
+    }
+}

+ 18 - 0
app/src/main/java/com/mrozon/healthdiary/navigation/ListMeasureNavigatorImpl.kt

@@ -0,0 +1,18 @@
+package com.mrozon.healthdiary.navigation
+
+import androidx.core.os.bundleOf
+import androidx.navigation.NavController
+import androidx.navigation.fragment.findNavController
+import com.mrozon.core_api.navigation.ListMeasureNavigator
+import com.mrozon.core_api.navigation.ListPersonNavigator
+import com.mrozon.healthdiary.R
+import javax.inject.Inject
+
+class ListMeasureNavigatorImpl @Inject constructor()
+    : ListMeasureNavigator {
+
+    override fun navigateToEditMeasure(navController: NavController, title: String, id: Long) {
+        val bundle = bundleOf("title" to title, "id" to id)
+        navController.navigate(R.id.action_listMeasureFragment_to_editMeasureFragment, bundle)
+    }
+}

+ 34 - 0
app/src/main/res/navigation/nav_graph.xml

@@ -141,4 +141,38 @@
         tools:layout="@layout/fragment_tab_measure"
         android:label="TabMeasureFragment" />
 
+    <fragment
+        android:id="@+id/listMeasureFragment"
+        android:name="com.mrozon.feature_measure.presentation.ListMeasureFragment"
+        tools:layout="@layout/fragment_list_measure"
+        android:label="ListMeasureFragment" >
+        <action
+            android:id="@+id/action_listMeasureFragment_to_editMeasureFragment"
+            app:destination="@id/editMeasureFragment"
+            app:enterAnim="@anim/slide_in_right"
+            app:exitAnim="@anim/slide_out_left"
+            app:popEnterAnim="@anim/slide_in_left"
+            app:popExitAnim="@anim/slide_out_right"/>
+    </fragment>
+
+    <fragment
+        android:id="@+id/editMeasureFragment"
+        android:name="com.mrozon.feature_measure.presentation.EditMeasureFragment"
+        tools:layout="@layout/fragment_edit_measure"
+        android:label="{title}" >
+        <argument
+            android:name="title"
+            app:argType="string" />
+        <argument
+            android:name="id"
+            app:argType="long" />
+        <action
+            android:id="@+id/action_editMeasureFragment_to_listMeasureFragment"
+            app:destination="@id/listMeasureFragment"
+            app:enterAnim="@anim/slide_in_right"
+            app:exitAnim="@anim/slide_out_left"
+            app:popEnterAnim="@anim/slide_in_left"
+            app:popExitAnim="@anim/slide_out_right"/>
+    </fragment>
+
 </navigation>

+ 8 - 0
core_api/src/main/java/com/mrozon/core_api/navigation/EditMeasureNavigator.kt

@@ -0,0 +1,8 @@
+package com.mrozon.core_api.navigation
+
+import androidx.navigation.NavController
+
+interface EditMeasureNavigator {
+
+    fun navigateToListMeasure(navController: NavController)
+}

+ 9 - 0
core_api/src/main/java/com/mrozon/core_api/navigation/ListMeasureNavigator.kt

@@ -0,0 +1,9 @@
+package com.mrozon.core_api.navigation
+
+import androidx.navigation.NavController
+
+interface ListMeasureNavigator {
+
+    fun navigateToEditMeasure(navController: NavController, title: String, id: Long)
+
+}

+ 0 - 5
feature_measure/src/main/java/com/mrozon/feature_measure/presentation/ListMeasureAdapter.kt

@@ -32,10 +32,6 @@ class ListMeasureAdapter(private val measureType: MeasureType, private val click
             binding.layoutMeasure.setOnClickListener {
                 clickListener.onClick(item)
             }
-            binding.layoutMeasure.setOnLongClickListener{
-                clickListener.onLongClick(item)
-                true
-            }
             binding.executePendingBindings()
         }
 
@@ -62,6 +58,5 @@ class ListMeasureAdapter(private val measureType: MeasureType, private val click
 
     interface ListMeasureClickListener {
         fun onClick(measure: Measure)
-        fun onLongClick(measure: Measure)
     }
 }

+ 2 - 5
feature_measure/src/main/java/com/mrozon/feature_measure/presentation/ListMeasureFragment.kt

@@ -7,6 +7,7 @@ import android.widget.Toast
 import androidx.fragment.app.viewModels
 import androidx.lifecycle.Observer
 import androidx.lifecycle.ViewModelProvider
+import androidx.navigation.fragment.findNavController
 import androidx.recyclerview.widget.DividerItemDecoration
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
@@ -114,11 +115,7 @@ class ListMeasureFragment : BaseFragment<FragmentListMeasureBinding>() {
                         adapter = ListMeasureAdapter(measureType!!, object:
                             ListMeasureAdapter.ListMeasureClickListener {
                             override fun onClick(measure: Measure) {
-
-                            }
-
-                            override fun onLongClick(measure: Measure) {
-
+                                //TODO sfjkdsh
                             }
                         })
                         binding?.rvMeasure?.adapter = adapter