Added dialog to ask users to enable Notifications
This commit is contained in:
@ -7,6 +7,7 @@ import 'package:provider/provider.dart';
|
||||
import '../../../api/marianumcloud/talk/createRoom/createRoom.dart';
|
||||
import '../../../api/marianumcloud/talk/createRoom/createRoomParams.dart';
|
||||
import '../../../model/chatList/chatListProps.dart';
|
||||
import '../../../notification/notifyUpdater.dart';
|
||||
import '../../../storage/base/settingsProvider.dart';
|
||||
import '../../../widget/confirmDialog.dart';
|
||||
import '../../../widget/loadingSpinner.dart';
|
||||
@ -27,13 +28,43 @@ class _ChatListState extends State<ChatList> {
|
||||
void initState() {
|
||||
super.initState();
|
||||
|
||||
FirebaseMessaging.instance.requestPermission(
|
||||
provisional: false
|
||||
);
|
||||
|
||||
|
||||
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
|
||||
_query();
|
||||
|
||||
SettingsProvider settings = Provider.of<SettingsProvider>(context, listen: false);
|
||||
if(!settings.val().notificationSettings.enabled && !settings.val().notificationSettings.askUsageDismissed) {
|
||||
settings.val(write: true).notificationSettings.askUsageDismissed = true;
|
||||
|
||||
ConfirmDialog(
|
||||
icon: Icons.notifications_active_outlined,
|
||||
title: "Benachrichtigungen aktivieren",
|
||||
content: "Auf wunsch kannst du Push-Benachrichtigungen aktivieren. Deine Einstellungen kannst du jederzeit ändern.",
|
||||
confirmButton: "Weiter",
|
||||
onConfirm: () {
|
||||
FirebaseMessaging.instance.requestPermission(
|
||||
provisional: false
|
||||
).then((value) {
|
||||
switch (value.authorizationStatus) {
|
||||
case AuthorizationStatus.authorized:
|
||||
NotifyUpdater.enableAfterDisclaimer(settings).asDialog(context);
|
||||
break;
|
||||
case AuthorizationStatus.denied:
|
||||
showDialog(context: context, builder: (context) => const AlertDialog(
|
||||
content: Text("Du kannst die Benachrichtigungen später jederzeit in den App-Einstellungen aktivieren."),
|
||||
));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
});
|
||||
},
|
||||
).asDialog(context);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
void _query({bool renew = false}) {
|
||||
|
Reference in New Issue
Block a user