Skip to content

Commit

Permalink
development notifications & compass page
Browse files Browse the repository at this point in the history
  • Loading branch information
raphi777 committed Jun 29, 2021
1 parent 477623b commit 853a609
Show file tree
Hide file tree
Showing 11 changed files with 297 additions and 188 deletions.
6 changes: 4 additions & 2 deletions lib/data/notification.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:timezone/timezone.dart';

class Notification {
String id;
int id;
String title;
String body;
TZDateTime schedule;
DateTimeComponents matchDateTimeComponents;

Notification({this.id, this.title, this.body, this.schedule});
Notification({this.id, this.title, this.body, this.schedule, this.matchDateTimeComponents});
}
303 changes: 156 additions & 147 deletions lib/data/notifications.dart
Original file line number Diff line number Diff line change
@@ -1,153 +1,162 @@
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:up_to_health/data/notification.dart';
import 'package:up_to_health/services/notification_schedule.dart';

final notifications = [
Notification(
id: 'notif00',
title: 'Impfung',
body:
'''Sind deine Impfungen auf dem neuesten Stand? Falls du dir unsicher bist, vereinbare einen Termin bei deinem Hausarzt und lass dich beraten.''',
schedule: nextInstanceOfYear(),
),
Notification(
id: 'notif01',
title: 'Hoden abtasten',
body:
'''Hast du diese Woche schon einmal deine Hoden abgetastet? Nein? Dann nimm dir kurz Zeit oder wirf einen kurzen Blick darauf, das nächste Mal wenn du Duschen gehst. Wie du weißt ist dies wirklich wichtig, um mögliche Tumore frühzeitig zu erkennen!''',
schedule: nextInstanceOfSunday20(),
),
Notification(
id: 'notif02',
title: 'Brüste abtasten',
body:
'''Hast du diese Woche schon einmal deine Brüsten nach möglichen Knoten abgetastet? Nein? Dann nimm dir kurz Zeit oder wirf einen kurzen Blick darauf, bevor du das nächste Mal Duschen gehst. Wie du weißt ist dies wirklich wichtig, um mögliche Tumore frühzeitig zu erkennen!''',
schedule: nextInstanceOfSunday20(),
),
Notification(
id: 'notif03',
title: 'STD Check: Test auf Geschlechtskrankheiten',
body:
'''Toll, dass du im Bett so aktiv bist ;-) Falls du nach wie vor noch häufig deinen Geschlechtspartner wechselst, solltest du auf Nummer Sicher gehen und hin und wieder einen Test auf Geschlechtskrankheiten machen lassen.''',
schedule: nextInstanceOfYear(),
),
Notification(
id: 'notif04',
title: 'Blutuntersuchung',
body:
'''Anscheinend liegt deine letzte Blutabnahme und -untersuchung schon eine Weile zurück. Hier daher ein kleiner Reminder, dir von deinem Hausarzt einen Termin für einen solchen Check-up geben zu lassen.''',
schedule: nextInstanceOfYear(),
),
Notification(
id: 'notif05',
title: 'Zahnarzt (Routine-Check)',
body:
'''Anscheinend liegt dein letzter Zahnarztbesuch schon eine Weile zurück. Hier daher ein kleiner Reminder, dir von deinem Zahnarzt einen Termin für Routinekontrolle inkl. Reinigung geben zu lassen.''',
schedule: nextInstanceOfYear(),
),
Notification(
id: 'notif06',
title: 'Gynäkologe (Routine-Check)',
body:
'''Wenn Geschlecht weiblich und Alter über 20 Jahren, dann Vorschlag; 1x pro Jahr''',
schedule: nextInstanceOfYear(),
),
Notification(
id: 'notif07',
title: 'Altersbedingter routinemäßiger Gesundheits-Check-up beim Hausarzt',
body:
'''Wie du weißt solltest du einmal alle 3 Jahre zum generellen Gesundheits-Check-up zu deinem Hausarzt. Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOf3Year(),
),
Notification(
id: 'notif08',
title: 'Augenarzt (Routine-Check)',
body:
'''Wie du weißt solltest du alle 5 Jahre zu einer Früherkennungsuntersuchung zum Augenarzt. Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOf5Year(),
),
Notification(
id: 'notif09',
title: 'Augenarzt (Routine-Check)',
body:
'''Wie du weißt solltest du alle 2 Jahre zu einer Früherkennungsuntersuchung zum Augenarzt. Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOf2Year(),
),
Notification(
id: 'notif10',
title: 'Augenarzt (Routine-Check)',
body:
'''You know the drill: Als Brillenträger solltest du einmal alle zwei Jahre zur Routineuntersuchung zum Augenarzt oder Optiker. Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOf2Year(),
),
Notification(
id: 'notif11',
title: 'Augenarzt (Routine-Check)',
body:
'''You know the drill: Als Kontaktlinsenträger solltest du einmal jährlich zur Routineuntersuchung zum Augenarzt oder Optiker. Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOfYear(),
),
Notification(
id: 'notif12',
title: 'Darmkrebsvorsorge beim Gastroenterologen',
body:
'''Wie du weißt solltest du einmal im Jahr zu einer Früherkennungsuntersuchung von Darmkrebs zum Gastroenterologen. Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOfYear(),
),
Notification(
id: 'notif13',
title: 'Darmkrebsvorsorge beim Gastroenterologen',
body:
'''Wie du weißt solltest du einmal alle zwei Jahre zu einer Früherkennungsuntersuchung von Darmkrebs zum Gastroenterologen (oder alle 10 Jahre zu einer großen Darmspiegelung). Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOf2Year(),
),
Notification(
id: 'notif14',
title: 'Darmkrebsvorsorge beim Gastroenterologen',
body:
'''Wie du weißt solltest du einmal im Jahr zu einer Früherkennungsuntersuchung von Darmkrebs zum Gastroenterologen (oder alle 10 Jahre zu einer großen Darmspiegelung). Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOfYear(),
),
Notification(
id: 'notif15',
title: 'Darmkrebsvorsorge beim Gastroenterologen',
body:
'''Wie du weißt solltest du einmal alle zwei Jahre zu einer Früherkennungsuntersuchung von Darmkrebs zum Gastroenterologen (oder alle 10 Jahre zu einer großen Darmspiegelung). Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOf2Year(),
),
Notification(
id: 'notif16',
title:
'Krebsfrüherkennungsuntersuchung der Genitalien und Prostata beim Urologen',
body:
'''Wie du weißt solltest du einmal im Jahr zu einer Krebsfrüherkennungsuntersuchung zum Urologen. Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOfYear(),
),
Notification(
id: 'notif17',
title: 'Hautkrebs-Screening beim Dermatologen',
body:
'''Wie du weißt solltest du alle zwei Jahre beim Dermatologen ein Hautkrebs-Screening durchführen lassen. Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOf2Year(),
),
Notification(
id: 'notif18',
title: 'Wasser Trinken',
body:
'''Vergiss nicht genügend Wasser zu dir zu nehmen. Trinke am besten jetzt direkt ein Glas.''',
schedule: nextInstanceOf2Hours(),
),
Notification(
id: 'notif19',
title: 'Einnahme deiner Nahrungsergänzungsmittel',
body:
'''Vergiss nicht deine Nahrungsergänzungsmittel (falls von deinem Arzt verordnet) jetzt gleich einzunehmen!''',
schedule: nextInstanceOf8(),
),
Notification(
id: 'notif20',
title: 'Einnahme deiner Medikamente',
body:
'''Vergiss nicht deine Medikamente (falls von deinem Arzt verordnet) jetzt gleich einzunehmen!''',
schedule: nextInstanceOf8(),
),
id: 0,
title: 'Impfung',
body:
'''Sind deine Impfungen auf dem neuesten Stand? Falls du dir unsicher bist, vereinbare einen Termin bei deinem Hausarzt und lass dich beraten.''',
schedule: nextInstanceOfYear(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 1,
title: 'Hoden abtasten',
body:
'''Hast du diese Woche schon einmal deine Hoden abgetastet? Nein? Dann nimm dir kurz Zeit oder wirf einen kurzen Blick darauf, das nächste Mal wenn du Duschen gehst. Wie du weißt ist dies wirklich wichtig, um mögliche Tumore frühzeitig zu erkennen!''',
schedule: nextInstanceOfSunday20(),
matchDateTimeComponents: DateTimeComponents.dayOfWeekAndTime),
Notification(
id: 2,
title: 'Brüste abtasten',
body:
'''Hast du diese Woche schon einmal deine Brüsten nach möglichen Knoten abgetastet? Nein? Dann nimm dir kurz Zeit oder wirf einen kurzen Blick darauf, bevor du das nächste Mal Duschen gehst. Wie du weißt ist dies wirklich wichtig, um mögliche Tumore frühzeitig zu erkennen!''',
schedule: nextInstanceOfSunday20(),
matchDateTimeComponents: DateTimeComponents.dayOfWeekAndTime),
Notification(
id: 3,
title: 'STD Check: Test auf Geschlechtskrankheiten',
body:
'''Toll, dass du im Bett so aktiv bist ;-) Falls du nach wie vor noch häufig deinen Geschlechtspartner wechselst, solltest du auf Nummer Sicher gehen und hin und wieder einen Test auf Geschlechtskrankheiten machen lassen.''',
schedule: nextInstanceOfYear(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 4,
title: 'Blutuntersuchung',
body:
'''Anscheinend liegt deine letzte Blutabnahme und -untersuchung schon eine Weile zurück. Hier daher ein kleiner Reminder, dir von deinem Hausarzt einen Termin für einen solchen Check-up geben zu lassen.''',
schedule: nextInstanceOfYear(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 5,
title: 'Zahnarzt (Routine-Check)',
body:
'''Anscheinend liegt dein letzter Zahnarztbesuch schon eine Weile zurück. Hier daher ein kleiner Reminder, dir von deinem Zahnarzt einen Termin für Routinekontrolle inkl. Reinigung geben zu lassen.''',
schedule: nextInstanceOfYear(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 6,
title: 'Gynäkologe (Routine-Check)',
body:
'''Wenn Geschlecht weiblich und Alter über 20 Jahren, dann Vorschlag; 1x pro Jahr''',
schedule: nextInstanceOfYear(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 7,
title:
'Altersbedingter routinemäßiger Gesundheits-Check-up beim Hausarzt',
body:
'''Wie du weißt solltest du einmal alle 3 Jahre zum generellen Gesundheits-Check-up zu deinem Hausarzt. Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOf3Year(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 8,
title: 'Augenarzt (Routine-Check)',
body:
'''Wie du weißt solltest du alle 5 Jahre zu einer Früherkennungsuntersuchung zum Augenarzt. Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOf5Year(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 9,
title: 'Augenarzt (Routine-Check)',
body:
'''Wie du weißt solltest du alle 2 Jahre zu einer Früherkennungsuntersuchung zum Augenarzt. Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOf2Year(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 10,
title: 'Augenarzt (Routine-Check)',
body:
'''You know the drill: Als Brillenträger solltest du einmal alle zwei Jahre zur Routineuntersuchung zum Augenarzt oder Optiker. Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOf2Year(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 11,
title: 'Augenarzt (Routine-Check)',
body:
'''You know the drill: Als Kontaktlinsenträger solltest du einmal jährlich zur Routineuntersuchung zum Augenarzt oder Optiker. Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOfYear(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 12,
title: 'Darmkrebsvorsorge beim Gastroenterologen',
body:
'''Wie du weißt solltest du einmal im Jahr zu einer Früherkennungsuntersuchung von Darmkrebs zum Gastroenterologen. Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOfYear(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 13,
title: 'Darmkrebsvorsorge beim Gastroenterologen',
body:
'''Wie du weißt solltest du einmal alle zwei Jahre zu einer Früherkennungsuntersuchung von Darmkrebs zum Gastroenterologen (oder alle 10 Jahre zu einer großen Darmspiegelung). Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOf2Year(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 14,
title: 'Darmkrebsvorsorge beim Gastroenterologen',
body:
'''Wie du weißt solltest du einmal im Jahr zu einer Früherkennungsuntersuchung von Darmkrebs zum Gastroenterologen (oder alle 10 Jahre zu einer großen Darmspiegelung). Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOfYear(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 15,
title: 'Darmkrebsvorsorge beim Gastroenterologen',
body:
'''Wie du weißt solltest du einmal alle zwei Jahre zu einer Früherkennungsuntersuchung von Darmkrebs zum Gastroenterologen (oder alle 10 Jahre zu einer großen Darmspiegelung). Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOf2Year(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 16,
title:
'Krebsfrüherkennungsuntersuchung der Genitalien und Prostata beim Urologen',
body:
'''Wie du weißt solltest du einmal im Jahr zu einer Krebsfrüherkennungsuntersuchung zum Urologen. Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOfYear(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 17,
title: 'Hautkrebs-Screening beim Dermatologen',
body:
'''Wie du weißt solltest du alle zwei Jahre beim Dermatologen ein Hautkrebs-Screening durchführen lassen. Hier daher ein kleiner Reminder, dir hierfür einen Termin auszumachen.''',
schedule: nextInstanceOf2Year(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 18,
title: 'Wasser Trinken',
body:
'''Vergiss nicht genügend Wasser zu dir zu nehmen. Trinke am besten jetzt direkt ein Glas.''',
schedule: nextInstanceOf2Hours(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 19,
title: 'Einnahme deiner Nahrungsergänzungsmittel',
body:
'''Vergiss nicht deine Nahrungsergänzungsmittel (falls von deinem Arzt verordnet) jetzt gleich einzunehmen!''',
schedule: nextInstanceOf8(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 20,
title: 'Einnahme deiner Medikamente',
body:
'''Vergiss nicht deine Medikamente (falls von deinem Arzt verordnet) jetzt gleich einzunehmen!''',
schedule: nextInstanceOf8(),
matchDateTimeComponents: DateTimeComponents.time),
Notification(
id: 21,
title: 'Test Notification',
body:
'''This is a test notification that appears every hour''',
schedule: nextInstanceOf1Hour(),
matchDateTimeComponents: DateTimeComponents.time)
];
3 changes: 3 additions & 0 deletions lib/data/user_notifications.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ class UserNotifications {
List<Notification> getNotifications(UthUser user) {
List<Notification> allNotifications = notifications.toList();
List<Notification> userNotificaitons = [];
print(allNotifications[0]);

//Impfung
userNotificaitons.add(allNotifications[0]);
Expand Down Expand Up @@ -87,6 +88,8 @@ class UserNotifications {
if (user.ass24Medication == true) {
userNotificaitons.add(allNotifications[20]);
}
// Test
userNotificaitons.add(allNotifications[21]);

return userNotificaitons;
}
Expand Down
1 change: 1 addition & 0 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
tz.initializeTimeZones();

//FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
await flutterLocalNotificationsPlugin
Expand Down
Loading

0 comments on commit 853a609

Please sign in to comment.