Add Attestations entity, Dao, repository, viewModelFactory

This commit is contained in:
Mathieu Sanchez
2020-04-14 10:28:25 +02:00
parent 6903a584fc
commit 02b3c53a0a
10 changed files with 166 additions and 38 deletions

View File

@ -4,28 +4,41 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.databinding.DataBindingUtil
import androidx.fragment.app.Fragment
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProviders
import androidx.lifecycle.ViewModelProvider
import fr.sanchezm.attestationsCovid19.R
import fr.sanchezm.attestationsCovid19.databinding.FragmentAttestationsBinding
import fr.sanchezm.attestationsCovid19.utilities.InjectorUtils
class AttestationsFragment : Fragment() {
private lateinit var dashboardViewModel: AttestationsViewModel
private lateinit var attestationsViewModel: AttestationsViewModel
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
dashboardViewModel =
ViewModelProviders.of(this).get(AttestationsViewModel::class.java)
val root = inflater.inflate(R.layout.fragment_attestations, container, false)
val textView: TextView = root.findViewById(R.id.text_dashboard)
dashboardViewModel.text.observe(viewLifecycleOwner, Observer {
textView.text = it
})
return root
initializeUi()
val binding = DataBindingUtil.inflate<FragmentAttestationsBinding>(
inflater,
R.layout.fragment_add_attestation,
container,
false
).apply {
this.lifecycleOwner = this@AttestationsFragment
this.viewModel = attestationsViewModel
}
return binding.root
}
}
private fun initializeUi() {
val factory = context?.let { InjectorUtils.provideAddViewModelFactory(it) }
attestationsViewModel = factory?.let {
ViewModelProvider(this, it)
.get(AttestationsViewModel::class.java)
}!!
}
}

View File

@ -3,8 +3,9 @@ package fr.sanchezm.attestationsCovid19.ui.attestations
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import fr.sanchezm.attestationsCovid19.data.repository.AttestationRepository
class AttestationsViewModel : ViewModel() {
class AttestationsViewModel(private val attestationRepository: AttestationRepository) : ViewModel() {
private val _text = MutableLiveData<String>().apply {
value = "This is dashboard Fragment"

View File

@ -0,0 +1,15 @@
package fr.sanchezm.attestationsCovid19.ui.attestations
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import fr.sanchezm.attestationsCovid19.data.repository.AttestationRepository
import fr.sanchezm.attestationsCovid19.data.repository.ProfileRepository
class AttestationsViewModelFactory(private val attestationRepository: AttestationRepository) :
ViewModelProvider.NewInstanceFactory() {
@Suppress("UNCHECKED_CAST")
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
return AttestationsViewModel(attestationRepository) as T
}
}