Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
iptriana
Pesquisa Virtual
Commits
3805ca52
Commit
3805ca52
authored
Aug 11, 2021
by
iptriana
Browse files
Issuses correct
parent
dccd8ef4
Changes
19
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
142 additions
and
902 deletions
+142
-902
app/src/main/AndroidManifest.xml
app/src/main/AndroidManifest.xml
+10
-10
app/src/main/java/cu/iptriana/pesquisavirtual/MainActivity.kt
...src/main/java/cu/iptriana/pesquisavirtual/MainActivity.kt
+8
-38
app/src/main/java/cu/iptriana/pesquisavirtual/data/AplicationDB.kt
...ain/java/cu/iptriana/pesquisavirtual/data/AplicationDB.kt
+11
-12
app/src/main/java/cu/iptriana/pesquisavirtual/data/Person.kt
app/src/main/java/cu/iptriana/pesquisavirtual/data/Person.kt
+1
-1
app/src/main/java/cu/iptriana/pesquisavirtual/data/PersonDao.kt
...c/main/java/cu/iptriana/pesquisavirtual/data/PersonDao.kt
+4
-3
app/src/main/java/cu/iptriana/pesquisavirtual/data/TestDao.kt
...src/main/java/cu/iptriana/pesquisavirtual/data/TestDao.kt
+2
-1
app/src/main/java/cu/iptriana/pesquisavirtual/ui/add_person/AddPersonFragment.kt
...triana/pesquisavirtual/ui/add_person/AddPersonFragment.kt
+28
-29
app/src/main/java/cu/iptriana/pesquisavirtual/ui/add_person/AddPersonViewModel.kt
...riana/pesquisavirtual/ui/add_person/AddPersonViewModel.kt
+24
-25
app/src/main/java/cu/iptriana/pesquisavirtual/ui/change_person/ChangePersonFragment.kt
.../pesquisavirtual/ui/change_person/ChangePersonFragment.kt
+19
-23
app/src/main/java/cu/iptriana/pesquisavirtual/ui/change_person/ChangePersonViewModel.kt
...pesquisavirtual/ui/change_person/ChangePersonViewModel.kt
+9
-22
app/src/main/java/cu/iptriana/pesquisavirtual/ui/home/HomeFragment.kt
.../java/cu/iptriana/pesquisavirtual/ui/home/HomeFragment.kt
+1
-4
app/src/main/res/layout/activity_add_test.xml
app/src/main/res/layout/activity_add_test.xml
+5
-605
app/src/main/res/layout/activity_add_user.xml
app/src/main/res/layout/activity_add_user.xml
+7
-120
app/src/main/res/layout/activity_splash.xml
app/src/main/res/layout/activity_splash.xml
+1
-1
app/src/main/res/layout/activity_user.xml
app/src/main/res/layout/activity_user.xml
+6
-2
app/src/main/res/layout/app_bar_main.xml
app/src/main/res/layout/app_bar_main.xml
+1
-1
app/src/main/res/layout/fragment_add_person.xml
app/src/main/res/layout/fragment_add_person.xml
+2
-2
app/src/main/res/menu/menu_main.xml
app/src/main/res/menu/menu_main.xml
+1
-1
app/src/main/res/navigation/mobile_navigation.xml
app/src/main/res/navigation/mobile_navigation.xml
+2
-2
No files found.
app/src/main/AndroidManifest.xml
View file @
3805ca52
...
@@ -9,23 +9,23 @@
...
@@ -9,23 +9,23 @@
android:roundIcon=
"@mipmap/ic_launcher_round"
android:roundIcon=
"@mipmap/ic_launcher_round"
android:supportsRtl=
"true"
android:supportsRtl=
"true"
android:theme=
"@style/Theme.PesquisaVirtual"
>
android:theme=
"@style/Theme.PesquisaVirtual"
>
<activity
android:name=
".AddTest
"
></a
ctivity>
<activity
android:name=
".
ui.diagnose.
AddTest
A
ctivity
"
/
>
<activity
<activity
android:name=
".
User
"
android:name=
".
ui.user.UserActivity
"
android:label=
"Usuario"
android:label=
"Usuario"
android:parentActivityName=
".TestListActivity"
/>
android:parentActivityName=
".MainActivity"
/>
<activity
android:name=
".TestListActivity"
/>
<activity
android:name=
".MainActivity"
/>
<activity
android:name=
".MainActivity"
/>
<activity
android:name=
".ui.change_person.ListPersonActivity"
/>
<activity
<activity
android:name=
".
AddUser
Activity"
android:name=
".
ui.add_person.AddPerson
Activity"
android:label=
"Añade a
otr
a persona"
android:label=
"Añade a
un
a persona"
android:parentActivityName=
".MainActivity"
/>
/>
<activity
<activity
android:name=
".Edit"
android:name=
".
ui.edit.
Edit"
android:label=
"Editar"
android:label=
"Editar"
android:parentActivityName=
".
User
"
/>
android:parentActivityName=
".
ui.user.UserActivity
"
/>
<activity
<activity
android:name=
".
Splash
"
android:name=
".
ui.splash.SplashActivity
"
android:theme=
"@style/Theme.PesquisaVirtual.NoActionBar"
>
android:theme=
"@style/Theme.PesquisaVirtual.NoActionBar"
>
<intent-filter>
<intent-filter>
<action
android:name=
"android.intent.action.MAIN"
/>
<action
android:name=
"android.intent.action.MAIN"
/>
...
...
app/src/main/java/cu/iptriana/pesquisavirtual/MainActivity.kt
View file @
3805ca52
package
cu.iptriana.pesquisavirtual
package
cu.iptriana.pesquisavirtual
import
android.content.Context
import
android.content.Intent
import
android.content.Intent
import
android.os.Bundle
import
android.os.Bundle
import
android.view.Menu
import
android.view.Menu
import
android.view.MenuItem
import
android.view.MenuItem
import
com.google.android.material.floatingactionbutton.FloatingActionButton
import
androidx.appcompat.app.AppCompatActivity
import
com.google.android.material.snackbar.Snack
bar
import
androidx.appcompat.widget.Tool
bar
import
com.google.android.material.navigation.NavigationView
import
androidx.drawerlayout.widget.DrawerLayout
import
androidx.navigation.findNavController
import
androidx.navigation.findNavController
import
androidx.navigation.ui.AppBarConfiguration
import
androidx.navigation.ui.AppBarConfiguration
import
androidx.navigation.ui.navigateUp
import
androidx.navigation.ui.navigateUp
import
androidx.navigation.ui.setupActionBarWithNavController
import
androidx.navigation.ui.setupActionBarWithNavController
import
androidx.navigation.ui.setupWithNavController
import
androidx.navigation.ui.setupWithNavController
import
androidx.drawerlayout.widget.DrawerLayout
import
com.google.android.material.navigation.NavigationView
import
androidx.appcompat.app.AppCompatActivity
import
cu.iptriana.pesquisavirtual.ui.user.UserActivity
import
androidx.appcompat.widget.PopupMenu
import
androidx.appcompat.widget.Toolbar
import
androidx.lifecycle.lifecycleScope
import
cu.iptriana.pesquisavirtual.data.AplicationDB
import
cu.iptriana.pesquisavirtual.data.Person
import
kotlinx.coroutines.launch
class
TestList
Activity
:
AppCompatActivity
()
{
class
Main
Activity
:
AppCompatActivity
()
{
private
lateinit
var
appBarConfiguration
:
AppBarConfiguration
private
lateinit
var
appBarConfiguration
:
AppBarConfiguration
private
lateinit
var
allEntrys
:
Map
<
String
,
*
>
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
setContentView
(
R
.
layout
.
activity_
test_list
)
setContentView
(
R
.
layout
.
activity_
main
)
val
toolbar
:
Toolbar
=
findViewById
(
R
.
id
.
toolbar
)
val
toolbar
:
Toolbar
=
findViewById
(
R
.
id
.
toolbar
)
setSupportActionBar
(
toolbar
)
setSupportActionBar
(
toolbar
)
...
@@ -45,10 +37,6 @@ class TestListActivity : AppCompatActivity() {
...
@@ -45,10 +37,6 @@ class TestListActivity : AppCompatActivity() {
)
)
setupActionBarWithNavController
(
navController
,
appBarConfiguration
)
setupActionBarWithNavController
(
navController
,
appBarConfiguration
)
navView
.
setupWithNavController
(
navController
)
navView
.
setupWithNavController
(
navController
)
val
pref
=
getSharedPreferences
(
"MyPrefer"
,
Context
.
MODE_PRIVATE
)
if
(
pref
!=
null
)
{
allEntrys
=
pref
.
all
}
}
}
override
fun
onCreateOptionsMenu
(
menu
:
Menu
):
Boolean
{
override
fun
onCreateOptionsMenu
(
menu
:
Menu
):
Boolean
{
...
@@ -59,29 +47,11 @@ class TestListActivity : AppCompatActivity() {
...
@@ -59,29 +47,11 @@ class TestListActivity : AppCompatActivity() {
override
fun
onOptionsItemSelected
(
item
:
MenuItem
):
Boolean
{
override
fun
onOptionsItemSelected
(
item
:
MenuItem
):
Boolean
{
if
(
item
.
itemId
==
R
.
id
.
action_settings
){
if
(
item
.
itemId
==
R
.
id
.
action_settings
){
startActivity
(
Intent
(
this
,
User
::
class
.
java
))
startActivity
(
Intent
(
this
,
User
Activity
::
class
.
java
))
}
}
return
false
return
false
}
}
private
fun
getPersonId
(
allEntrys
:
Map
<
String
,
*
>)
:
Int
{
var
id
:
Int
=
0
for
(
entry
in
allEntrys
){
if
(
entry
.
key
==
"id"
)
id
=
entry
.
value
as
Int
break
}
return
id
}
private
fun
getPersonById
(
id
:
Int
):
Person
{
var
person
:
Person
?
=
null
lifecycleScope
.
launch
{
val
db
=
AplicationDB
.
getAplicationDB
(
this
@TestListActivity
)
person
=
db
?.
personDao
()
?.
getById
(
id
)
!!
}
return
person
!!
}
override
fun
onSupportNavigateUp
():
Boolean
{
override
fun
onSupportNavigateUp
():
Boolean
{
val
navController
=
findNavController
(
R
.
id
.
nav_host_fragment
)
val
navController
=
findNavController
(
R
.
id
.
nav_host_fragment
)
return
navController
.
navigateUp
(
appBarConfiguration
)
||
super
.
onSupportNavigateUp
()
return
navController
.
navigateUp
(
appBarConfiguration
)
||
super
.
onSupportNavigateUp
()
...
...
app/src/main/java/cu/iptriana/pesquisavirtual/data/AplicationDB.kt
View file @
3805ca52
...
@@ -13,20 +13,19 @@ abstract class AplicationDB: RoomDatabase() {
...
@@ -13,20 +13,19 @@ abstract class AplicationDB: RoomDatabase() {
abstract
fun
personDao
():
PersonDao
abstract
fun
personDao
():
PersonDao
abstract
fun
testDao
():
TestDao
abstract
fun
testDao
():
TestDao
companion
object
{
companion
object
{
var
INTANCE
:
AplicationDB
?
=
null
private
const
val
DATABASE_NAME
=
"database"
fun
getAplicationDB
(
context
:
Context
):
AplicationDB
?
{
@Volatile
var
instance
:
AplicationDB
?
=
null
if
(
INTANCE
==
null
){
synchronized
(
AplicationDB
::
class
){
fun
getAplicationDB
(
context
:
Context
):
AplicationDB
{
INTANCE
=
Room
.
databaseBuilder
(
return
instance
?:
synchronized
(
this
)
{
context
.
applicationContext
,
instance
?:
buildDatabase
(
context
).
also
{
instance
=
it
}
AplicationDB
::
class
.
java
,
"mydb"
).
build
()
}
}
}
return
INTANCE
}
}
fun
destroyDB
(){
INTANCE
=
null
private
fun
buildDatabase
(
context
:
Context
)
:
AplicationDB
{
return
Room
.
databaseBuilder
(
context
,
AplicationDB
::
class
.
java
,
DATABASE_NAME
)
.
fallbackToDestructiveMigration
()
.
build
()
}
}
}
}
}
}
\ No newline at end of file
app/src/main/java/cu/iptriana/pesquisavirtual/data/Person.kt
View file @
3805ca52
...
@@ -6,7 +6,7 @@ import androidx.room.PrimaryKey
...
@@ -6,7 +6,7 @@ import androidx.room.PrimaryKey
@Entity
@Entity
data class
Person
(
data class
Person
(
@PrimaryKey
(
autoGenerate
=
true
)
@PrimaryKey
(
autoGenerate
=
true
)
va
l
id
:
Int
=
0
,
va
r
id
:
Int
=
0
,
val
name
:
String
,
val
name
:
String
,
val
last_name
:
String
,
val
last_name
:
String
,
val
ci
:
String
,
val
ci
:
String
,
...
...
app/src/main/java/cu/iptriana/pesquisavirtual/data/PersonDao.kt
View file @
3805ca52
package
cu.iptriana.pesquisavirtual.data
package
cu.iptriana.pesquisavirtual.data
import
androidx.lifecycle.LiveData
import
androidx.room.*
import
androidx.room.*
@Dao
@Dao
interface
PersonDao
{
interface
PersonDao
{
@Query
(
"SELECT * FROM Person"
)
@Query
(
"SELECT * FROM Person"
)
suspend
fun
getAll
():
List
<
Person
>
fun
getAll
():
LiveData
<
List
<
Person
>
>
@Query
(
"SELECT * FROM Person WHERE id = :id"
)
@Query
(
"SELECT * FROM Person WHERE id = :id"
)
suspend
fun
getById
(
id
:
Int
):
Person
fun
getById
(
id
:
Int
):
LiveData
<
Person
>
@Update
@Update
suspend
fun
update
(
person
:
Person
)
suspend
fun
update
(
person
:
Person
)
@Insert
@Insert
suspend
fun
insert
(
person
:
Person
)
suspend
fun
insert
(
person
:
Person
)
:
Long
@Delete
@Delete
suspend
fun
delete
(
person
:
Person
)
suspend
fun
delete
(
person
:
Person
)
...
...
app/src/main/java/cu/iptriana/pesquisavirtual/data/TestDao.kt
View file @
3805ca52
package
cu.iptriana.pesquisavirtual.data
package
cu.iptriana.pesquisavirtual.data
import
androidx.lifecycle.LiveData
import
androidx.room.*
import
androidx.room.*
@Dao
@Dao
interface
TestDao
{
interface
TestDao
{
@Query
(
"SELECT * FROM Test WHERE id_person = :id_person"
)
@Query
(
"SELECT * FROM Test WHERE id_person = :id_person"
)
suspend
fun
getAll
(
id_person
:
Int
):
List
<
Test
>
fun
getAll
(
id_person
:
Int
):
LiveData
<
List
<
Test
>
>
@Query
(
"SELECT * FROM Test WHERE id_test = :id"
)
@Query
(
"SELECT * FROM Test WHERE id_test = :id"
)
suspend
fun
getById
(
id
:
Int
):
Test
suspend
fun
getById
(
id
:
Int
):
Test
...
...
app/src/main/java/cu/iptriana/pesquisavirtual/ui/add_person/AddPersonFragment.kt
View file @
3805ca52
...
@@ -6,15 +6,12 @@ import android.view.LayoutInflater
...
@@ -6,15 +6,12 @@ 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
android.widget.Toast
import
androidx.core.content.ContextCompat
import
androidx.fragment.app.Fragment
import
androidx.fragment.app.Fragment
import
androidx.lifecycle.ViewModelProvider
import
androidx.lifecycle.ViewModelProvider
import
androidx.lifecycle.lifecycleScope
import
cu.iptriana.pesquisavirtual.MainActivity
import
cu.iptriana.pesquisavirtual.R
import
cu.iptriana.pesquisavirtual.TestListActivity
import
cu.iptriana.pesquisavirtual.data.Person
import
cu.iptriana.pesquisavirtual.databinding.FragmentAddPersonBinding
import
cu.iptriana.pesquisavirtual.databinding.FragmentAddPersonBinding
import
kotlinx.coroutines.launch
import
cu.iptriana.pesquisavirtual.di.Injector
import
cu.iptriana.pesquisavirtual.ui.change_person.ListPersonActivity
class
AddPersonFragment
:
Fragment
()
{
class
AddPersonFragment
:
Fragment
()
{
...
@@ -25,36 +22,38 @@ class AddPersonFragment : Fragment() {
...
@@ -25,36 +22,38 @@ class AddPersonFragment : Fragment() {
container
:
ViewGroup
?,
container
:
ViewGroup
?,
savedInstanceState
:
Bundle
?
savedInstanceState
:
Bundle
?
):
View
?
{
):
View
?
{
viewModelAdd
=
ViewModelProvider
(
this
)
viewModelAdd
=
ViewModelProvider
(
.
get
(
AddPersonViewModel
::
class
.
java
)
this
,
AddPersonViewModelFactory
(
Injector
.
getPersonRepository
(
requireContext
()),
Injector
.
getPreferences
(
requireContext
())
)
).
get
(
AddPersonViewModel
::
class
.
java
)
val
binding
=
FragmentAddPersonBinding
val
binding
=
FragmentAddPersonBinding
.
inflate
(
LayoutInflater
.
from
(
context
),
container
,
false
)
.
inflate
(
LayoutInflater
.
from
(
context
),
container
,
false
)
with
(
binding
)
{
with
(
binding
)
{
buttonAgregar
.
setOnClickListener
{
buttonAdd
.
setOnClickListener
{
lifecycleScope
.
launch
{
viewModelAdd
.
addPerson
(
val
person
=
Person
(
txtName
.
text
.
toString
()
0
,
txtName
.
text
.
toString
()
,
txtLastName
.
text
.
toString
()
,
txtLastName
.
text
.
toString
()
,
txtCi
.
text
.
toString
()
,
txtCi
.
text
.
toString
()
,
txtAge
.
text
.
toString
().
toInt
()
,
txtAge
.
text
.
toString
().
toInt
()
,
viewModelAdd
.
isMale
(
radioButtonMasculino
.
is
Sel
ec
t
ed
)
,
radioButtonMasculino
.
is
Ch
ec
k
ed
)
)
context
?.
let
{
it1
->
viewModelAdd
.
addPerson
(
it1
,
person
)
}
}
Toast
.
makeText
(
context
,
"Registro insertado correctamente"
,
Toast
.
LENGTH_SHORT
)
Toast
.
makeText
(
context
,
"Registro insertado correctamente"
,
Toast
.
LENGTH_SHORT
)
.
show
()
.
show
()
viewModelAdd
.
clean
(
this
)
txtName
.
setText
(
""
)
txtLastName
.
setText
(
""
)
txtCi
.
setText
(
""
)
txtAge
.
setText
(
""
)
}
}
buttonCancelar
.
setOnClickListener
{
buttonCancel
.
setOnClickListener
{
context
?.
let
{
it1
->
val
intent
:
Intent
?
ContextCompat
.
startActivity
(
if
(
viewModelAdd
.
getSelectionEmpty
())
it1
,
intent
=
Intent
(
requireContext
(),
ListPersonActivity
::
class
.
java
)
Intent
(
context
,
TestListActivity
::
class
.
java
),
else
intent
=
Intent
(
requireContext
(),
MainActivity
::
class
.
java
)
null
startActivity
(
intent
)
)
}
activity
?.
finish
()
activity
?.
finish
()
}
}
}
}
...
...
app/src/main/java/cu/iptriana/pesquisavirtual/ui/add_person/AddPersonViewModel.kt
View file @
3805ca52
package
cu.iptriana.pesquisavirtual.ui.add_person
package
cu.iptriana.pesquisavirtual.ui.add_person
import
android.content.Context
import
android.widget.Toast
import
androidx.lifecycle.ViewModel
import
androidx.lifecycle.ViewModel
import
cu.iptriana.pesquisavirtual.data.AplicationDB
import
androidx.lifecycle.viewModelScope
import
cu.iptriana.pesquisavirtual.data.Person
import
cu.iptriana.pesquisavirtual.data.Person
import
cu.iptriana.pesquisavirtual.databinding.FragmentAddPersonBinding
import
cu.iptriana.pesquisavirtual.data.PersonRepository
import
cu.iptriana.pesquisavirtual.preferences.AppPreferences
class
AddPersonViewModel
:
ViewModel
()
{
import
kotlinx.coroutines.launch
suspend
fun
addPerson
(
context
:
Context
,
person
:
Person
){
val
db
=
AplicationDB
.
getAplicationDB
(
context
)
class
AddPersonViewModel
(
db
?.
personDao
()
?.
insert
(
person
)
private
val
personRepository
:
PersonRepository
Toast
.
makeText
(
,
preferences
:
AppPreferences
context
,
)
:
ViewModel
()
{
"Registro insertado correctamente"
,
Toast
.
LENGTH_SHORT
private
var
personAdded
:
Person
?
=
null
).
show
()
private
var
selectEmpty
:
Boolean
=
preferences
.
isEmpty
()
fun
getSelectionEmpty
():
Boolean
=
selectEmpty
fun
addPerson
(
name
:
String
,
last_name
:
String
,
ci
:
String
,
age
:
Int
,
male
:
Boolean
)
{
viewModelScope
.
launch
{
personAdded
=
Person
(
0
,
name
,
last_name
,
ci
,
age
,
isMale
(
male
))
val
personiId
=
personRepository
.
insert
(
personAdded
!!
)
personAdded
!!
.
id
=
personiId
.
toInt
()
}
}
}
fun
isMale
(
flag
:
Boolean
):
String
{
private
fun
isMale
(
flag
:
Boolean
):
String
{
if
(
flag
)
if
(
flag
)
return
"Masculino"
return
"Masculino"
return
"Femenino"
return
"Femenino"
}
}
fun
clean
(
binding
:
FragmentAddPersonBinding
)
{
with
(
binding
)
{
txtName
.
setText
(
""
)
txtLastName
.
setText
(
""
)
txtCi
.
setText
(
""
)
txtAge
.
setText
(
""
)
}
}
}
}
\ No newline at end of file
app/src/main/java/cu/iptriana/pesquisavirtual/ui/change_person/ChangePersonFragment.kt
View file @
3805ca52
package
cu.iptriana.pesquisavirtual.ui.change_person
package
cu.iptriana.pesquisavirtual.ui.change_person
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
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
androidx.recyclerview.widget.LinearLayoutManager
import
androidx.recyclerview.widget.LinearLayoutManager
import
androidx.recyclerview.widget.RecyclerView
import
cu.iptriana.pesquisavirtual.MainActivity
import
cu.iptriana.pesquisavirtual.adapter.PersonAdapter
import
cu.iptriana.pesquisavirtual.adapter.PersonAdapter
import
cu.iptriana.pesquisavirtual.adapter.TestAdapter
import
cu.iptriana.pesquisavirtual.data.Person
import
cu.iptriana.pesquisavirtual.data.Person
import
cu.iptriana.pesquisavirtual.databinding.FragmentChangePersonBinding
import
cu.iptriana.pesquisavirtual.databinding.FragmentChangePersonBinding
import
kotlinx.coroutines.launch
import
cu.iptriana.pesquisavirtual.di.Injector
class
ChangePersonFragment
:
Fragment
()
{
class
ChangePersonFragment
:
Fragment
()
{
private
lateinit
var
viewModel
:
ChangePersonViewModel
private
lateinit
var
recycler
:
RecyclerView
private
lateinit
var
adapter
:
PersonAdapter
override
fun
onCreateView
(
override
fun
onCreateView
(
inflater
:
LayoutInflater
,
inflater
:
LayoutInflater
,
container
:
ViewGroup
?,
container
:
ViewGroup
?,
savedInstanceState
:
Bundle
?
savedInstanceState
:
Bundle
?
):
View
?
{
):
View
?
{
viewModel
=
ViewModelProvider
(
this
)
val
viewModel
=
ViewModelProvider
(
.
get
(
ChangePersonViewModel
::
class
.
java
)
this
,
ChangePersonViewModelFactory
(
Injector
.
getPersonRepository
(
requireContext
()),
Injector
.
getPreferences
(
requireContext
())
)
).
get
(
ChangePersonViewModel
::
class
.
java
)
val
binding
=
FragmentChangePersonBinding
.
inflate
(
val
binding
=
FragmentChangePersonBinding
.
inflate
(
LayoutInflater
.
from
(
context
),
container
,
false
)
LayoutInflater
.
from
(
context
),
container
,
false
)
with
(
binding
){
with
(
binding
){
recycler
=
recyclerview
recyclerview
.
layoutManager
=
LinearLayoutManager
(
context
)
recycler
.
layoutManager
=
LinearLayoutManager
(
context
)
val
adapter
=
PersonAdapter
(
listOf
())
adapter
=
PersonAdapter
(
listOf
())
adapter
.
setOnItemClickListener
(
object
:
PersonAdapter
.
OnRecyclerClickListener
<
Person
>{
adapter
.
setOnItemClickListener
(
object
:
PersonAdapter
.
OnRecyclerClickListener
<
Person
>{
override
fun
onClick
(
model
:
Person
)
{
override
fun
onClick
(
model
:
Person
)
{
viewModel
.
changePerson
(
model
,
root
.
context
)
viewModel
.
changePerson
(
model
)
startActivity
(
Intent
(
requireContext
(),
MainActivity
::
class
.
java
))
activity
!!
.
finish
()
activity
!!
.
finish
()
}
}
...
@@ -47,18 +48,13 @@ class ChangePersonFragment : Fragment() {
...
@@ -47,18 +48,13 @@ class ChangePersonFragment : Fragment() {
}
}
})
})
viewModel
.
allPerson
.
observe
(
requireActivity
(),
Observer
{
adapter
.
persons
=
it
recyclerview
.
adapter
=
adapter
})
}
}
return
binding
.
root
return
binding
.
root
}
}
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
super
.
onViewCreated
(
view
,
savedInstanceState
)
var
list
=
listOf
<
Person
>()
lifecycleScope
.
launch
{
adapter
.
persons
=
context
?.
let
{
viewModel
.
actualizar
(
it
)
}
!!
recycler
.
adapter
=
adapter
}
}
}
}
\ No newline at end of file
app/src/main/java/cu/iptriana/pesquisavirtual/ui/change_person/ChangePersonViewModel.kt
View file @
3805ca52
package
cu.iptriana.pesquisavirtual.ui.change_person
package
cu.iptriana.pesquisavirtual.ui.change_person
import
android.content.Context
import
androidx.lifecycle.LiveData
import
android.content.Intent
import
android.content.SharedPreferences
import
androidx.core.content.ContextCompat.startActivity
import
androidx.lifecycle.ViewModel
import
androidx.lifecycle.ViewModel
import
cu.iptriana.pesquisavirtual.TestListActivity
import
cu.iptriana.pesquisavirtual.data.AplicationDB
import
cu.iptriana.pesquisavirtual.data.Person
import
cu.iptriana.pesquisavirtual.data.Person
import
cu.iptriana.pesquisavirtual.data.PersonRepository
import
cu.iptriana.pesquisavirtual.preferences.AppPreferences
class
ChangePersonViewModel
:
ViewModel
()
{
class
ChangePersonViewModel
(
personRepository
:
PersonRepository
fun
changePerson
(
model
:
Person
,
context
:
Context
){
,
private
val
preferences
:
AppPreferences
startActivity
(
context
,
Intent
(
context
,
TestListActivity
::
class
.
java
),
null
)
)
:
ViewModel
()
{
val
sharedPreferences
=
context
.
getSharedPreferences
(
val
allPerson
:
LiveData
<
List
<
Person
>>
=
personRepository
.
getAll
()
"MyPrefer"
,
Context
.
MODE_PRIVATE
)
val
edit
:
SharedPreferences
.
Editor
=
sharedPreferences
!!
.
edit
()
edit
.
clear
()
edit
.
putInt
(
"id"
,
model
.
id
)
edit
.
apply
()
}
suspend
fun
actualizar
(
context
:
Context
)
:
List
<
Person
>{
val
db
:
AplicationDB
?
=
AplicationDB
.
getAplicationDB
(
context
)
return
db
?.
personDao
()
?.
getAll
()
!!
}
fun
changePerson
(
model
:
Person
)
=
preferences
.
changePerson
(
model
)
}
}
\ No newline at end of file
app/src/main/java/cu/iptriana/pesquisavirtual/ui/home/HomeFragment.kt
View file @
3805ca52
...
@@ -4,9 +4,7 @@ import android.os.Bundle
...
@@ -4,9 +4,7 @@ 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.TextView
import
androidx.fragment.app.Fragment
import
androidx.fragment.app.Fragment
import
androidx.lifecycle.Observer
import
androidx.lifecycle.ViewModelProvider
import
androidx.lifecycle.ViewModelProvider
import
cu.iptriana.pesquisavirtual.R
import
cu.iptriana.pesquisavirtual.R
...
@@ -21,8 +19,7 @@ class HomeFragment : Fragment() {
...
@@ -21,8 +19,7 @@ class HomeFragment : Fragment() {
):
View
?
{
):
View
?
{
homeViewModel
=
homeViewModel
=
ViewModelProvider
(
this
).
get
(
HomeViewModel
::
class
.
java
)
ViewModelProvider
(
this
).
get
(
HomeViewModel
::
class
.
java
)
val
root
=
inflater
.
inflate
(
R
.
layout
.
fragment_home
,
container
,
false
)
return
root
return
inflater
.
inflate
(
R
.
layout
.
fragment_home
,
container
,
false
)
}
}
}
}
\ No newline at end of file
app/src/main/res/layout/activity_add_test.xml
View file @
3805ca52
This diff is collapsed.
Click to expand it.
app/src/main/res/layout/activity_add_user.xml
View file @
3805ca52
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<FrameLayout
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"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
tools:context=
".
AddUser
Activity"
>
tools:context=
".
ui.add_person.AddPerson
Activity"
>
<LinearLayout
<LinearLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
<include
layout=
"@layout/toolbar"
/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"675dp"
android:padding=
"16dp"
>
<LinearLayout
android:id=
"@+id/linearLayout"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"16dp"
android:orientation=
"vertical"
android:orientation=
"vertical"
app:layout_constraintEnd_toEndOf=
"parent"
tools:ignore=
"UselessParent"
>
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
>
<com.google.android.material.textfield.TextInputLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<com.google.android.material.textfield.TextInputEditText
android:id=
"@+id/txt_name"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"5dp"
android:background=
"@color/white"
android:hint=
"Nombre"
/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<com.google.android.material.textfield.TextInputEditText
android:id=
"@+id/txt_last_name"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"5dp"
android:background=
"@color/white"
android:hint=
"Apellidos"
/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<com.google.android.material.textfield.TextInputEditText
<include
layout=
"@layout/toolbar"
/>
android:id=
"@+id/txt_ci"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"5dp"
android:background=
"@color/white"
android:hint=
"CI"
android:inputType=
"number"
android:maxLength=
"11"
/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<com.google.android.material.textfield.TextInputEditText
android:id=
"@+id/txt_age"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"5dp"
android:background=
"@color/white"
android:hint=
"Edad"
android:inputType=
"number"
android:maxLength=
"3"
/>
</com.google.android.material.textfield.TextInputLayout>
<RadioGroup
<androidx.fragment.app.FragmentContainerView
android:id=
"@+id/fragment_container_add_person"
android:name=
"cu.iptriana.pesquisavirtual.ui.add_person.AddPersonFragment"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginTop=
"50dp"
android:orientation=
"horizontal"
>
<RadioButton
android:id=
"@+id/radioButton_masculino"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:checked=
"true"
android:text=
"Masculino"
/>
<RadioButton
android:id=
"@+id/radioButton_femenino"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:text=
"Femenino"
/>
</RadioGroup>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
<LinearLayout
android:layout_width=
"335dp"
android:layout_height=
"48dp"
android:layout_gravity=
"bottom|center"
android:orientation=
"horizontal"
>
<Button
android:id=
"@+id/button_cancelar"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginRight=
"5dp"
android:layout_weight=
"1"
android:text=
"Cancelar"
/>
<Button
android:id=
"@+id/button_agregar"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"5dp"
/>
android:layout_weight=
"1"
android:text=
"Agregar"
/>
</LinearLayout>
</LinearLayout>
</FrameLayout>
</FrameLayout>
\ No newline at end of file
app/src/main/res/layout/activity_splash.xml
View file @
3805ca52
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
tools:context=
".
Splash
"
>
tools:context=
".
ui.splash.SplashActivity
"
>
<ImageView
<ImageView
android:id=
"@+id/imageView"
android:id=
"@+id/imageView"
...
...
app/src/main/res/layout/activity_user.xml
View file @
3805ca52
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
tools:context=
".
User
"
>
tools:context=
".
ui.user.UserActivity
"
>
<androidx.appcompat.widget.LinearLayoutCompat
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
...
@@ -116,7 +116,11 @@
...
@@ -116,7 +116,11 @@
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</androidx.cardview.widget.CardView>
<include
layout=
"@layout/content_main_activity"
/>
<androidx.recyclerview.widget.RecyclerView
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:id=
"@+id/recyclerview"
>
</androidx.recyclerview.widget.RecyclerView>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
...
...
app/src/main/res/layout/app_bar_main.xml
View file @
3805ca52
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
tools:context=
".
TestList
Activity"
>
tools:context=
".
Main
Activity"
>
<LinearLayout
<LinearLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
...
...
app/src/main/res/layout/fragment_add_person.xml
View file @
3805ca52
...
@@ -112,7 +112,7 @@
...
@@ -112,7 +112,7 @@
android:orientation=
"horizontal"
>
android:orientation=
"horizontal"
>
<Button
<Button
android:id=
"@+id/button_cancel
ar
"
android:id=
"@+id/button_cancel"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginRight=
"5dp"
android:layout_marginRight=
"5dp"
android:layout_weight=
"1"
android:layout_weight=
"1"
...
@@ -120,7 +120,7 @@
...
@@ -120,7 +120,7 @@
android:text=
"Atras"
/>
android:text=
"Atras"
/>
<Button
<Button
android:id=
"@+id/button_a
gregar
"
android:id=
"@+id/button_a
dd
"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"5dp"
android:layout_marginLeft=
"5dp"
android:layout_weight=
"1"
android:layout_weight=
"1"
...
...
app/src/main/res/menu/menu_main.xml
View file @
3805ca52
<menu
xmlns:android=
"http://schemas.android.com/apk/res/android"
<menu
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
tools:context=
"cu.iptriana.pesquisavirtual.
Mai
nActivity"
>
tools:context=
"cu.iptriana.pesquisavirtual.
ui.change_person.ListPerso
nActivity"
>
<item
<item
android:id=
"@+id/action_settings"
android:id=
"@+id/action_settings"
android:title=
"@string/action_settings"
android:title=
"@string/action_settings"
...
...
app/src/main/res/navigation/mobile_navigation.xml
View file @
3805ca52
...
@@ -25,13 +25,13 @@
...
@@ -25,13 +25,13 @@
<fragment
<fragment
android:id=
"@+id/nav_diagnosticar"
android:id=
"@+id/nav_diagnosticar"
android:name=
"cu.iptriana.pesquisavirtual.ui.diagnos
ticar
.Diagnos
ticar
Fragment"
android:name=
"cu.iptriana.pesquisavirtual.ui.diagnos
e
.Diagnos
e
Fragment"
android:label=
"Diagnosticar enfermendad"
android:label=
"Diagnosticar enfermendad"
tools:layout=
"@layout/fragment_diagnosticar"
/>
tools:layout=
"@layout/fragment_diagnosticar"
/>
<fragment
<fragment
android:id=
"@+id/nav_fatalaidad"
android:id=
"@+id/nav_fatalaidad"
android:name=
"cu.iptriana.pesquisavirtual.ui.fatali
dad
.Fatali
dad
Fragment"
android:name=
"cu.iptriana.pesquisavirtual.ui.fatali
ty
.Fatali
ty
Fragment"
android:label=
"Fatalidad"
android:label=
"Fatalidad"
tools:layout=
"@layout/fragment_fatalidad"
/>
tools:layout=
"@layout/fragment_fatalidad"
/>
</navigation>
</navigation>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment