From a844e8e04080f6a86754743b8e2ca9536f090c81 Mon Sep 17 00:00:00 2001 From: leynier Date: Sun, 3 May 2020 04:10:34 -0400 Subject: [PATCH 1/7] Update version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index eac4166..70c9070 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: covid19cuba description: Mobile application of Covid19 Cuba Data project implemented with Flutter. -version: 0.6.1+10 +version: 0.7.0+11 environment: sdk: ">=2.6.0 <3.0.0" From 898d18be16fc55edd3eebff5414c4634c9a2a2d2 Mon Sep 17 00:00:00 2001 From: DanielUH2019 Date: Sun, 3 May 2020 14:08:55 -0500 Subject: [PATCH 2/7] Update_comparison_widget.dart switch case replacement proposal --- lib/src/widgets/comparison_widget.dart | 311 ++++--------------------- 1 file changed, 45 insertions(+), 266 deletions(-) diff --git a/lib/src/widgets/comparison_widget.dart b/lib/src/widgets/comparison_widget.dart index 884c585..dfe595b 100644 --- a/lib/src/widgets/comparison_widget.dart +++ b/lib/src/widgets/comparison_widget.dart @@ -61,46 +61,23 @@ class ComparisonWidgetState extends State { ]; } - String getChartTitle() { - switch (selectedOption) { - case 'Confirmados': - case 'Activos': - case 'Diarios': - case 'Recuperados': - case 'Fallecidos': - return 'Casos'; - case 'Stringency Index': - return 'Valor del índice'; - } - return ''; - } + String getChartTitle() => selectedOption == 'Stringency Index' ? 'Valor del índice' : 'Casos'; - String getLegend() { - switch (selectedOption) { - case 'Confirmados': - case 'Activos': - case 'Diarios': - case 'Recuperados': - case 'Fallecidos': - return 'Casos'; - case 'Stringency Index': - return ''; - } - return ''; - } + String getLegend() => selectedOption == 'Stringency Index' ? '' : 'Casos'; + + String getMeasure(num measure) => selectedOption == 'Stringency Index' ? measure.toString() : measure.toInt(); + + List _getCountryAttribute(ComparisonOfAccumulatedCasesItem country) { - String getMeasure(num measure) { - switch (selectedOption) { - case 'Confirmados': - case 'Activos': - case 'Diarios': - case 'Recuperados': - case 'Fallecidos': - return measure.toInt().toString(); - case 'Stringency Index': - return measure.toString(); - } - return ''; + Map> countryAttributes = {'Confirmados' : country.confirmed, + 'Fallecidos' : country.deaths, + 'Recuperados' : country.recovered, + 'Diarios' : country.daily, + 'Activos' : country.active, + 'Stringency Index': country.stringency, + }; + + return countryAttributes[selectedOption]; } List getBehaviors() { @@ -135,110 +112,24 @@ class ComparisonWidgetState extends State { } charts.NumericAxisSpec getNumericAxisSpec() { - int lenCuba; - int lenForeign; - switch (selectedOption) { - case 'Confirmados': - lenCuba = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].confirmed.length; - lenForeign = comparisonOfAccumulatedCases - .countries[selectedCountry].confirmed.length; - break; - case 'Activos': - lenCuba = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].active.length; - lenForeign = comparisonOfAccumulatedCases - .countries[selectedCountry].active.length; - break; - case 'Diarios': - lenCuba = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].daily.length; - lenForeign = comparisonOfAccumulatedCases - .countries[selectedCountry].daily.length; - break; - case 'Recuperados': - lenCuba = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].recovered.length; - lenForeign = comparisonOfAccumulatedCases - .countries[selectedCountry].recovered.length; - break; - case 'Fallecidos': - lenCuba = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].deaths.length; - lenForeign = comparisonOfAccumulatedCases - .countries[selectedCountry].deaths.length; - break; - case 'Stringency Index': - lenCuba = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].stringency.length; - lenForeign = comparisonOfAccumulatedCases - .countries[selectedCountry].stringency.length; - break; - } + int lenCuba = _getCountryAttribute(comparisonOfAccumulatedCases.countries[Constants.countryCuba]).length; + int lenForeign = _getCountryAttribute(comparisonOfAccumulatedCases.countries[selectedCountry]).length; + return charts.NumericAxisSpec( viewport: charts.NumericExtents(1, max(lenForeign, lenCuba)), ); } - + charts.NumericAxisSpec getNumericAxisSpecZoom() { - var length = 0; - switch (selectedOption) { - case 'Confirmados': - length = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].confirmed.length; - break; - case 'Activos': - length = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].active.length; - break; - case 'Diarios': - length = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].daily.length; - break; - case 'Recuperados': - length = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].recovered.length; - break; - case 'Fallecidos': - length = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].deaths.length; - break; - case 'Stringency Index': - length = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].stringency.length; - break; - } + + var length = _getCountryAttribute(comparisonOfAccumulatedCases.countries[Constants.countryCuba]).length; + return charts.NumericAxisSpec(viewport: charts.NumericExtents(1, length)); } List getSpecBehaviors() { - var length = 0; - switch (selectedOption) { - case 'Confirmados': - length = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].confirmed.length; - break; - case 'Activos': - length = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].active.length; - break; - case 'Diarios': - length = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].daily.length; - break; - case 'Recuperados': - length = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].recovered.length; - break; - case 'Fallecidos': - length = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].deaths.length; - break; - case 'Stringency Index': - length = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].stringency.length; - break; - } + var length = _getCountryAttribute(comparisonOfAccumulatedCases.countries[Constants.countryCuba]).length; + var behaviors = getBehaviors(); behaviors.addAll([ charts.RangeAnnotation([ @@ -253,102 +144,27 @@ class ComparisonWidgetState extends State { } String getFooter() { - String footer; - switch (selectedOption) { - case 'Confirmados': - case 'Activos': - case 'Diarios': - case 'Recuperados': - case 'Fallecidos': - footer = 'Datos de los países tomados ' - 'de\nhttps://github.com/pomber/covid19\ny ' - 'actualizado el ' - '${comparisonOfAccumulatedCases.updated.toStrPlus()}'; - break; - case 'Stringency Index': - footer = 'El Oxford Stringency Index\n' - 'https://www.bsg.ox.ac.uk/research/research-projects/' - 'coronavirus-government-response-tracker\nevalúa las ' - 'intervenciones del estado en la epidemia.\nLos valores ' - 'se obtienen de\nhttps://covidtracker.' - 'bsg.ox.ac.uk/about-api'; - break; - } - return footer; - } + if(selectedOption == 'Stringency Index') + return 'El Oxford Stringency Index\n' + 'https://www.bsg.ox.ac.uk/research/research-projects/' + 'coronavirus-government-response-tracker\nevalúa las ' + 'intervenciones del estado en la epidemia.\nLos valores ' + 'se obtienen de\nhttps://covidtracker.' + 'bsg.ox.ac.uk/about-api'; - bool haveData() { - var length = 0; - switch (selectedOption) { - case 'Confirmados': - length = comparisonOfAccumulatedCases - .countries[selectedCountry].confirmed.length; - break; - case 'Activos': - length = comparisonOfAccumulatedCases - .countries[selectedCountry].active.length; - break; - case 'Diarios': - length = comparisonOfAccumulatedCases - .countries[selectedCountry].daily.length; - break; - case 'Recuperados': - length = comparisonOfAccumulatedCases - .countries[selectedCountry].recovered.length; - break; - case 'Fallecidos': - length = comparisonOfAccumulatedCases - .countries[selectedCountry].deaths.length; - break; - case 'Stringency Index': - length = comparisonOfAccumulatedCases - .countries[selectedCountry].stringency.length; - break; - } - return length != 0; + return 'Datos de los países tomados ' + 'de\nhttps://github.com/pomber/covid19\ny ' + 'actualizado el ' + '${comparisonOfAccumulatedCases.updated.toStrPlus()}'; } + + bool haveData() => _getCountryAttribute(comparisonOfAccumulatedCases.countries[selectedCountry]).length != 0; + List> getSeries() { - List listCuba; - List listForeign; - switch (selectedOption) { - case 'Confirmados': - listCuba = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].confirmed; - listForeign = - comparisonOfAccumulatedCases.countries[selectedCountry].confirmed; - break; - case 'Activos': - listCuba = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].active; - listForeign = - comparisonOfAccumulatedCases.countries[selectedCountry].active; - break; - case 'Diarios': - listCuba = - comparisonOfAccumulatedCases.countries[Constants.countryCuba].daily; - listForeign = - comparisonOfAccumulatedCases.countries[selectedCountry].daily; - break; - case 'Recuperados': - listCuba = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].recovered; - listForeign = - comparisonOfAccumulatedCases.countries[selectedCountry].recovered; - break; - case 'Fallecidos': - listCuba = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].deaths; - listForeign = - comparisonOfAccumulatedCases.countries[selectedCountry].deaths; - break; - case 'Stringency Index': - listCuba = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].stringency; - listForeign = - comparisonOfAccumulatedCases.countries[selectedCountry].stringency; - break; - } + List listCuba = _getCountryAttribute(comparisonOfAccumulatedCases.countries[Constants.countryCuba]); + List listForeign = _getCountryAttribute(comparisonOfAccumulatedCases.countries[selectedCountry]); + return [ charts.Series( id: comparisonOfAccumulatedCases.countries[selectedCountry].name, @@ -368,46 +184,9 @@ class ComparisonWidgetState extends State { } List> getZoomSeries() { - List listCuba; - List listForeign; - switch (selectedOption) { - case 'Confirmados': - listCuba = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].confirmed; - listForeign = - comparisonOfAccumulatedCases.countries[selectedCountry].confirmed; - break; - case 'Activos': - listCuba = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].active; - listForeign = - comparisonOfAccumulatedCases.countries[selectedCountry].active; - break; - case 'Diarios': - listCuba = - comparisonOfAccumulatedCases.countries[Constants.countryCuba].daily; - listForeign = - comparisonOfAccumulatedCases.countries[selectedCountry].daily; - break; - case 'Recuperados': - listCuba = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].recovered; - listForeign = - comparisonOfAccumulatedCases.countries[selectedCountry].recovered; - break; - case 'Fallecidos': - listCuba = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].deaths; - listForeign = - comparisonOfAccumulatedCases.countries[selectedCountry].deaths; - break; - case 'Stringency Index': - listCuba = comparisonOfAccumulatedCases - .countries[Constants.countryCuba].stringency; - listForeign = - comparisonOfAccumulatedCases.countries[selectedCountry].stringency; - break; - } + List listCuba = _getCountryAttribute(comparisonOfAccumulatedCases.countries[Constants.countryCuba]); + List listForeign = _getCountryAttribute(comparisonOfAccumulatedCases.countries[selectedCountry]); + return [ charts.Series( id: comparisonOfAccumulatedCases.countries[selectedCountry].name, @@ -637,7 +416,7 @@ class ComparisonWidgetState extends State { ), child: Center( child: Text( - 'Comparación en el período de ${Constants.countryCuba}', + 'Comparación en el período de Cuba', textAlign: TextAlign.center, style: TextStyle( color: Constants.primaryColor, From eff7c576eb02099dd171376df9de094587a9f3e7 Mon Sep 17 00:00:00 2001 From: leynier Date: Sun, 3 May 2020 16:27:53 -0400 Subject: [PATCH 3/7] Fix comparison widget --- lib/src/widgets/comparison_widget.dart | 119 ++++++++++++++++--------- 1 file changed, 76 insertions(+), 43 deletions(-) diff --git a/lib/src/widgets/comparison_widget.dart b/lib/src/widgets/comparison_widget.dart index dfe595b..1161f61 100644 --- a/lib/src/widgets/comparison_widget.dart +++ b/lib/src/widgets/comparison_widget.dart @@ -61,23 +61,44 @@ class ComparisonWidgetState extends State { ]; } - String getChartTitle() => selectedOption == 'Stringency Index' ? 'Valor del índice' : 'Casos'; + String getChartTitle() { + if (selectedOption == 'Stringency Index') { + return 'Valor del índice'; + } + return 'Casos'; + } - String getLegend() => selectedOption == 'Stringency Index' ? '' : 'Casos'; - - String getMeasure(num measure) => selectedOption == 'Stringency Index' ? measure.toString() : measure.toInt(); - - List _getCountryAttribute(ComparisonOfAccumulatedCasesItem country) { + String getLegend() { + if (selectedOption == 'Stringency Index') { + return ''; + } + return 'Casos'; + } - Map> countryAttributes = {'Confirmados' : country.confirmed, - 'Fallecidos' : country.deaths, - 'Recuperados' : country.recovered, - 'Diarios' : country.daily, - 'Activos' : country.active, - 'Stringency Index': country.stringency, - }; + String getMeasure(num measure) { + if (selectedOption == 'Stringency Index') { + return measure.toString(); + } + return measure.toInt().toString(); + } - return countryAttributes[selectedOption]; + List getCountryAttribute(ComparisonOfAccumulatedCasesItem country) { + switch (selectedOption) { + case 'Confirmados': + return country.confirmed; + case 'Fallecidos': + return country.deaths; + case 'Recuperados': + return country.recovered; + case 'Diarios': + return country.daily; + case 'Activos': + return country.active; + case 'Stringency Index': + return country.stringency; + default: + return country.confirmed; + } } List getBehaviors() { @@ -112,24 +133,28 @@ class ComparisonWidgetState extends State { } charts.NumericAxisSpec getNumericAxisSpec() { - int lenCuba = _getCountryAttribute(comparisonOfAccumulatedCases.countries[Constants.countryCuba]).length; - int lenForeign = _getCountryAttribute(comparisonOfAccumulatedCases.countries[selectedCountry]).length; - + var lenCuba = getCountryAttribute( + comparisonOfAccumulatedCases.countries[Constants.countryCuba], + ).length; + var lenForeign = getCountryAttribute( + comparisonOfAccumulatedCases.countries[selectedCountry], + ).length; return charts.NumericAxisSpec( viewport: charts.NumericExtents(1, max(lenForeign, lenCuba)), ); } - - charts.NumericAxisSpec getNumericAxisSpecZoom() { - var length = _getCountryAttribute(comparisonOfAccumulatedCases.countries[Constants.countryCuba]).length; - + charts.NumericAxisSpec getNumericAxisSpecZoom() { + var length = getCountryAttribute( + comparisonOfAccumulatedCases.countries[Constants.countryCuba], + ).length; return charts.NumericAxisSpec(viewport: charts.NumericExtents(1, length)); } List getSpecBehaviors() { - var length = _getCountryAttribute(comparisonOfAccumulatedCases.countries[Constants.countryCuba]).length; - + var length = getCountryAttribute( + comparisonOfAccumulatedCases.countries[Constants.countryCuba], + ).length; var behaviors = getBehaviors(); behaviors.addAll([ charts.RangeAnnotation([ @@ -144,27 +169,33 @@ class ComparisonWidgetState extends State { } String getFooter() { - if(selectedOption == 'Stringency Index') - return 'El Oxford Stringency Index\n' - 'https://www.bsg.ox.ac.uk/research/research-projects/' - 'coronavirus-government-response-tracker\nevalúa las ' - 'intervenciones del estado en la epidemia.\nLos valores ' - 'se obtienen de\nhttps://covidtracker.' - 'bsg.ox.ac.uk/about-api'; - - return 'Datos de los países tomados ' - 'de\nhttps://github.com/pomber/covid19\ny ' - 'actualizado el ' - '${comparisonOfAccumulatedCases.updated.toStrPlus()}'; + if (selectedOption == 'Stringency Index') { + return 'El Oxford Stringency Index\n' + 'https://www.bsg.ox.ac.uk/research/research-projects/' + 'coronavirus-government-response-tracker\nevalúa las ' + 'intervenciones del estado en la epidemia.\nLos valores ' + 'se obtienen de\nhttps://covidtracker.' + 'bsg.ox.ac.uk/about-api'; + } + return 'Datos de los países tomados ' + 'de\nhttps://github.com/pomber/covid19\ny ' + 'actualizado el ' + '${comparisonOfAccumulatedCases.updated.toStrPlus()}'; } + bool haveData() { + var length = getCountryAttribute( + comparisonOfAccumulatedCases.countries[selectedCountry], + ).length; + return length != 0; + } - bool haveData() => _getCountryAttribute(comparisonOfAccumulatedCases.countries[selectedCountry]).length != 0; - List> getSeries() { - List listCuba = _getCountryAttribute(comparisonOfAccumulatedCases.countries[Constants.countryCuba]); - List listForeign = _getCountryAttribute(comparisonOfAccumulatedCases.countries[selectedCountry]); - + List listCuba = getCountryAttribute( + comparisonOfAccumulatedCases.countries[Constants.countryCuba]); + List listForeign = getCountryAttribute( + comparisonOfAccumulatedCases.countries[selectedCountry]); + return [ charts.Series( id: comparisonOfAccumulatedCases.countries[selectedCountry].name, @@ -184,9 +215,11 @@ class ComparisonWidgetState extends State { } List> getZoomSeries() { - List listCuba = _getCountryAttribute(comparisonOfAccumulatedCases.countries[Constants.countryCuba]); - List listForeign = _getCountryAttribute(comparisonOfAccumulatedCases.countries[selectedCountry]); - + List listCuba = getCountryAttribute( + comparisonOfAccumulatedCases.countries[Constants.countryCuba]); + List listForeign = getCountryAttribute( + comparisonOfAccumulatedCases.countries[selectedCountry]); + return [ charts.Series( id: comparisonOfAccumulatedCases.countries[selectedCountry].name, From e92f9968e2b60b8d438dd99b695be0758750b8d3 Mon Sep 17 00:00:00 2001 From: leynier Date: Sun, 3 May 2020 16:30:06 -0400 Subject: [PATCH 4/7] Fix bug --- lib/src/widgets/test_behavior_comparison_widget.dart | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/src/widgets/test_behavior_comparison_widget.dart b/lib/src/widgets/test_behavior_comparison_widget.dart index 11f6f66..676f889 100644 --- a/lib/src/widgets/test_behavior_comparison_widget.dart +++ b/lib/src/widgets/test_behavior_comparison_widget.dart @@ -27,7 +27,6 @@ class TestBehaviorComparisonWidget extends StatefulWidget { class TestBehaviorComparisonWidgetState extends State { final Map testBehaviorComparison; - final DateTime updated; var colors = List(); var colorGen = RandomColor(0); @@ -35,10 +34,8 @@ class TestBehaviorComparisonWidgetState List selectedItems; List defaultItems; - TestBehaviorComparisonWidgetState( - {this.testBehaviorComparison, this.updated}) { + TestBehaviorComparisonWidgetState({this.testBehaviorComparison}) { assert(testBehaviorComparison != null); - assert(updated != null); colors = testBehaviorComparison.entries.map((x) { return colorGen.randomChartColor(); }).toList(); From e1af0ffccadb02114da429c50797ab108f6600ce Mon Sep 17 00:00:00 2001 From: leynier Date: Sun, 3 May 2020 16:30:16 -0400 Subject: [PATCH 5/7] Fix order of countries --- lib/src/widgets/test_behavior_comparison_widget.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/src/widgets/test_behavior_comparison_widget.dart b/lib/src/widgets/test_behavior_comparison_widget.dart index 676f889..ddd234c 100644 --- a/lib/src/widgets/test_behavior_comparison_widget.dart +++ b/lib/src/widgets/test_behavior_comparison_widget.dart @@ -40,7 +40,7 @@ class TestBehaviorComparisonWidgetState return colorGen.randomChartColor(); }).toList(); var items = testBehaviorComparison.entries.toList(); - items = items..sort((a, b) => a.key.compareTo(b.key)); + items = items..sort((a, b) => a.value.name.compareTo(b.value.name)); items = items.where((item) => item.key != 'Cuba').toList(); this.items = items.map((item) { return DropdownMenuItem( From 2b005c1ce0b6c5d90efbd42acfc5394150c4d5a7 Mon Sep 17 00:00:00 2001 From: norlancd <18106349+norlancd@users.noreply.github.com> Date: Sun, 3 May 2020 16:11:15 -0500 Subject: [PATCH 6/7] Update tips --- lib/src/utils/constants.dart | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/lib/src/utils/constants.dart b/lib/src/utils/constants.dart index 4ffb871..8fe1c39 100644 --- a/lib/src/utils/constants.dart +++ b/lib/src/utils/constants.dart @@ -567,12 +567,7 @@ class Constants { ], [ '¿Mi mascota me puede contagiar la COVID-19?', - 'Aunque ha habido un caso de un perro infectado en Hong Kong, hasta ' - 'la fecha no hay pruebas de que un perro, un gato o cualquier mascota ' - 'pueda transmitir la COVID-19. La COVID-19 se propaga principalmente ' - 'a través de las gotículas producidas por una persona infectada al ' - 'toser, estornudar o hablar. Para protegerse a sí mismo, lávese las ' - 'manos a fondo frecuentemente.' + 'Se han notificado casos en una pequeña cantidad de animales en el mundo infectados por el virus que causa la COVID-19, en su mayoría después de haber tenido contacto con una persona con COVID-19. Con base a la información limitada disponible hasta la fecha, el riesgo de que los animales transmitan la COVID-19 a las personas se considera bajo. Al parecer el virus que causa la COVID-19 puede propagarse de personas a animales en ciertas situaciones por lo que debe tratar a las mascotas como a otros familiares humanos, no deje que interactúen con personas o animales fuera del hogar. No permita que las mascotas interactúen con otras personas ni animales fuera del hogar. Mantenga a sus gatos dentro de la casa siempre que sea posible, para evitar que interactúen con otros animales o personas. Pasee a sus perros con correa, manteniendo una distancia de al menos 6 pies (2 metros) de otras personas y animales. Evite los parques para perros o los espacios públicos donde se reúnen grandes cantidades de personas y perros. Lávese las manos luego de estar con animales y manipular su comida, desechos o suministros. Practique buenos hábitos de higiene con su mascota y limpie sus desechos adecuadamente. Esta es una situación que cambia rápidamente y la información se actualizará a medida que esté disponible.' ], [ '¿Cuánto tiempo sobrevive el virus en una superficie?', From c6b31a2cac9797b3bd55dfadd162c19da38837b6 Mon Sep 17 00:00:00 2001 From: leynier Date: Sun, 3 May 2020 17:40:04 -0400 Subject: [PATCH 7/7] Update changelog --- CHANGELOG.md | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 39db95b..8f22b79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,73 @@ # Covid19 Cuba Data Mobile Application Changelog +## [0.7.0] - May 3, 2020 + +### Added + +* Navigation buttons at the bottom. +* Section for statistics and comparison charts of Cuba with other countries. +* Donut chart of case distribution. +* Charts of the Effective Reproductive Number. +* New version of the Oxford Stringency Index. Both versions are shown. +* Chart of points of the behavior of the tests (positive against quantity) of several countries to compare with Cuba. +* Possibility of choosing the countries to compare with Cuba on the chart of the logarithmic curve. +* New contributors and replicas in the About Us section. + +### Changed + +* Chart colors to keep up with the website. +* Order of items in the side menu. + +### Fixed + +## [0.6.1] - April 24, 2020 + +### Added + +* Option on the settings screen to reset the application status. +* Dynamic application download links. + +### Fixed + +* Error in the country search engine. +* Errors in the legends of the charts. + +## [0.6.0] - April 23, 2020 + +### Added + +* Active local broadcast events. +* Closed local broadcast events. +* Chart of the relationship between positive tests (PCR) with respect to the total number of tests (PCR) applied. +* Chart of the evolution of the Oxford Stringency Index for Cuba. +* Number of cases and rate of diagnosed per 100 thousand inhabitants in the table of provinces. +* Number of cases in the table of municipalities. +* Comparison chart of accumulated cases between provinces. +* Comparison chart of accumulated cases between municipalities. +* Comparison of active cases, diaries, recovered cases, deceased cases and the Oxford Stringency Index of different countries with Cuba. +* Cases recovered and deceased to the table of Top 20 Countries with the most accumulated cases. +* Statistics screen by municipalities, accessible from the side menu. +* Possibility of accessing statistics by province and municipality offline to see the latest information that was downloaded. +* Virtual researcher, accessible from the side menu. +* Table of Cases, accessible from the side menu. +* Answer to frequently asked questions, accessible from the side menu. +* Tips and Answers about the Covid-19, accessible from the side menu. +* Screen with information from the development team, collaborators, authors, etc. accessible from the side menu. + +### Changed + +* Behavior of data update notifications. + +### Fixed + +* Collapse of the text of the days in the test chart (PCR) by days. + ## [0.5.0] - April 13, 2020 ### Added * Statistics by province accessing from the side menu. -* Graph to compare the exponential behaviors of the epidemic in the 20 most affected countries with Cuba. +* Chart to compare the exponential behaviors of the epidemic in the 20 most affected countries with Cuba. * Screen to check if there is an application update. * Application update notifications. * Information update notifications.