Commit 222dc05d authored by iptriana's avatar iptriana
Browse files

Initial commit

parents
Pipeline #1130 failed with stages
in 0 seconds
*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
local.properties
# Default ignored files
/shelf/
/workspace.xml
Pesquisa Virtual
\ No newline at end of file
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<JetCodeStyleSettings>
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</JetCodeStyleSettings>
<codeStyleSettings language="XML">
<option name="FORCE_REARRANGE_MODE" value="1" />
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
</indentOptions>
<arrangement>
<rules>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:android</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:id</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>ANDROID_ATTRIBUTE_ORDER</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>.*</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
</rules>
</arrangement>
</codeStyleSettings>
<codeStyleSettings language="kotlin">
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</codeStyleSettings>
</code_scheme>
</component>
\ No newline at end of file
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="1.8" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="PLATFORM" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="1.8" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
<option name="useQualifiedModuleNames" value="true" />
</GradleProjectSettings>
</option>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="BintrayJCenter" />
<option name="name" value="BintrayJCenter" />
<option name="url" value="https://jcenter.bintray.com/" />
</remote-repository>
<remote-repository>
<option name="id" value="Google" />
<option name="name" value="Google" />
<option name="url" value="https://dl.google.com/dl/android/maven2/" />
</remote-repository>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="EntryPointsManager">
<list size="1">
<item index="0" class="java.lang.String" itemvalue="androidx.room.Entity" />
</list>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
/build
\ No newline at end of file
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
}
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
applicationId "cu.iptriana.pesquisavirtual"
minSdkVersion 23
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
buildFeatures{
viewBinding = true;
}
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.5.0'
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5'
implementation 'androidx.navigation:navigation-ui-ktx:2.3.5'
implementation 'androidx.navigation:navigation-fragment:2.3.5'
implementation 'androidx.navigation:navigation-ui:2.3.5'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation "androidx.room:room-ktx:2.2.6"
kapt "androidx.room:room-compiler:2.2.6"
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.2.0"
}
\ No newline at end of file
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
\ No newline at end of file
package cu.iptriana.pesquisavirtual
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.Assert.*
/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("cu.iptriana.pesquisavirtual", appContext.packageName)
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cu.iptriana.pesquisavirtual">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.PesquisaVirtual">
<activity android:name=".AddTest"></activity>
<activity
android:name=".User"
android:label="Usuario"
android:parentActivityName=".TestListActivity" />
<activity android:name=".TestListActivity" />
<activity android:name=".MainActivity" />
<activity
android:name=".AddUserActivity"
android:label="Añade a otra persona"
android:parentActivityName=".MainActivity" />
<activity
android:name=".Edit"
android:label="Editar"
android:parentActivityName=".User" />
<activity
android:name=".Splash"
android:theme="@style/Theme.PesquisaVirtual.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
\ No newline at end of file
package cu.iptriana.pesquisavirtual
import android.content.Context
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.LayoutInflater
import android.widget.Toast
import androidx.core.content.ContextCompat
import androidx.lifecycle.lifecycleScope
import cu.iptriana.pesquisavirtual.data.AplicationDB
import cu.iptriana.pesquisavirtual.data.Test
import cu.iptriana.pesquisavirtual.databinding.ActivityAddTestBinding
import cu.iptriana.pesquisavirtual.databinding.FragmentDiagnosticarBinding
import kotlinx.coroutines.launch
import java.util.*
class AddTest : AppCompatActivity() {
private lateinit var allEntrys: Map<String, *>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding = ActivityAddTestBinding.inflate(layoutInflater)
with(binding) {
setContentView(root)
val pref = getSharedPreferences("MyPrefer", Context.MODE_PRIVATE)
if (pref != null) {
allEntrys = pref.all
}
buttonEvaluarDiagnostico.setOnClickListener {
lifecycleScope.launch {
evaluar(
radioButtonViajeSi.isChecked,
radioButtonContactoViajeSi.isChecked,
radioButton2ContContagioSi.isChecked,
radioButton2RelSospSi.isChecked,
radioButtonFiebreSi.isChecked,
radioButtonSintomaRespSi.isChecked,
radioButtonTosSi.isChecked,
radioButtonFatigaSi.isChecked,
radioButtonDisneaSi.isChecked,
radioButtonDolorAbdominalSi.isChecked
)
}
finish()
}
}
}
suspend fun evaluar(diasRegreso: Boolean,
cantPersonasContacto: Boolean,
cantPersonasCOVID: Boolean,
relacionSospechoso: Boolean,
fiebre: Boolean,
problemasRespiratorios: Boolean,
tosSeca: Boolean,
fatiga: Boolean,
disnea: Boolean,
dolorAbdominal: Boolean) {
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(
0
, diasRegreso,
cantPersonasContacto,
cantPersonasCOVID,
relacionSospechoso,
fiebre,
problemasRespiratorios,
tosSeca,
fatiga,
disnea,
dolorAbdominal,
flat,
getPersonId(allEntrys),
str.toString()
)
val db = AplicationDB.getAplicationDB(this@AddTest)
db?.testDao()?.insert(test)
if (flat)
Toast.makeText(
this@AddTest,
"Usted es sospechoso/a, debe acudir al centro hospitalario más cerca",
Toast.LENGTH_SHORT
).show()
else
Toast.makeText(
this@AddTest,
"Usted no es sospechoso/a",
Toast.LENGTH_SHORT
).show()
}
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
}
}
package cu.iptriana.pesquisavirtual
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope
import cu.iptriana.pesquisavirtual.data.AplicationDB
import cu.iptriana.pesquisavirtual.data.Person
import cu.iptriana.pesquisavirtual.databinding.ActivityAddUserBinding
import kotlinx.android.synthetic.main.toolbar.*
import kotlinx.coroutines.launch
class AddUserActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
with(ActivityAddUserBinding.inflate(layoutInflater)) {
setContentView(root)
setSupportActionBar(toolbar)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
buttonAgregar.setOnClickListener {
val person = Person(
0
, txtName.text.toString()
, txtLastName.text.toString()
, txtCi.text.toString()
, txtAge.text.toString().toInt()
, isMale(radioButtonMasculino.isSelected)
)
lifecycleScope.launch {
val db = AplicationDB.getAplicationDB(this@AddUserActivity)
db?.personDao()?.insert(person)
Toast.makeText(
this@AddUserActivity,
"Registro insertado correctamente",
Toast.LENGTH_SHORT
).show()
}
finish()
}
buttonCancelar.setOnClickListener { finish() }
}
}
private fun isMale(flag: Boolean): String{
if(flag)
return "Masculino"
return "Femenino"
}
}
\ No newline at end of file
package cu.iptriana.pesquisavirtual
import android.content.Context
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope
import cu.iptriana.pesquisavirtual.data.AplicationDB
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() {
private lateinit var binding: ActivityAddUserBinding
private lateinit var person: Person
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityAddUserBinding.inflate(layoutInflater)
with(binding) {
setContentView(root)
setSupportActionBar(toolbar)
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
package cu.iptriana.pesquisavirtual
import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import cu.iptriana.pesquisavirtual.adapter.PersonAdapter
import cu.iptriana.pesquisavirtual.adapter.TestAdapter
import cu.iptriana.pesquisavirtual.data.AplicationDB
import cu.iptriana.pesquisavirtual.data.Person
import cu.iptriana.pesquisavirtual.databinding.ActivityMainBinding
import kotlinx.android.synthetic.main.content_main_activity.*
import kotlinx.android.synthetic.main.toolbar.*
import kotlinx.coroutines.launch
class MainActivity : AppCompatActivity() {
private lateinit var items:List<Person>
private lateinit var recycler: RecyclerView
private lateinit var adapter: PersonAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
with(ActivityMainBinding.inflate(layoutInflater)){
setContentView(root)
setSupportActionBar(toolbar)
fab.setOnClickListener { view ->
startActivity(
Intent(this@MainActivity, AddUserActivity::class.java)
)
}
items = listOf()
recycler = recyclerview
recycler.layoutManager = LinearLayoutManager(this@MainActivity)
adapter = PersonAdapter(items)
adapter.setOnItemClickListener(object : PersonAdapter.OnRecyclerClickListener<Person>{
override fun onClick(model: Person) {
startActivity(Intent(this@MainActivity, TestListActivity::class.java))
val sharedPreferences = getSharedPreferences("MyPrefer", Context.MODE_PRIVATE)
val edit: SharedPreferences.Editor = sharedPreferences.edit()
edit.putInt("id", model.id)
edit.apply()
finish()
}
override fun onLongClick(model: Person) {
TODO("Not yet implemented")
}
})
}
}
override fun onResume() {
super.onResume()
actualizar()
}
fun actualizar() {
lifecycleScope.launch {
val db: AplicationDB? = AplicationDB.getAplicationDB(context = this@MainActivity)
adapter.persons = db?.personDao()?.getAll()!!
recycler.adapter = adapter
}
}
}
\ 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