Commit e12534fc authored by iptriana's avatar iptriana
Browse files

Issuses correct

parent 3805ca52
package cu.iptriana.pesquisavirtual.data package cu.iptriana.pesquisavirtual.data
class PersonRepository { import androidx.lifecycle.LiveData
class PersonRepository(private val personDao: PersonDao) {
fun getAll():LiveData<List<Person>> = personDao.getAll()
fun getById(id:Int):LiveData<Person> = personDao.getById(id)
suspend fun update(person:Person) = personDao.update(person)
suspend fun insert(person: Person): Long { return personDao.insert(person) }
suspend fun delete(person:Person) = personDao.delete(person)
} }
\ No newline at end of file
package cu.iptriana.pesquisavirtual.data package cu.iptriana.pesquisavirtual.data
class TestRepository { import androidx.lifecycle.LiveData
class TestRepository(private val testDao: TestDao) {
fun getAll(id_person: Int):LiveData<List<Test>> = testDao.getAll(id_person)
suspend fun getById(id:Int):Test = testDao.getById(id)
suspend fun update(test: Test) = testDao.update(test)
suspend fun insert(test: Test) = testDao.insert(test)
suspend fun delete(test: Test) = testDao.delete(test)
} }
\ No newline at end of file
package cu.iptriana.pesquisavirtual.di package cu.iptriana.pesquisavirtual.di
import android.content.Context
import cu.iptriana.pesquisavirtual.data.AplicationDB
import cu.iptriana.pesquisavirtual.data.PersonRepository
import cu.iptriana.pesquisavirtual.data.TestRepository
import cu.iptriana.pesquisavirtual.preferences.AppPreferences
object Injector { object Injector {
private fun getPersonDao(context: Context) = AplicationDB.getAplicationDB(context).personDao()
private fun getTestDao(context: Context) = AplicationDB.getAplicationDB(context).testDao()
fun getPreferences(context: Context):AppPreferences = AppPreferences.create(context)
fun getPersonRepository(context: Context) = PersonRepository(getPersonDao(context))
fun getTestRepository(context: Context) = TestRepository(getTestDao(context))
} }
\ No newline at end of file
package cu.iptriana.pesquisavirtual.preferences package cu.iptriana.pesquisavirtual.preferences
class AppPreferences { import android.content.Context
import android.content.SharedPreferences
import cu.iptriana.pesquisavirtual.data.Person
class AppPreferences(private val sharedPreferences: SharedPreferences) {
fun getAll():Map<String, *> = sharedPreferences.all
fun isEmpty():Boolean = sharedPreferences.all.isEmpty()
fun changePerson(model:Person){
val edit: SharedPreferences.Editor = sharedPreferences.edit()
edit.clear()
edit.putInt("id", model.id)
edit.apply()
}
fun getPersonId() : Int{
var id = 0
for (entry in sharedPreferences.all){
if (entry.key == "id") {
id = entry.value as Int
}
break
}
return id
}
companion object {
fun create(context: Context): AppPreferences =
AppPreferences(context.getSharedPreferences("MyPrefer", Context.MODE_PRIVATE))
}
} }
\ No newline at end of file
...@@ -7,7 +7,7 @@ import androidx.appcompat.widget.Toolbar ...@@ -7,7 +7,7 @@ import androidx.appcompat.widget.Toolbar
import cu.iptriana.pesquisavirtual.R import cu.iptriana.pesquisavirtual.R
class AddUserActivity : AppCompatActivity() { class AddPersonActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_add_user) setContentView(R.layout.activity_add_user)
......
package cu.iptriana.pesquisavirtual.ui.add_person package cu.iptriana.pesquisavirtual.ui.add_person
class AddPersonViewModelFactory { import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import cu.iptriana.pesquisavirtual.data.PersonRepository
import cu.iptriana.pesquisavirtual.preferences.AppPreferences
@Suppress("UNCHECKED_CAST")
class AddPersonViewModelFactory(
private val personRepository: PersonRepository,
private val preferences: AppPreferences
) :
ViewModelProvider.NewInstanceFactory() {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
return AddPersonViewModel(personRepository, preferences) as T
}
} }
\ No newline at end of file
package cu.iptriana.pesquisavirtual.ui.change_person package cu.iptriana.pesquisavirtual.ui.change_person
class ChangePersonViewModelFactory { import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import cu.iptriana.pesquisavirtual.data.PersonRepository
import cu.iptriana.pesquisavirtual.preferences.AppPreferences
@Suppress("UNCHECKED_CAST")
class ChangePersonViewModelFactory (
private val personRepository: PersonRepository,
private val preferences: AppPreferences
) :
ViewModelProvider.NewInstanceFactory() {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
return ChangePersonViewModel(personRepository, preferences) as T
}
} }
\ No newline at end of file
package cu.iptriana.pesquisavirtual.ui.change_person
import android.content.Intent
import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import com.google.android.material.floatingactionbutton.FloatingActionButton
import cu.iptriana.pesquisavirtual.R
import cu.iptriana.pesquisavirtual.ui.add_person.AddPersonActivity
class ListPersonActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_list_person)
val myToolbar: Toolbar = findViewById<View>(R.id.toolbar) as Toolbar
setSupportActionBar(myToolbar)
val fab = findViewById<FloatingActionButton>(R.id.fab)
fab.setOnClickListener {
startActivity(
Intent(this@ListPersonActivity, AddPersonActivity::class.java)
)
}
}
}
\ No newline at end of file
package cu.iptriana.pesquisavirtual.ui.diagnose
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import cu.iptriana.pesquisavirtual.R
class AddTestActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_add_test)
}
}
package cu.iptriana.pesquisavirtual.ui.diagnose package cu.iptriana.pesquisavirtual.ui.diagnose
import android.content.Context import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Toast
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope import cu.iptriana.pesquisavirtual.MainActivity
import cu.iptriana.pesquisavirtual.databinding.FragmentDiagnosticarBinding import cu.iptriana.pesquisavirtual.databinding.FragmentDiagnosticarBinding
import kotlinx.coroutines.launch import cu.iptriana.pesquisavirtual.di.Injector
class DiagnosticarFragment : Fragment() { class DiagnoseFragment : Fragment() {
private lateinit var viewModel: DiagnosticarViewModel private lateinit var viewModel: DiagnoseViewModel
private lateinit var allEntrys: Map<String, *>
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, inflater: LayoutInflater,
container: ViewGroup?, container: ViewGroup?,
savedInstanceState: Bundle? savedInstanceState: Bundle?
): View? { ): View? {
viewModel = ViewModelProvider(this) viewModel = ViewModelProvider(
.get(DiagnosticarViewModel::class.java) this,
DiagnoseViewModelFactory(
Injector.getTestRepository(requireContext()),
Injector.getPreferences(requireContext())
)
).get(DiagnoseViewModel::class.java)
val binding = FragmentDiagnosticarBinding.inflate( val binding = FragmentDiagnosticarBinding.inflate(
LayoutInflater.from(context), container, false) LayoutInflater.from(context), container, false
val pref = context?.getSharedPreferences("MyPrefer", Context.MODE_PRIVATE) )
if (pref != null) {
allEntrys = pref.all
}
with(binding) { with(binding) {
buttonEvaluarDiagnostico.setOnClickListener { buttonEvaluarDiagnostico.setOnClickListener {
lifecycleScope.launch { viewModel.evalTest(
context?.let { it1 -> radioButtonViajeSi.isChecked,
viewModel.evaluar( radioButtonContactoViajeSi.isChecked,
it1, radioButton2ContContagioSi.isChecked,
radioButtonViajeSi.isChecked, radioButton2RelSospSi.isChecked,
radioButtonContactoViajeSi.isChecked, radioButtonFiebreSi.isChecked,
radioButton2ContContagioSi.isChecked, radioButtonSintomaRespSi.isChecked,
radioButton2RelSospSi.isChecked, radioButtonTosSi.isChecked,
radioButtonFiebreSi.isChecked, radioButtonFatigaSi.isChecked,
radioButtonSintomaRespSi.isChecked, radioButtonDisneaSi.isChecked,
radioButtonTosSi.isChecked, radioButtonDolorAbdominalSi.isChecked
radioButtonFatigaSi.isChecked, )
radioButtonDisneaSi.isChecked, viewModel.resultText.observe(requireActivity(), Observer {
radioButtonDolorAbdominalSi.isChecked, Toast.makeText(requireContext(), it, Toast.LENGTH_SHORT).show()
allEntrys })
) startActivity(
} Intent(requireContext(), MainActivity::class.java)
requireActivity().finish() )
} requireActivity().finish()
} }
} }
return binding.root return binding.root
} }
} }
\ No newline at end of file
package cu.iptriana.pesquisavirtual.ui.diagnose package cu.iptriana.pesquisavirtual.ui.diagnose
import android.content.Context import androidx.lifecycle.MutableLiveData
import android.content.Intent
import android.widget.Toast
import androidx.core.content.ContextCompat
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import cu.iptriana.pesquisavirtual.MainActivity import androidx.lifecycle.viewModelScope
import cu.iptriana.pesquisavirtual.data.AplicationDB
import cu.iptriana.pesquisavirtual.data.Test import cu.iptriana.pesquisavirtual.data.Test
import cu.iptriana.pesquisavirtual.databinding.FragmentDiagnosticarBinding import cu.iptriana.pesquisavirtual.data.TestRepository
import cu.iptriana.pesquisavirtual.preferences.AppPreferences
import kotlinx.coroutines.launch
import java.util.* import java.util.*
class DiagnosticarViewModel : ViewModel() { class DiagnoseViewModel(
private val testRepository: TestRepository
, private val preferences: AppPreferences
) : ViewModel() {
suspend fun evaluar(context:Context, val resultText = MutableLiveData<String>()
diasRegreso: Boolean,
cantPersonasContacto: Boolean,
cantPersonasCOVID: Boolean,
relacionSospechoso: Boolean,
fiebre: Boolean,
problemasRespiratorios: Boolean,
tosSeca: Boolean,
fatiga: Boolean,
disnea: Boolean,
dolorAbdominal: Boolean,
allEntrys: Map<String, *>
) {
var flat = false
if (diasRegreso || cantPersonasContacto || cantPersonasCOVID || relacionSospechoso)
flat = true
else if (fiebre && problemasRespiratorios) flat = true
else if (fiebre && tosSeca) flat = true
else if (fiebre && fatiga && disnea) flat = true
else if (fiebre && fatiga && dolorAbdominal) flat = true
else if (tosSeca && fatiga && disnea && dolorAbdominal) flat = true
val date = Date()
val str = android.text.format.DateFormat.format("dd-MMM-yyyy",date.time)
val test = Test( fun evalTest(
0 diasRegreso: Boolean,
, diasRegreso, cantPersonasContacto: Boolean,
cantPersonasCOVID: Boolean,
relacionSospechoso: Boolean,
fiebre: Boolean,
problemasRespiratorios: Boolean,
tosSeca: Boolean,
fatiga: Boolean,
disnea: Boolean,
dolorAbdominal: Boolean
) {
val flat = eval(diasRegreso,
cantPersonasContacto, cantPersonasContacto,
cantPersonasCOVID, cantPersonasCOVID,
relacionSospechoso, relacionSospechoso,
...@@ -50,36 +37,64 @@ class DiagnosticarViewModel : ViewModel() { ...@@ -50,36 +37,64 @@ class DiagnosticarViewModel : ViewModel() {
tosSeca, tosSeca,
fatiga, fatiga,
disnea, disnea,
dolorAbdominal, dolorAbdominal)
flat,
getPersonId(allEntrys), val str = currentDate()
str.toString()
) viewModelScope.launch {
insertTest(Test(
0
, diasRegreso,
cantPersonasContacto,
cantPersonasCOVID,
relacionSospechoso,
fiebre,
problemasRespiratorios,
tosSeca,
fatiga,
disnea,
dolorAbdominal,
flat,
preferences.getPersonId(),
str.toString()
))
}
result(flat)
}
private fun eval(diasRegreso: Boolean,
cantPersonasContacto: Boolean,
cantPersonasCOVID: Boolean,
relacionSospechoso: Boolean,
fiebre: Boolean,
problemasRespiratorios: Boolean,
tosSeca: Boolean,
fatiga: Boolean,
disnea: Boolean,
dolorAbdominal: Boolean): Boolean{
if (diasRegreso || cantPersonasContacto || cantPersonasCOVID || relacionSospechoso)
return true
else if (fiebre && problemasRespiratorios) return true
else if (fiebre && tosSeca) return true
else if (fiebre && fatiga && disnea) return true
else if (fiebre && fatiga && dolorAbdominal) return true
else if (tosSeca && fatiga && disnea && dolorAbdominal) return true
return false
}
val db = AplicationDB.getAplicationDB(context) private suspend fun insertTest(test: Test){
db?.testDao()?.insert(test) testRepository.insert(test)
}
private fun result(flat:Boolean){
if (flat) if (flat)
Toast.makeText( resultText.value = "Usted es sospechoso/a, debe acudir al centro hospitalario más cerca"
context,
"Usted es sospechoso/a, debe acudir al centro hospitalario más cerca",
Toast.LENGTH_SHORT
).show()
else else
Toast.makeText( resultText.value = "Usted no es sospechoso/a"
context,
"Usted no es sospechoso/a",
Toast.LENGTH_SHORT
).show()
ContextCompat.startActivity(context, Intent(context, MainActivity::class.java), null)
} }
private fun getPersonId(allEntrys: Map<String, *>) : Int{ private fun currentDate():CharSequence{
var id: Int = 0 val date = Date()
for (entry in allEntrys){ return android.text.format.DateFormat.format("dd-MMM-yyyy", date.time)
if (entry.key == "id") id = entry.value as Int
break
}
return id
} }
} }
\ No newline at end of file
package cu.iptriana.pesquisavirtual.ui.diagnose package cu.iptriana.pesquisavirtual.ui.diagnose
class DiagnoseViewModelFactory { import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import cu.iptriana.pesquisavirtual.data.TestRepository
import cu.iptriana.pesquisavirtual.preferences.AppPreferences
@Suppress("UNCHECKED_CAST")
class DiagnoseViewModelFactory(
private val testRepository: TestRepository,
private val preferences: AppPreferences
) :
ViewModelProvider.NewInstanceFactory() {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
return DiagnoseViewModel(testRepository, preferences) as T
}
} }
\ No newline at end of file
package cu.iptriana.pesquisavirtual package cu.iptriana.pesquisavirtual.ui.edit
import android.content.Context
import android.os.Bundle import android.os.Bundle
import android.widget.Toast import android.view.View
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope import androidx.appcompat.widget.Toolbar
import cu.iptriana.pesquisavirtual.data.AplicationDB import cu.iptriana.pesquisavirtual.R
import cu.iptriana.pesquisavirtual.data.Person
import cu.iptriana.pesquisavirtual.databinding.ActivityAddUserBinding
import kotlinx.android.synthetic.main.toolbar.*
import kotlinx.coroutines.launch
class Edit : AppCompatActivity() { class Edit : AppCompatActivity() {
private lateinit var binding: ActivityAddUserBinding
private lateinit var person: Person
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
binding = ActivityAddUserBinding.inflate(layoutInflater) setContentView(R.layout.activity_add_user)
with(binding) { val toolbar = findViewById<View>(R.id.toolbar) as Toolbar
setContentView(root) setSupportActionBar(toolbar)
setSupportActionBar(toolbar) supportActionBar?.setDisplayHomeAsUpEnabled(true)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
// buttonAgregar.text = "Actualizar"
// buttonAgregar.setOnClickListener {
// val personUpdated = Person(
// person.id
// , txtName.text.toString()
// , txtLastName.text.toString()
// , txtCi.text.toString()
// , txtAge.text.toString().toInt()
// , isMale(radioButtonMasculino.isChecked)
// )
// lifecycleScope.launch {
// val db = AplicationDB.getAplicationDB(this@Edit)
// db?.personDao()?.update(personUpdated)
// Toast.makeText(
// this@Edit,
// "Registro actualizado correctamente",
// Toast.LENGTH_SHORT
// ).show()
// }
// finish()
// }
// buttonCancelar.setOnClickListener { finish() }
// getPersonById(getPersonId())
}
}
private fun getPersonId() : Int{
val pref = getSharedPreferences("MyPrefer", Context.MODE_PRIVATE)
var allEntrys: Map<String, *>? = null
if (pref != null) {
allEntrys = pref.all
}
var id: Int = 0
if (allEntrys != null) {
for (entry in allEntrys){
if (entry.key == "id") id = entry.value as Int
break
}
}
return id
}
private fun getPersonById(id:Int){
lifecycleScope.launch {
// val db = AplicationDB.getAplicationDB(this@Edit)
// person = db?.personDao()?.getById(id)!!
// binding.txtName.setText(person.name)
// binding.txtLastName.setText(person.last_name)
// binding.txtCi.setText(person.ci)
// binding.txtAge.setText(person.age.toString())
// if(person.sex.equals("Masculino")) binding.radioButtonMasculino.isChecked = true
// else binding.radioButtonFemenino.isChecked = true
}
}
private fun isMale(flag: Boolean): String{
if(flag)
return "Masculino"
return "Femenino"
} }
} }
\ No newline at end of file
...@@ -13,14 +13,14 @@ import cu.iptriana.pesquisavirtual.MainActivity ...@@ -13,14 +13,14 @@ import cu.iptriana.pesquisavirtual.MainActivity
import cu.iptriana.pesquisavirtual.databinding.FragmentFatalidadBinding import cu.iptriana.pesquisavirtual.databinding.FragmentFatalidadBinding
class FatalityFragment: Fragment() { class FatalityFragment: Fragment() {
private lateinit var fatalidadViewModel: FatalidadViewModel private lateinit var fatalityViewModel: FatalityViewModel
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, inflater: LayoutInflater,
container: ViewGroup?, container: ViewGroup?,
savedInstanceState: Bundle? savedInstanceState: Bundle?
): View? { ): View? {
fatalidadViewModel = fatalityViewModel =
ViewModelProvider(this).get(FatalidadViewModel::class.java) ViewModelProvider(this).get(FatalityViewModel::class.java)
val binding = FragmentFatalidadBinding.inflate( val binding = FragmentFatalidadBinding.inflate(
LayoutInflater.from(context), container, false) LayoutInflater.from(context), container, false)
with(binding){ with(binding){
...@@ -35,7 +35,7 @@ class FatalityFragment: Fragment() { ...@@ -35,7 +35,7 @@ class FatalityFragment: Fragment() {
requireActivity().finish() requireActivity().finish()
} }
btnCalcularFatalidad.setOnClickListener{ btnCalcularFatalidad.setOnClickListener{
if(fatalidadViewModel.desarrolloFatal(editTextLhd.text.toString().toDouble(), if(fatalityViewModel.fatalDevelop(editTextLhd.text.toString().toDouble(),
editTextHsCRP.text.toString().toDouble(), editTextL.text.toString().toDouble())) editTextHsCRP.text.toString().toDouble(), editTextL.text.toString().toDouble()))
Toast.makeText(context, "Muestra positiva", Toast.LENGTH_LONG).show() Toast.makeText(context, "Muestra positiva", Toast.LENGTH_LONG).show()
else Toast.makeText(context, "Muestra negativa", Toast.LENGTH_LONG).show() else Toast.makeText(context, "Muestra negativa", Toast.LENGTH_LONG).show()
......
...@@ -4,17 +4,16 @@ import androidx.lifecycle.ViewModel ...@@ -4,17 +4,16 @@ import androidx.lifecycle.ViewModel
class FatalityViewModel: ViewModel() { class FatalityViewModel: ViewModel() {
fun desarrolloFatal( fun fatalDevelop(
LDH: Double, LDH: Double,
hs_CRP: Double, hs_CRP: Double,
L: Double L: Double
): Boolean { ): Boolean {
var flat = false if (LDH >= 365) return true
if (LDH >= 365) flat = true else if (LDH < 365 && hs_CRP < 41.2) return true
else if (LDH < 365 && hs_CRP < 41.2) flat = true else if (LDH < 365 && hs_CRP >= 41.2 && L > 14.7) return true
else if (LDH < 365 && hs_CRP >= 41.2 && L > 14.7) flat = true else if (LDH < 365 && hs_CRP >= 41.2 && L <= 14.7) return true
else if (LDH < 365 && hs_CRP >= 41.2 && L <= 14.7) flat = true return false
return flat
} }
} }
\ No newline at end of file
package cu.iptriana.pesquisavirtual.ui.splash package cu.iptriana.pesquisavirtual.ui.splash
import android.content.Intent
import android.os.Bundle import android.os.Bundle
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import cu.iptriana.pesquisavirtual.R import cu.iptriana.pesquisavirtual.R
import cu.iptriana.pesquisavirtual.di.Injector
class Splash : AppCompatActivity() { class SplashActivity : AppCompatActivity() {
private val viewModel by viewModels<SplashViewModel>() private lateinit var viewModel: SplashViewModel
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_splash) setContentView(R.layout.activity_splash)
viewModel = ViewModelProvider(
this, SplashViewModelFactory(
Injector.getPreferences(this@SplashActivity)
)
).get(SplashViewModel::class.java)
viewModel.onCreate() viewModel.onCreate()
finish()
viewModel.activityToStart.observe(this, Observer { value ->
val intent = Intent(this, value.first.java)
startActivity(intent)
finish()
})
} }
} }
\ No newline at end of file
package cu.iptriana.pesquisavirtual.ui.splash package cu.iptriana.pesquisavirtual.ui.splash
class SplashViewModel { import android.os.Bundle
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import cu.iptriana.pesquisavirtual.ui.add_person.AddPersonActivity
import cu.iptriana.pesquisavirtual.MainActivity
import cu.iptriana.pesquisavirtual.preferences.AppPreferences
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlin.reflect.KClass
class SplashViewModel(private val pref: AppPreferences): ViewModel() {
val activityToStart = MutableLiveData<Pair<KClass<*>, Bundle?>>()
fun onCreate(){
viewModelScope.launch{
val allEntry = pref.getAll()
delay(2000)
if (allEntry.isEmpty()) {
activityToStart.value = Pair(AddPersonActivity::class, Bundle())
}else{
activityToStart.value = Pair(MainActivity::class, Bundle())
}
}
}
} }
\ No newline at end of file
package cu.iptriana.pesquisavirtual.ui.splash package cu.iptriana.pesquisavirtual.ui.splash
class SplashViewModelFactory { import android.content.SharedPreferences
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import cu.iptriana.pesquisavirtual.preferences.AppPreferences
@Suppress("UNCHECKED_CAST")
class SplashViewModelFactory(private val sharedPreferences: AppPreferences)
: ViewModelProvider.Factory {
override fun <T : ViewModel?> create(p0: Class<T>): T {
return SplashViewModel(sharedPreferences) as T
}
} }
\ No newline at end of file
package cu.iptriana.pesquisavirtual.ui.user package cu.iptriana.pesquisavirtual.ui.user
import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.SharedPreferences
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import cu.iptriana.pesquisavirtual.MainActivity import cu.iptriana.pesquisavirtual.MainActivity
import cu.iptriana.pesquisavirtual.R import cu.iptriana.pesquisavirtual.R
import cu.iptriana.pesquisavirtual.adapter.TestAdapter import cu.iptriana.pesquisavirtual.adapter.TestAdapter
import cu.iptriana.pesquisavirtual.data.AplicationDB
import cu.iptriana.pesquisavirtual.data.Person
import cu.iptriana.pesquisavirtual.data.Test import cu.iptriana.pesquisavirtual.data.Test
import cu.iptriana.pesquisavirtual.databinding.ActivityUserBinding import cu.iptriana.pesquisavirtual.databinding.ActivityUserBinding
import cu.iptriana.pesquisavirtual.di.Injector
import cu.iptriana.pesquisavirtual.ui.diagnose.AddTestActivity import cu.iptriana.pesquisavirtual.ui.diagnose.AddTestActivity
import cu.iptriana.pesquisavirtual.ui.edit.Edit import cu.iptriana.pesquisavirtual.ui.edit.Edit
import kotlinx.android.synthetic.main.content_main_activity.*
import kotlinx.android.synthetic.main.toolbar.* import kotlinx.android.synthetic.main.toolbar.*
import kotlinx.coroutines.launch
class User : AppCompatActivity() { class UserActivity : AppCompatActivity() {
private lateinit var items:List<Test>
private lateinit var recycler: RecyclerView
private lateinit var adapter: TestAdapter
private lateinit var person: Person
private lateinit var binding: ActivityUserBinding
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
val viewModel = ViewModelProvider(
binding = ActivityUserBinding.inflate( this,
UserViewModelFactory(
Injector.getTestRepository(this@UserActivity),
Injector.getPreferences(this@UserActivity),
Injector.getPersonRepository(this@UserActivity)
)
).get(UserViewModel::class.java)
val binding = ActivityUserBinding.inflate(
LayoutInflater.from(this)) LayoutInflater.from(this))
with(binding){ with(binding){
setContentView(root) setContentView(root)
setSupportActionBar(toolbar) setSupportActionBar(toolbar)
supportActionBar?.setDisplayHomeAsUpEnabled(true) supportActionBar?.setDisplayHomeAsUpEnabled(true)
fab.setOnClickListener { view -> fab.setOnClickListener {
startActivity( startActivity(
Intent(this@User, AddTestActivity::class.java) Intent(this@UserActivity, AddTestActivity::class.java)
) )
} }
items = listOf()
recycler = recyclerview recyclerview.layoutManager = LinearLayoutManager(this@UserActivity)
recycler.layoutManager = LinearLayoutManager(this@User) val adapter = TestAdapter(listOf())
adapter = TestAdapter(items)
adapter.setOnItemClickListener(object : TestAdapter.OnRecyclerClickListener<Test>{ adapter.setOnItemClickListener(object : TestAdapter.OnRecyclerClickListener<Test>{
override fun onClick(model: Test) { override fun onClick(model: Test) {
startActivity(Intent(this@User, MainActivity::class.java)) startActivity(Intent(this@UserActivity, MainActivity::class.java))
val sharedPreferences = getSharedPreferences("MyPrefer", Context.MODE_PRIVATE)
val edit: SharedPreferences.Editor = sharedPreferences.edit()
edit.putInt("id", model.id)
edit.apply()
finish() finish()
} }
...@@ -66,23 +57,21 @@ class User : AppCompatActivity() { ...@@ -66,23 +57,21 @@ class User : AppCompatActivity() {
} }
}) })
}
}
viewModel.allTest.observe(this@UserActivity, Observer {
private fun getPersonById(id:Int){ adapter.tests = it
lifecycleScope.launch { recyclerview.adapter = adapter
val db = AplicationDB.getAplicationDB(this@User) })
person = db?.personDao()?.getById(id)!! viewModel.person.observe(this@UserActivity, Observer {
binding.userTxtName.text = person.name userTxtName.text = it.name
binding.userTxtLastName.text = person.last_name userTxtLastName.text = it.last_name
binding.userTxtCi.text = person.ci userTxtCi.text = it.ci
binding.userTxtAge.text = person.age.toString() userTxtAge.text = it.age.toString()
})
} }
} }
override fun onCreateOptionsMenu(menu: Menu): Boolean { override fun onCreateOptionsMenu(menu: Menu): Boolean {
// Inflate the menu; this adds items to the action bar if it is present.
menuInflater.inflate(R.menu.user, menu) menuInflater.inflate(R.menu.user, menu)
return true return true
} }
...@@ -93,36 +82,4 @@ class User : AppCompatActivity() { ...@@ -93,36 +82,4 @@ class User : AppCompatActivity() {
} }
return false return false
} }
override fun onResume() {
super.onResume()
actualizar()
}
private fun getPersonId() : Int{
val pref = getSharedPreferences("MyPrefer", Context.MODE_PRIVATE)
var allEntrys: Map<String, *>? = null
if (pref != null) {
allEntrys = pref.all
}
var id: Int = 0
if (allEntrys != null) {
for (entry in allEntrys){
if (entry.key == "id") id = entry.value as Int
break
}
}
return id
}
fun actualizar() {
lifecycleScope.launch {
// val db: AplicationDB? = AplicationDB.getAplicationDB(context = this@User)
// adapter.tests = db?.testDao()?.getAll(id_person = getPersonId())!!
// recycler.adapter = adapter
}
getPersonById(getPersonId())
}
} }
\ No newline at end of file
package cu.iptriana.pesquisavirtual.ui.user package cu.iptriana.pesquisavirtual.ui.user
class UserViewModel { import androidx.lifecycle.LiveData
import androidx.lifecycle.ViewModel
import cu.iptriana.pesquisavirtual.data.Person
import cu.iptriana.pesquisavirtual.data.PersonRepository
import cu.iptriana.pesquisavirtual.data.Test
import cu.iptriana.pesquisavirtual.data.TestRepository
import cu.iptriana.pesquisavirtual.preferences.AppPreferences
class UserViewModel(
testRepository: TestRepository
, private val preferences: AppPreferences
, personRepository: PersonRepository
): ViewModel() {
val allTest: LiveData<List<Test>> = testRepository.getAll(getPersonId())
var person: LiveData<Person> = personRepository.getById(getPersonId())
private fun getPersonId(): Int = preferences.getPersonId()
} }
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment