Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/v2.12.6+1206 #754

Open
wants to merge 65 commits into
base: master
Choose a base branch
from
Open
Changes from 6 commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
dab5ca1
version 2.12.0
Sep 30, 2021
34225fb
Merge pull request #722 from rokwire/feature/issue-720
Sep 30, 2021
326a51f
Merge branch 'support/v2.11' into develop
Sep 30, 2021
a304b0b
Merge branch 'support/v2.11' into develop
Sep 30, 2021
55cd566
Merge branch 'support/v2.11' into develop
Sep 30, 2021
916bf0a
Set date for 2.12.0 version in CHANGELOG.md
Sep 30, 2021
3d7c1d1
Added SECURITY.md
Sep 30, 2021
299d38d
Merge branch 'support/v2.11' into develop
Oct 1, 2021
3ccc4c2
Fixed CHANGELOG.md
Oct 1, 2021
de2674a
"vaccine" term replaced by "vaccineStatus" (#729).
Oct 1, 2021
3ddb536
Do not apply action params when evaluating vaccine status.
Oct 1, 2021
c9dc71e
Implemented vaccine booster intervals (#729).
Oct 1, 2021
fcc2c18
Updated CHANGELOG.md
Oct 1, 2021
7c994aa
Merge pull request #730 from rokwire/feature/issue-729
Oct 1, 2021
c8a0fd2
version: 2.12.1+1201
Oct 1, 2021
856b131
Fixed Pfizer typo in health.rules.json (#729).
Oct 1, 2021
608b4d3
Merge branch 'support/v2.11' into develop
Oct 1, 2021
52b3f81
Extend UIN Override with vaccination exempt flag (#733).
Oct 4, 2021
c05f7d4
Acknowledged HealthUserOverrides.vaccinationExempt in healthHomePanel…
Oct 4, 2021
751987d
Updated CHANGELOG.md
Oct 4, 2021
715464e
Merge pull request #734 from rokwire/feature/issue-733
Oct 4, 2021
b452bc1
Fixed _evalTestVaccine evaluation (#729).
Oct 4, 2021
10040ef
Handle vaccination expiration in vaccination home widget.
Oct 4, 2021
f5fbc7a
isVaccinated checks for expired vaccines (#729).
Oct 4, 2021
9ec761a
Updated CHANGELOG.md (#729).
Oct 4, 2021
e2df270
Merge pull request #735 from rokwire/feature/issue-729
Oct 4, 2021
e290a72
Listen for Health.notifyUserOverrideChanged in HealthHomePanel (#733).
Oct 4, 2021
c97693f
Merge pull request #736 from rokwire/feature/issue-733
Oct 4, 2021
f731d4d
Simplify VaccineBoosterInterval logic until we really need different …
Oct 4, 2021
31b357a
Remove TestMonitorWeekdaysExtent handling until it is required (#737).
Oct 4, 2021
7cf1bb7
Updated CHANGELOG.md (#737).
Oct 4, 2021
ae710d2
Merge pull request #738 from rokwire/feature/issue-737
Oct 4, 2021
51fa6c5
version: 2.12.2+1202
Oct 4, 2021
af211ef
Handled exempt of vaccination status in vaccine widget (#739).
Oct 6, 2021
1b281ad
Do not show appointment button when exemptFromVaccination (#739)
Oct 6, 2021
ae3c22a
Fixed effectiveTestInterval evaluation.
Oct 6, 2021
83feb3b
Handled vaccination suspended status in vaccination widget (#739).
Oct 6, 2021
c34a9f7
Updated CHANGELOG.md (#739).
Oct 6, 2021
3f46e3f
Merge pull request #740 from rokwire/feature/issue-739
Oct 6, 2021
375ca99
version: 2.12.3+1203
Oct 6, 2021
d88ea00
Removed Exposure Flutter service (#742).
Oct 29, 2021
3a070b1
Remove Exposure service related UI, analytics and data (#742).
Oct 29, 2021
2345ab5
iOS: Removed ExposurePlugin and related tools (#742).
Oct 29, 2021
1994915
Get rid of LocalNotifications service (#742).
Oct 29, 2021
1b63e13
Get rid of BluetoothServices service (#742).
Oct 29, 2021
cb66d1d
Removed NativeCommunicator.queryBluetoothAuthorization (#742).
Oct 29, 2021
ef643bb
iOS: Removed bluetooth support and relevant background modes; update …
Oct 29, 2021
3affe3e
Merge pull request #743 from rokwire/feature/issue-742
Oct 29, 2021
f56f6ca
Feature/issue 745 (#746)
dobromirdobrev Oct 29, 2021
3093a96
Bring back HealthUser.consentExposureNotification (#742).
Oct 29, 2021
ffe48ae
Make sure to initialize HealthUser.consentExposureNotification when c…
Oct 29, 2021
37824f3
Android: Remove ExposurePlugin and all related stuff [#742]
dobromirdobrev Oct 29, 2021
62b6832
Updated CHANGELOG.md (#742)
Oct 29, 2021
8c306a3
Merge pull request #747 from rokwire/feature/issue-742
Oct 29, 2021
318fe41
Implemented config notifications (#744).
Oct 29, 2021
4ffb0bf
Updated CHANGELOG.md (#744).
Oct 29, 2021
b821951
Merge pull request #748 from rokwire/feature/issue-744
Oct 29, 2021
b104276
version: 2.12.4+1204
Oct 29, 2021
9201e05
Fixes, improvements and extensions of config notifications (#744).
Nov 1, 2021
9f76655
Updated CHANGELOG.md (#744).
Nov 1, 2021
9f70a2f
Merge pull request #750 from rokwire/feature/issue-744
Nov 1, 2021
a38746a
version: 2.12.5+1205
Nov 1, 2021
f4e11c1
Feature/issue 752 (#753)
dobromirdobrev Nov 2, 2021
9c8de33
Version: 2.12.6+1206
dobromirdobrev Nov 2, 2021
aada075
Merge branch 'master' into release/v2.12.6+1206
dobromirdobrev Nov 2, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## Unreleased
### Changed
- Handled exempt of vaccination and vaccintation suspended status in vaccination widget [#739](https://github.com/rokwire/safer-illinois-app/issues/739).

## [2.12.2] - 2021-10-04
### Added
6 changes: 5 additions & 1 deletion assets/strings.en.json
Original file line number Diff line number Diff line change
@@ -343,8 +343,12 @@
"panel.covid19home.vaccination.vaccinated.effective.0.description": "Your vaccine will be effective today.",
"panel.covid19home.vaccination.vaccinated.effective.1.description": "Your vaccine will be effective tomorrow.",
"panel.covid19home.vaccination.vaccinated.effective.n.description": "Your vaccine will be effective after %s days.",
"panel.covid19home.vaccination.expired.title": "Vaccine Expired",
"panel.covid19home.vaccination.expired.title": "Vaccine еxpired",
"panel.covid19home.vaccination.expired.description": "Get a booster dose now.",
"panel.covid19home.vaccination.exempt.title": "Exempt from vaccination",
"panel.covid19home.vaccination.exempt.description": "You are currently exempt from taking COVID-19 vaccines but are required to continue taking tests.",
"panel.covid19home.vaccination.suspended.title": "Vaccination status suspended",
"panel.covid19home.vaccination.suspended.description": "You are currently effectively vaccinated but are required to continue taking tests until further notice.",
"panel.covid19home.vaccination.button.appointment.title": "Make an appointment",
"panel.covid19home.vaccination.button.appointment.hint": "",

4 changes: 4 additions & 0 deletions assets/strings.es.json
Original file line number Diff line number Diff line change
@@ -345,6 +345,10 @@
"panel.covid19home.vaccination.vaccinated.effective.n.description": "Su vacuna será efectiva después de %s días.",
"panel.covid19home.vaccination.expired.title": "Vacuna caducada",
"panel.covid19home.vaccination.expired.description": "Obtenga una dosis de refuerzo ahora.",
"panel.covid19home.vaccination.exempt.title": "Exenta de vacunación",
"panel.covid19home.vaccination.exempt.description": "Actualmente está exento de recibir las vacunas COVID-19, pero debe continuar realizando las pruebas.",
"panel.covid19home.vaccination.suspended.title": "Estado de vacunación suspendido",
"panel.covid19home.vaccination.suspended.description": "Actualmente está vacunado de manera efectiva, pero debe continuar realizando las pruebas hasta nuevo aviso.",
"panel.covid19home.vaccination.button.appointment.title": "Haga una cita",
"panel.covid19home.vaccination.button.appointment.hint": "",

4 changes: 4 additions & 0 deletions assets/strings.ja.json
Original file line number Diff line number Diff line change
@@ -345,6 +345,10 @@
"panel.covid19home.vaccination.vaccinated.effective.n.description": "あなたのワクチンは%s日後に有効になります。",
"panel.covid19home.vaccination.expired.title": "ワクチンの有効期限が切れました",
"panel.covid19home.vaccination.expired.description": "今すぐブースター用量を入手してください。",
"panel.covid19home.vaccination.exempt.title": "予防接種を免除",
"panel.covid19home.vaccination.exempt.description": "現在、COVID-19ワクチンの接種は免除されていますが、引き続き検査を受ける必要があります。",
"panel.covid19home.vaccination.suspended.title": "予防接種のステータスが一時停止されました",
"panel.covid19home.vaccination.suspended.description": "現在、効果的に予防接種を受けていますが、追って通知があるまで検査を続ける必要があります。",
"panel.covid19home.vaccination.button.appointment.title": "予約する",
"panel.covid19home.vaccination.button.appointment.hint": "",

4 changes: 4 additions & 0 deletions assets/strings.zh.json
Original file line number Diff line number Diff line change
@@ -345,6 +345,10 @@
"panel.covid19home.vaccination.vaccinated.effective.n.description": "您的疫苗將在 %s 天后生效。",
"panel.covid19home.vaccination.expired.title": "疫苗過期",
"panel.covid19home.vaccination.expired.description": "立即接種加強劑量。",
"panel.covid19home.vaccination.exempt.title": "免於接種",
"panel.covid19home.vaccination.exempt.description": "您目前可以免於接種 COVID-19 疫苗,但需要繼續接受檢測。",
"panel.covid19home.vaccination.suspended.title": "疫苗接種狀態暫停",
"panel.covid19home.vaccination.suspended.description": "您目前已有效接種疫苗,但需要繼續接受測試,直至另行通知。",
"panel.covid19home.vaccination.button.appointment.title": "預約",
"panel.covid19home.vaccination.button.appointment.hint": "",

4 changes: 2 additions & 2 deletions lib/model/Health.dart
Original file line number Diff line number Diff line change
@@ -1706,10 +1706,10 @@ class HealthUserOverride {
}
else {
DateTime nowUtc = ((testIntervalStartDateUtc != null) || (testIntervalEndDateUtc != null)) ? DateTime.now().toUtc() : null;
if ((testIntervalStartDateUtc != null) && testIntervalStartDateUtc.isBefore(nowUtc)) {
if ((testIntervalStartDateUtc != null) && testIntervalStartDateUtc.isAfter(nowUtc)) {
return null;
}
if ((testIntervalEndDateUtc != null) && testIntervalEndDateUtc.isAfter(nowUtc)) {
if ((testIntervalEndDateUtc != null) && testIntervalEndDateUtc.isBefore(nowUtc)) {
return null;
}
return testInterval;
34 changes: 23 additions & 11 deletions lib/ui/health/HealthHomePanel.dart
Original file line number Diff line number Diff line change
@@ -683,20 +683,24 @@ class _HealthHomePanelState extends State<HealthHomePanel> implements Notificati

Widget _buildVaccinationSection() {

if (Health().userOverride?.vaccinationExempt == true) {
// 2.2 If true then we would hide the Vaccine widget
return null;
}

String headingDate;
String statusTitleText, statusTitleHtml;
String statusDescriptionText, statusDescriptionHtml;
String headingTitle = Localization().getStringEx('panel.covid19home.vaccination.heading.title', 'VACCINATION');
bool shouldMakeAppointment;

int recentVaccineIndex = getRecentVaccineIndex(Health().history);
bool exemptFromVaccination = (Health().userOverride?.vaccinationExempt == true);
bool vaccinationSuspended = (Health().userOverride?.effectiveTestInterval != null);
int recentVaccineIndex = !exemptFromVaccination ? getRecentVaccineIndex(Health().history) : null;
HealthHistory recentVaccine = ((recentVaccineIndex != null) && (0 <= recentVaccineIndex) && (recentVaccineIndex < Health().history.length)) ? Health().history[recentVaccineIndex] : null;
if (recentVaccine == null) {
if (exemptFromVaccination) {
// 2.2. if "Exempt" is true, just to say "You are currently exempt from taking COVID-19 vaccines but are required to continue taking tests."
statusTitleText = Localization().getStringEx('panel.covid19home.vaccination.exempt.title', 'Exempt from vaccination');
statusDescriptionText = Localization().getStringEx('panel.covid19home.vaccination.exempt.description', 'You are currently exempt from taking COVID-19 vaccines but are required to continue taking tests.');
}
else if (recentVaccine == null) {
// No vaccined at all - promote it.
shouldMakeAppointment = true;
statusTitleText = Localization().getStringEx('panel.covid19home.vaccination.none.title', 'Get a vaccine now');
statusDescriptionText = Localization().getStringEx('panel.covid19home.vaccination.none.description', """
• COVID-19 vaccines are safe
@@ -710,20 +714,28 @@ class _HealthHomePanelState extends State<HealthHomePanel> implements Notificati
// Check if vaccine booster interval has expired
DateTime vaccineExpireDateLocal = HealthHistory.getVaccineExpireDateLocal(history: Health().history, vaccineIndex: recentVaccineIndex, rules: Health().rules);
if ((vaccineExpireDateLocal == null) || now.isBefore(vaccineExpireDateLocal)) {
// 5.2.4 When effective then hide the widget
return null;
if (!vaccinationSuspended) {
// 5.2.4 When effective then hide the widget
return null;
}
else {
// Vaccinated status suspended
statusTitleText = Localization().getStringEx('panel.covid19home.vaccination.suspended.title', 'Vaccination status suspended');
statusDescriptionText = Localization().getStringEx('panel.covid19home.vaccination.suspended.description', 'You are currently effectively vaccinated but are required to continue taking tests until further notice.');
}
}
else {
// Vaccine expired
headingDate = AppDateTime.formatDateTime(vaccineExpireDateLocal, format:"MMMM dd, yyyy", locale: Localization().currentLocale?.languageCode);
statusTitleText = Localization().getStringEx('panel.covid19home.vaccination.expired.title', 'Vaccine Expired');
statusDescriptionText = Localization().getStringEx('panel.covid19home.vaccination.expired.description', 'Get a booster dose now.');
}
}
else {
// Vaccinated, but not effective yet.
headingDate = AppDateTime.formatDateTime(recentVaccine.dateUtc?.toLocal(), format:"MMMM dd, yyyy", locale: Localization().currentLocale?.languageCode);
statusTitleText = Localization().getStringEx('panel.covid19home.vaccination.vaccinated.title', 'Vaccinated');

// Vaccinated, but not effective yet.
int delayInDays = AppDateTime.midnightsDifferenceInDays(AppDateTime.todayMidnightLocal, recentVaccine.dateMidnightLocal);

if (delayInDays > 1) {
@@ -808,7 +820,7 @@ class _HealthHomePanelState extends State<HealthHomePanel> implements Notificati
],),
];

if ((recentVaccine == null) && (Config().vaccinationAppointUrl != null)) {
if ((shouldMakeAppointment == true) && (Config().vaccinationAppointUrl != null)) {
contentList.addAll(<Widget>[
Container(margin: EdgeInsets.only(top: 14, bottom: 14), height: 1, color: Styles().colors.fillColorPrimaryTransparent015,),