added (very) simple notifcations test to app

This commit is contained in:
broodjeaap89 2021-08-05 21:57:22 +02:00
parent 316b05b644
commit eecb60ab0e
3 changed files with 50 additions and 0 deletions

View file

@ -1,4 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:pizzaplanner/entities/PizzaEvent.dart'; import 'package:pizzaplanner/entities/PizzaEvent.dart';
import 'package:pizzaplanner/entities/PizzaRecipe/Ingredient.dart'; import 'package:pizzaplanner/entities/PizzaRecipe/Ingredient.dart';
import 'package:pizzaplanner/entities/PizzaRecipe/PizzaRecipe.dart'; import 'package:pizzaplanner/entities/PizzaRecipe/PizzaRecipe.dart';
@ -13,7 +14,10 @@ import 'package:hive/hive.dart';
import 'package:hive_flutter/hive_flutter.dart'; import 'package:hive_flutter/hive_flutter.dart';
import 'package:pizzaplanner/util.dart'; import 'package:pizzaplanner/util.dart';
final flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
void main() async { void main() async {
// hive init
await Hive.initFlutter(); await Hive.initFlutter();
Hive.registerAdapter(PizzaEventAdapter()); Hive.registerAdapter(PizzaEventAdapter());
@ -30,6 +34,18 @@ void main() async {
pizzaRecipesBox.addAll(await getRecipes()); pizzaRecipesBox.addAll(await getRecipes());
} }
// notification init
const initializationSettingsAndroid = AndroidInitializationSettings('@mipmap/app_icon');
final initializationSettingsIOS = IOSInitializationSettings();
final initializationSettingsMacOS = MacOSInitializationSettings();
final initializationSettings = InitializationSettings(
android: initializationSettingsAndroid,
iOS: initializationSettingsIOS,
macOS: initializationSettingsMacOS
);
await flutterLocalNotificationsPlugin.initialize(initializationSettings,
onSelectNotification: selectNotification);
runApp(PizzaPlanner()); runApp(PizzaPlanner());
//await Hive.close(); //await Hive.close();
@ -68,4 +84,12 @@ class RouteGenerator {
} }
} }
} }
}
Future selectNotification(String? payload) async {
if (payload == null) {
print("Payload: null");
return;
}
print("Payload: $payload");
} }

View file

@ -1,8 +1,10 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:fluttericon/font_awesome5_icons.dart'; import 'package:fluttericon/font_awesome5_icons.dart';
import 'package:pizzaplanner/entities/PizzaEvent.dart'; import 'package:pizzaplanner/entities/PizzaEvent.dart';
import 'package:pizzaplanner/entities/PizzaRecipe/RecipeStep.dart'; import 'package:pizzaplanner/entities/PizzaRecipe/RecipeStep.dart';
import 'package:pizzaplanner/entities/PizzaRecipe/RecipeSubStep.dart'; import 'package:pizzaplanner/entities/PizzaRecipe/RecipeSubStep.dart';
import 'package:pizzaplanner/main.dart';
class PizzaEventPage extends StatefulWidget { class PizzaEventPage extends StatefulWidget {
final PizzaEvent pizzaEvent; final PizzaEvent pizzaEvent;
@ -157,6 +159,28 @@ class SubStepDialogState extends State<SubStepDialog> {
}, },
) )
) )
),
SizedBox(
width: double.infinity,
height: 70,
child: Container(
color: Colors.grey,
child: TextButton(
child: Text("Notify!", style: TextStyle(color: Colors.white)),
onPressed: () async {
const androidPlatformChannelSpecifics = AndroidNotificationDetails(
"PizzaEvent", "PizzaEvent", "PizzaEvent notifications",
importance: Importance.max,
priority: Priority.high,
ticker: "ticker"
);
const platformChannelSpecific = NotificationDetails(android: androidPlatformChannelSpecifics);
await flutterLocalNotificationsPlugin.show(
0, 'test', 'teeest', platformChannelSpecific,
payload: "payload123");
},
)
)
) )
] ]
) )

View file

@ -38,6 +38,8 @@ dependencies:
hive: ^2.0.4 hive: ^2.0.4
hive_flutter: ^1.1.0 hive_flutter: ^1.1.0
flutter_local_notifications: ^8.0.0
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter