Skip to content

Commit

Permalink
Release 1.16.0 (#276)
Browse files Browse the repository at this point in the history
* Link for deleting account added & refactoring (#272)

* Link for deleting account added & refactoring

* Class for launching URLs created

* Refactoring

* Use of UrlLauncher-class

* Use of UrlLauncher-class and formatting

* Adjust color

* Adjust units for laboratory values in COI (#274)

* Adjust unit for troponin

* Adjust and change some units in laboratory_values_page.dart

* Release 1.16.0 (#275)

---------

Co-authored-by: mustiwebp <[email protected]>
  • Loading branch information
FaysalSolutions and mustiwebp authored Feb 23, 2024
1 parent 6fba76a commit 0cc1064
Show file tree
Hide file tree
Showing 5 changed files with 118 additions and 80 deletions.
35 changes: 9 additions & 26 deletions lib/screens/home_screen/overview/widgets/contact_section.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,36 +20,19 @@ import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:picos/screens/home_screen/overview/widgets/section.dart';
import 'package:picos/themes/global_theme.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:picos/util/url_launcher.dart';

/// A Flutter widget representing the contact section of the app.
class ContactSection extends StatelessWidget {
/// ContactSection constructor
const ContactSection({Key? key}) : super(key: key);

void _launchURL(BuildContext context, String uri) async {
final Uri url = Uri.parse(
uri,
);
final ScaffoldMessengerState scaffoldMessenger =
ScaffoldMessenger.of(context);
try {
await launchUrl(url, mode: LaunchMode.externalApplication);
} catch (e) {
scaffoldMessenger.showSnackBar(
SnackBar(
content: Text(
context.mounted ? AppLocalizations.of(context)!.couldNotLaunch : '',
),
),
);
}
}

@override
Widget build(BuildContext context) {
final GlobalTheme theme = Theme.of(context).extension<GlobalTheme>()!;

UrlLauncher urlLauncher = UrlLauncher();

return Section(
titleColor: theme.blue,
title: AppLocalizations.of(context)!.contact,
Expand Down Expand Up @@ -92,15 +75,15 @@ class ContactSection extends StatelessWidget {
Expanded(
flex: 55,
child: GestureDetector(
onTap: () => _launchURL(
onTap: () => urlLauncher.launch(
context,
'https://hit-solutions.de/picos-app-benutzerhandbuch/',
),
child: Text(
AppLocalizations.of(context)!.handbook,
style: const TextStyle(
style: TextStyle(
decoration: TextDecoration.underline,
color: Colors.blue,
color: theme.blue,
),
),
),
Expand All @@ -123,15 +106,15 @@ class ContactSection extends StatelessWidget {
Expanded(
flex: 55,
child: GestureDetector(
onTap: () => _launchURL(
onTap: () => urlLauncher.launch(
context,
'mailto: [email protected]',
),
child: const Text(
child: Text(
'[email protected]',
style: TextStyle(
decoration: TextDecoration.underline,
color: Colors.blue,
color: theme.blue,
),
),
),
Expand Down
72 changes: 42 additions & 30 deletions lib/screens/privacy_notice_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@

import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:picos/themes/global_theme.dart';
import 'package:picos/util/url_launcher.dart';
import 'package:picos/widgets/picos_body.dart';
import 'package:picos/widgets/picos_screen_frame.dart';

Expand All @@ -25,58 +27,68 @@ class PrivacyNoticeScreen extends StatelessWidget {
/// PicosMenu constructor
const PrivacyNoticeScreen({Key? key}) : super(key: key);

Text _caption(String text) {
return Text(
text,
style: const TextStyle(
fontWeight: FontWeight.bold,
),
);
}

@override
Widget build(BuildContext context) {
final GlobalTheme theme = Theme.of(context).extension<GlobalTheme>()!;

UrlLauncher urlLauncher = UrlLauncher();

return PicosScreenFrame(
title: AppLocalizations.of(context)!.privacyNotice,
body: const PicosBody(
body: PicosBody(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
'Rechte des Betroffenen',
style: TextStyle(
fontSize: 30,
),
),
Text(
_caption('Rechte des Betroffenen'),
const Text(
'''Sie können Ihre Rechte zum Datenschutz jederzeit und unentgeltlich in Anspruch nehmen. Unser Datenschutzbeauftragter überprüft und beantwortet jedes Anliegen individuell. Unseren Datenschutzbeauftragten können Sie per Mail unter [email protected] erreichen. \n''',
),
Text(
_caption(
'''Auskunftsrecht (Art. 15 DSGVO, § 17 KDG, § 19 DSG-EKD)''',
style: TextStyle(
fontWeight: FontWeight.bold,
),
),
Text(
const Text(
'''Sie haben das Recht jederzeit unentgeltlich Auskunft darüber zu erhalten, ob wir Daten zu Ihrer Person verarbeiten.:\n''',
),
Text(
_caption(
'''Recht auf Berichtigung (Art. 16 DSGVO, § 18 KDG, § 20 DSG-EKD), Löschung (Art. 17. DSGVO, § 19 KDG, § 21 DSG-EKD), Einschränkung der Verarbeitung (Art. 18 DSGVO, § 20 KDG, § 22 DSG-EKD), Datenübertragung (Art. 20 DSGVO, § 22 KDG, § 24 DSG-EKD) und das Widerspruchsrecht (Art. 21 DSGVO, § 23 KDG, § 25 DSG-EKD)''',
style: TextStyle(
fontWeight: FontWeight.bold,
),
),
Text(
const Text(
'''Weiterhin haben Sie die Möglichkeit die Rechte auf Berichtigung, Löschung oder Einschränkung der Verarbeitung geltend zu machen. Sie können auch jederzeit Widerspruch gegen die Verarbeitung Ihrer Daten gegenüber uns einlegen.\n''',
),
Text(
_caption(
'''Widerruf im Falle einer Einwilligung (Art. 7 Abs. 3 DSGVO, § 8 Abs. 6 KDG, § 11 Abs. 3 DSG-EKD):''',
style: TextStyle(
fontWeight: FontWeight.bold,
),
),
Text(
const Text(
'''Sofern Sie Ihre personenbezogenen Daten auf Grundlage einer Einwilligung abgegeben haben, haben sie das Recht die Einwilligung jederzeit für die Zukunft zu widerrufen. Wir möchten Sie darauf hinweisen, dass durch den Widerruf der Einwilligung die Rechtmäßigkeit, der aufgrund der Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt wird.\n''',
),
Text(
'Recht auf Beschwerde bei der Aufsichtsbehörde',
style: TextStyle(
fontWeight: FontWeight.bold,
),
_caption('Recht auf Beschwerde bei der Aufsichtsbehörde'),
const Text(
'''Sofern Sie der Meinung sind, die Verarbeitung Ihrer personenbezogenen Daten durch die Verantwortlichen erfolge nicht rechtmäßig, haben Sie das jederzeitige Recht, sich mit Ihrer Beschwerde an die zuständige Datenschutzaufsichtsbehörde zu wenden.\n''',
),
Text(
'''Sofern Sie der Meinung sind, die Verarbeitung Ihrer personenbezogenen Daten durch die Verantwortlichen erfolge nicht rechtmäßig, haben Sie das jederzeitige Recht, sich mit Ihrer Beschwerde an die zuständige Datenschutzaufsichtsbehörde zu wenden.''',
_caption('Antrag auf Löschung des PICOS-Kontos'),
GestureDetector(
onTap: () {
urlLauncher.launch(
context,
'https://www.hit-solutions.de/picos-account-loeschung/',
);
},
child: Text(
'''Hier können Sie die Löschung Ihres Picos-Kontos beantragen.''',
style: TextStyle(
decoration: TextDecoration.underline,
color: theme.blue,
),
),
),
],
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -239,12 +239,12 @@ class LaboratoryValuesPage extends StatelessWidget {

@override
Widget build(BuildContext context) {
const String mmoll = 'mmol/L';
const String mgdl = 'mg/dL';
const String mgdL = 'mg/dL';
const String tenUl = '10*3/µL';
const String pgml = 'pg/mL';
const String qdl = 'q/dL';
const String ul = 'U/L';
const String pgmL = 'pg/mL';
const String ngmL = 'ng/mL';
const String qdL = 'q/dL';
const String uL = 'U/L';
const String percent = '%';

return CatalogOfItemsPage(
Expand Down Expand Up @@ -302,15 +302,15 @@ class LaboratoryValuesPage extends StatelessWidget {
AppLocalizations.of(context)!.procalcitoninLevel,
),
PicosNumberField(
hint: mmoll,
hint: ngmL,
initialValue: initialProcalcitoninLevel?.toString(),
onChanged: (String value) {
procalcitoninLevelCallback(double.tryParse(value));
},
),
CatalogOfItemsLabel(AppLocalizations.of(context)!.interleukin),
PicosNumberField(
hint: 'µmol/L',
hint: pgmL,
initialValue: initialInterleukin?.toString(),
onChanged: (String value) {
interleukinCallback(double.tryParse(value));
Expand All @@ -320,15 +320,15 @@ class LaboratoryValuesPage extends StatelessWidget {
AppLocalizations.of(context)!.bloodUreaNitrogen,
),
PicosNumberField(
hint: 'pmol/L',
hint: mgdL,
initialValue: initialBloodUreaNitrogen?.toString(),
onChanged: (String value) {
bloodUreaNitrogenCallback(double.tryParse(value));
},
),
CatalogOfItemsLabel(AppLocalizations.of(context)!.creatinine),
PicosNumberField(
hint: mgdl,
hint: mgdL,
initialValue: initialCreatinine?.toString(),
onChanged: (String value) {
creatinineCallback(double.tryParse(value));
Expand All @@ -338,7 +338,7 @@ class LaboratoryValuesPage extends StatelessWidget {
AppLocalizations.of(context)!.heartFailureMarker,
),
PicosNumberField(
hint: pgml,
hint: pgmL,
initialValue: initialHeartFailureMarker?.toString(),
onChanged: (String value) {
heartFailureMarkerCallback(double.tryParse(value));
Expand All @@ -348,23 +348,23 @@ class LaboratoryValuesPage extends StatelessWidget {
AppLocalizations.of(context)!.heartFailureMarkerNTProBNP,
),
PicosNumberField(
hint: pgml,
hint: pgmL,
initialValue: initialHeartFailureMarkerNTProBNP?.toString(),
onChanged: (String value) {
heartFailureMarkerNTProBNPCallback(double.tryParse(value));
},
),
CatalogOfItemsLabel(AppLocalizations.of(context)!.bilirubinTotal),
PicosNumberField(
hint: mgdl,
hint: mgdL,
initialValue: initialBilirubinTotal?.toString(),
onChanged: (String value) {
bilirubinTotalCallback(double.tryParse(value));
},
),
CatalogOfItemsLabel(AppLocalizations.of(context)!.hemoglobin),
PicosNumberField(
hint: qdl,
hint: qdL,
initialValue: initialHemoglobin?.toString(),
onChanged: (String value) {
hemoglobinCallback(double.tryParse(value));
Expand All @@ -380,39 +380,39 @@ class LaboratoryValuesPage extends StatelessWidget {
),
CatalogOfItemsLabel(AppLocalizations.of(context)!.albumin),
PicosNumberField(
hint: qdl,
hint: qdL,
initialValue: initialAlbumin?.toString(),
onChanged: (String value) {
albuminCallback(double.tryParse(value));
},
),
CatalogOfItemsLabel(AppLocalizations.of(context)!.gotASAT),
PicosNumberField(
hint: ul,
hint: uL,
initialValue: initialGOTASAT?.toString(),
onChanged: (String value) {
gotASATCallback(double.tryParse(value));
},
),
CatalogOfItemsLabel(AppLocalizations.of(context)!.gptALAT),
PicosNumberField(
hint: ul,
hint: uL,
initialValue: initialGPTALAT?.toString(),
onChanged: (String value) {
gptALATCallback(double.tryParse(value));
},
),
CatalogOfItemsLabel(AppLocalizations.of(context)!.troponin),
PicosNumberField(
hint: 'ug/L',
hint: 'µg/L',
initialValue: initialTroponin?.toString(),
onChanged: (String value) {
troponinCallback(double.tryParse(value));
},
),
CatalogOfItemsLabel(AppLocalizations.of(context)!.creatineKinase),
PicosNumberField(
hint: ul,
hint: uL,
initialValue: initialCreatineKinase?.toString(),
onChanged: (String value) {
creatineKinaseCallback(double.tryParse(value));
Expand All @@ -422,7 +422,7 @@ class LaboratoryValuesPage extends StatelessWidget {
AppLocalizations.of(context)!.myocardialInfarctionMarkerCKMB,
),
PicosNumberField(
hint: ul,
hint: uL,
initialValue: initialMyocardialInfarctionMarkerCKMB?.toString(),
onChanged: (String value) {
myocardialInfarctionMarkerCKMBCallback(
Expand All @@ -434,31 +434,31 @@ class LaboratoryValuesPage extends StatelessWidget {
AppLocalizations.of(context)!.lactateDehydrogenaseLevel,
),
PicosNumberField(
hint: ul,
hint: uL,
initialValue: initialLactateDehydrogenaseLevel?.toString(),
onChanged: (String value) {
lactateDehydrogenaseLevelCallback(double.tryParse(value));
},
),
CatalogOfItemsLabel(AppLocalizations.of(context)!.amylaseLevel),
PicosNumberField(
hint: ul,
hint: uL,
initialValue: initialAmylaseLevel?.toString(),
onChanged: (String value) {
amylaseLevelCallback(double.tryParse(value));
},
),
CatalogOfItemsLabel(AppLocalizations.of(context)!.lipaseLevel),
PicosNumberField(
hint: ul,
hint: uL,
initialValue: initialLipaseLevel?.toString(),
onChanged: (String value) {
lipaseLevelCallback(double.tryParse(value));
},
),
CatalogOfItemsLabel(AppLocalizations.of(context)!.dDimer),
PicosNumberField(
hint: 'ng/mL',
hint: ngmL,
initialValue: initialDDimer?.toString(),
onChanged: (String value) {
dDimerCallback(double.tryParse(value));
Expand Down
Loading

0 comments on commit 0cc1064

Please sign in to comment.