diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 3f99dc8..be7320a 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -40,4 +40,5 @@ android:name="flutterEmbedding" android:value="2" /> + diff --git a/lib/pages/PizzaEventNotificationPage.dart b/lib/pages/PizzaEventNotificationPage.dart index c97f298..debc832 100644 --- a/lib/pages/PizzaEventNotificationPage.dart +++ b/lib/pages/PizzaEventNotificationPage.dart @@ -1,7 +1,9 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_datetime_picker/flutter_datetime_picker.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; +import 'package:flutter_ringtone_player/flutter_ringtone_player.dart'; import 'package:hive/hive.dart'; import 'package:pizzaplanner/entities/PizzaEvent.dart'; import 'package:pizzaplanner/entities/PizzaRecipe/RecipeStep.dart'; @@ -9,6 +11,7 @@ import 'package:pizzaplanner/main.dart'; import 'package:pizzaplanner/pages/RecipeStepInstructionPage.dart'; import 'package:timezone/timezone.dart' as tz; +import 'package:vibration/vibration.dart'; @@ -40,6 +43,16 @@ class PizzaEventNotificationState extends State { pizzaEvent = pizzaEventsBox.get(pizzaEventId)!; recipeStep = pizzaEvent.recipe.recipeSteps[recipeStepId]; + + FlutterRingtonePlayer.stop(); + Vibration.cancel(); + + FlutterRingtonePlayer.playNotification(looping: true); + Vibration.hasVibrator().then((hasVibrator) { + if(hasVibrator != null && hasVibrator){ + Vibration.vibrate(duration: 10000); + } + }); } @override @@ -139,6 +152,13 @@ class PizzaEventNotificationState extends State { ) ); } + + @override + Future dispose() async { + FlutterRingtonePlayer.stop(); + Vibration.cancel(); + super.dispose(); + } AlertDialog buildIgnoreDialog(){ return AlertDialog( diff --git a/pubspec.yaml b/pubspec.yaml index a1891ce..ee896ef 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -47,6 +47,9 @@ dependencies: flutter_markdown: ^0.6.4 url_launcher: ^6.0.9 + flutter_ringtone_player: ^3.0.0 + vibration: ^1.7.4-nullsafety.0 + dev_dependencies: flutter_test: sdk: flutter diff --git a/todo.md b/todo.md index e8f0a0d..bfeba19 100644 --- a/todo.md +++ b/todo.md @@ -1,9 +1,8 @@ # TODO ## Feature -- add rumbling/sound to notifaction screen - add settings page - - option for type of notifaction, full screen or just in the appbar + - option for type of notification, full screen or just in the appbar - deleting scheduled pizza events - archiving past pizza events - foto mode for pizza event