Преглед изворни кода

add empty fragment for create/edit measure

MrOzOn пре 5 година
родитељ
комит
db41c34056

+ 9 - 0
feature_measure/src/main/java/com/mrozon/feature_measure/di/TabMeasureFragmentComponent.kt

@@ -2,6 +2,7 @@ package com.mrozon.feature_measure.di
 
 import com.mrozon.core_api.providers.AppWithFacade
 import com.mrozon.core_api.providers.ProvidersFacade
+import com.mrozon.feature_measure.presentation.EditMeasureFragment
 import com.mrozon.feature_measure.presentation.ListMeasureFragment
 import com.mrozon.feature_measure.presentation.TabMeasureFragment
 import dagger.Component
@@ -33,9 +34,17 @@ interface TabMeasureFragmentComponent {
             component.inject(fragment)
             return component
         }
+
+        fun injectFragment(fragment: EditMeasureFragment): TabMeasureFragmentComponent  {
+            val component = create((fragment.activity?.application
+                    as AppWithFacade).getFacade())
+            component.inject(fragment)
+            return component
+        }
     }
 
     fun inject(fragment: TabMeasureFragment)
     fun inject(fragment: ListMeasureFragment)
+    fun inject(fragment: EditMeasureFragment)
 
 }

+ 6 - 0
feature_measure/src/main/java/com/mrozon/feature_measure/di/TabMeasureFragmentModule.kt

@@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider
 import com.mrozon.core_api.viewmodel.ViewModelKey
 import com.mrozon.feature_measure.data.MeasureRepository
 import com.mrozon.feature_measure.data.MeasureRepositoryImpl
+import com.mrozon.feature_measure.presentation.EditMeasureFragmentViewModel
 import com.mrozon.feature_measure.presentation.ListMeasureFragmentViewModel
 import com.mrozon.feature_measure.presentation.TabMeasureFragmentViewModel
 import dagger.Binds
@@ -23,6 +24,11 @@ interface TabMeasureFragmentModule {
     @ViewModelKey(ListMeasureFragmentViewModel::class)
     fun bindListMeasureFragmentViewModel(viewmodel: ListMeasureFragmentViewModel): ViewModel
 
+    @Binds
+    @IntoMap
+    @ViewModelKey(EditMeasureFragmentViewModel::class)
+    fun bindEditMeasureFragmentViewModel(viewmodel: EditMeasureFragmentViewModel): ViewModel
+
     @Binds
     fun viewModelFactory(factory: DaggerViewModelFactory): ViewModelProvider.Factory
 

+ 31 - 0
feature_measure/src/main/java/com/mrozon/feature_measure/presentation/EditMeasureFragment.kt

@@ -0,0 +1,31 @@
+package com.mrozon.feature_measure.presentation
+
+import android.content.Context
+import androidx.fragment.app.viewModels
+import androidx.lifecycle.ViewModelProvider
+import com.mrozon.feature_measure.R
+import com.mrozon.feature_measure.databinding.FragmentEditMeasureBinding
+import com.mrozon.feature_measure.di.TabMeasureFragmentComponent
+import com.mrozon.utils.base.BaseFragment
+import timber.log.Timber
+import javax.inject.Inject
+
+class EditMeasureFragment: BaseFragment<FragmentEditMeasureBinding>() {
+
+    override fun getLayoutId(): Int = R.layout.fragment_edit_measure
+
+    @Inject
+    lateinit var viewModelFactory: ViewModelProvider.Factory
+
+    private val viewModel by viewModels<EditMeasureFragmentViewModel> { viewModelFactory }
+
+    override fun onAttach(context: Context) {
+        super.onAttach(context)
+        TabMeasureFragmentComponent.injectFragment(this)
+    }
+
+
+    override fun subscribeUi() {
+
+    }
+}

+ 24 - 0
feature_measure/src/main/java/com/mrozon/feature_measure/presentation/EditMeasureFragmentViewModel.kt

@@ -0,0 +1,24 @@
+package com.mrozon.feature_measure.presentation
+
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.viewModelScope
+import com.mrozon.core_api.entity.MeasureType
+import com.mrozon.core_api.entity.Person
+import com.mrozon.core_api.providers.CoroutineContextProvider
+import com.mrozon.feature_measure.data.MeasureRepository
+import com.mrozon.utils.Event
+import com.mrozon.utils.base.BaseViewModel
+import com.mrozon.utils.network.Result
+import kotlinx.coroutines.flow.collect
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+import javax.inject.Inject
+
+class EditMeasureFragmentViewModel @Inject constructor(
+    private val repository: MeasureRepository,
+    private val coroutineContextProvider: CoroutineContextProvider
+): BaseViewModel() {
+
+
+}

+ 22 - 0
feature_measure/src/main/res/layout/fragment_edit_measure.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <data>
+
+    </data>
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <androidx.constraintlayout.widget.ConstraintLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+
+
+        </androidx.constraintlayout.widget.ConstraintLayout>
+
+    </ScrollView>
+</layout>