46 lines
1.2 KiB
Dart
46 lines
1.2 KiB
Dart
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
|
|
|
class NotificationService {
|
|
final notifiactionPlugin = FlutterLocalNotificationsPlugin();
|
|
|
|
bool _isInitialized = false;
|
|
|
|
bool get isInitialized => _isInitialized;
|
|
|
|
Future<void> initNotification() async {
|
|
if (_isInitialized) return;
|
|
|
|
await notifiactionPlugin.resolvePlatformSpecificImplementation<AndroidFlutterLocalNotificationsPlugin>()!.requestNotificationsPermission();
|
|
|
|
|
|
const initSettingsAndroid = AndroidInitializationSettings(
|
|
'@mipmap/ic_launcher',
|
|
);
|
|
|
|
const initSettings = InitializationSettings(android: initSettingsAndroid);
|
|
|
|
await notifiactionPlugin.initialize(initSettings);
|
|
_isInitialized = true;
|
|
}
|
|
|
|
NotificationDetails notificationDetails() {
|
|
return const NotificationDetails(
|
|
android: AndroidNotificationDetails(
|
|
"tracking0",
|
|
"tracking ongoing",
|
|
importance: Importance.low,
|
|
priority: Priority.low,
|
|
ongoing: true,
|
|
),
|
|
);
|
|
}
|
|
|
|
Future<void> showNotification({int id = 0, String? title}) async {
|
|
return notifiactionPlugin.show(id, title, "", notificationDetails());
|
|
}
|
|
|
|
Future<void> deleteNotification({id = 0}) async {
|
|
await notifiactionPlugin.cancel(id);
|
|
}
|
|
}
|