flutter_notification_center/example/lib/main.dart

100 lines
2.7 KiB
Dart
Raw Normal View History

2024-04-09 09:59:58 +02:00
import 'package:example/config/firebase_options.dart';
import 'package:example/services/firebase_notification_service.dart';
2024-04-03 14:38:40 +02:00
import 'package:flutter/material.dart';
2024-04-09 09:59:58 +02:00
import 'package:flutter/services.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:intl/date_symbol_data_local.dart';
import 'package:firebase_auth/firebase_auth.dart';
2024-04-03 14:38:40 +02:00
import 'package:flutter_notification_center/flutter_notification_center.dart';
2024-04-09 09:59:58 +02:00
import 'package:provider/provider.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await _configureApp();
await initializeDateFormatting();
await _signInUser();
2024-04-03 14:38:40 +02:00
runApp(
2024-04-09 09:59:58 +02:00
ChangeNotifierProvider(
create: (_) => FirebaseNotificationService(),
child: const MaterialApp(
home: NotificationCenterDemo(),
),
2024-04-03 14:38:40 +02:00
),
);
}
2024-04-09 09:59:58 +02:00
Future<void> _configureApp() async {
try {
await dotenv.load(fileName: 'dotenv');
} catch (e) {
debugPrint('Failed to load dotenv file: $e');
}
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
await SystemChrome.setPreferredOrientations(
[
DeviceOrientation.portraitDown,
DeviceOrientation.portraitUp,
],
);
}
Future<void> _signInUser() async {
FirebaseAuth auth = FirebaseAuth.instance;
User? user = auth.currentUser;
if (user == null) {
try {
UserCredential userCredential = await auth.signInWithEmailAndPassword(
email: 'freek@iconica.nl',
password: 'wachtwoord',
);
} catch (e) {
debugPrint('Failed to sign in: $e');
}
}
}
class NotificationCenterDemo extends StatefulWidget {
2024-04-03 14:38:40 +02:00
const NotificationCenterDemo({Key? key}) : super(key: key);
@override
State<NotificationCenterDemo> createState() => _NotificationCenterDemoState();
}
class _NotificationCenterDemoState extends State<NotificationCenterDemo> {
2024-04-09 09:59:58 +02:00
@override
Widget build(BuildContext context) {
var config = NotificationConfig(
service: Provider.of<FirebaseNotificationService>(
context), // Use the same instance of FirebaseNotificationService
style: const NotificationStyle(
appTitleTextStyle: TextStyle(
color: Colors.black,
fontSize: 20,
),
2024-04-09 09:59:58 +02:00
titleTextStyle: TextStyle(
color: Colors.black,
fontWeight: FontWeight.w500,
fontSize: 20,
),
2024-04-09 09:59:58 +02:00
),
);
2024-04-03 14:38:40 +02:00
return Scaffold(
appBar: AppBar(
title: const Text('Notification Center Demo'),
centerTitle: true,
actions: [
NotificationBellWidgetStory(
config: config,
),
],
),
body: const SizedBox.shrink(),
);
2024-04-03 14:38:40 +02:00
}
}