Skip to content

Commit f9ce479

Browse files
committed
#20 add test android notifications
1 parent 95b9046 commit f9ce479

File tree

5 files changed

+59
-4
lines changed

5 files changed

+59
-4
lines changed
140 KB
Loading
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
2+
3+
class NotificationService {
4+
static final NotificationService _notificationService = NotificationService._internal();
5+
final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
6+
7+
NotificationDetails platformChannelSpecifics = const NotificationDetails(
8+
android: AndroidNotificationDetails(
9+
"0",
10+
"Flutter Local Notification",
11+
importance: Importance.defaultImportance,
12+
priority: Priority.defaultPriority,
13+
),
14+
);
15+
16+
factory NotificationService() {
17+
return _notificationService;
18+
}
19+
20+
NotificationService._internal();
21+
22+
Future<void> init() async {
23+
const AndroidInitializationSettings initializationSettingsAndroid = AndroidInitializationSettings('app_icon');
24+
25+
const InitializationSettings initializationSettings =
26+
InitializationSettings(android: initializationSettingsAndroid);
27+
28+
await flutterLocalNotificationsPlugin.initialize(
29+
initializationSettings,
30+
);
31+
}
32+
33+
void sendAndoidNotification({required String title, required String body}) async {
34+
await flutterLocalNotificationsPlugin.show(
35+
0,
36+
title,
37+
body,
38+
platformChannelSpecifics,
39+
payload: 'data',
40+
);
41+
}
42+
}

lib/main.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import 'package:flutter/material.dart';
2+
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
23
import 'package:hooks_riverpod/hooks_riverpod.dart';
4+
import 'package:untis_phasierung/core/service/notification.service.dart';
35
import 'package:untis_phasierung/core/service/services.dart';
46
import 'package:untis_phasierung/ui/screens/settings/settings.screen.dart';
57
import 'package:untis_phasierung/ui/screens/time_table/time_table.screen.dart';
@@ -8,8 +10,10 @@ import 'package:untis_phasierung/ui/shared/custom_drawer.dart';
810
import 'package:logger/logger.dart';
911
import 'package:untis_phasierung/ui/screens/login/login.screen.dart';
1012

11-
void main() {
13+
Future<void> main() async {
1214
Logger.level = Level.debug;
15+
WidgetsFlutterBinding.ensureInitialized();
16+
await NotificationService().init();
1317
runApp(
1418
const ProviderScope(
1519
child: MyApp(),

lib/ui/screens/time_table/time_table.screen.dart

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import 'package:flutter/material.dart';
2+
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
23
import 'package:hooks_riverpod/hooks_riverpod.dart';
34
import 'package:liquid_pull_to_refresh/liquid_pull_to_refresh.dart';
45
import 'package:untis_phasierung/core/api/models/timetable.hour.dart';
56
import 'package:untis_phasierung/core/api/timetable.dart';
67
import 'package:untis_phasierung/core/excel/models/mergedtimetable.dart';
8+
import 'package:untis_phasierung/core/service/notification.service.dart';
79
import 'package:untis_phasierung/core/service/services.dart';
810
import 'package:untis_phasierung/ui/screens/time_table/widgets/custom_time_table_card.dart';
911
import 'package:untis_phasierung/ui/screens/time_table/widgets/custom_time_table_day_card.dart';
@@ -245,7 +247,13 @@ class TimeTableScreen extends ConsumerWidget {
245247
},
246248
icon: const Icon(Icons.today),
247249
tooltip: "Spring zur aktuellen Woche",
248-
)
250+
),
251+
IconButton(
252+
onPressed: () {
253+
NotificationService().sendAndoidNotification(title: "Test", body: "lol");
254+
},
255+
icon: const Icon(Icons.notification_add),
256+
),
249257
],
250258
),
251259
drawer: const CustomDrawer(),

pubspec.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ dependencies:
1313
file_picker: ^4.3.1
1414
flutter:
1515
sdk: flutter
16+
flutter_local_notifications: ^9.2.0
1617
flutter_secure_storage: ^5.0.2
1718
fluttericon: ^2.0.0
1819
google_fonts: ^2.2.0
@@ -26,9 +27,9 @@ dependencies:
2627
url_launcher: ^6.0.17
2728

2829
dev_dependencies:
29-
flutter_native_splash: ^1.3.3
3030
flutter_launcher_icons: "^0.9.2"
3131
flutter_lints: ^1.0.0
32+
flutter_native_splash: ^1.3.3
3233
flutter_test:
3334
sdk: flutter
3435

@@ -40,4 +41,4 @@ flutter:
4041
flutter_icons:
4142
android: true
4243
ios: true
43-
image_path: "assets/images/app_icon.png"
44+
image_path: "assets/images/app_icon.png"

0 commit comments

Comments
 (0)