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_local_notifications/flutter_local_notifications.dart';
import 'package:pizzaplanner/entities/PizzaEvent.dart';
import 'package:pizzaplanner/entities/PizzaRecipe/Ingredient.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:pizzaplanner/util.dart';
final flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
void main() async {
// hive init
await Hive.initFlutter();
Hive.registerAdapter(PizzaEventAdapter());
@ -30,6 +34,18 @@ void main() async {
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());
//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_local_notifications/flutter_local_notifications.dart';
import 'package:fluttericon/font_awesome5_icons.dart';
import 'package:pizzaplanner/entities/PizzaEvent.dart';
import 'package:pizzaplanner/entities/PizzaRecipe/RecipeStep.dart';
import 'package:pizzaplanner/entities/PizzaRecipe/RecipeSubStep.dart';
import 'package:pizzaplanner/main.dart';
class PizzaEventPage extends StatefulWidget {
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_flutter: ^1.1.0
flutter_local_notifications: ^8.0.0
dev_dependencies:
flutter_test:
sdk: flutter