added (very) simple notifcations test to app
This commit is contained in:
parent
316b05b644
commit
eecb60ab0e
3 changed files with 50 additions and 0 deletions
|
@ -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");
|
||||||
}
|
}
|
|
@ -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");
|
||||||
|
},
|
||||||
|
)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Reference in a new issue