| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- import 'package:custom_notification/custom_notification.dart';
- import 'package:electronic_assistant/data/bean/talks.dart';
- import 'package:electronic_assistant/module/talk/view.dart';
- import 'package:flutter_local_notifications/flutter_local_notifications.dart';
- class NotificationUtil {
- NotificationUtil._();
- static String formatDuration(double seconds) {
- final duration = Duration(seconds: seconds.toInt());
- final hours = duration.inHours.toString().padLeft(2, '0');
- final minutes = (duration.inMinutes % 60).toString().padLeft(2, '0');
- final secs = (duration.inSeconds % 60).toString().padLeft(2, '0');
- return '$hours:$minutes:$secs';
- }
- static void showRecordNotification(
- int notificationId, bool isRecording, double recordDuration,
- {required String channelId, required String channelName}) {
- CustomNotification.showRecordNotification(
- notificationId, isRecording, formatDuration(recordDuration),
- channelId: channelId, channelName: channelName);
- }
- static int _analyseNotificationId = 2000;
- static int getAnalyseNotificationId() {
- return _analyseNotificationId++;
- }
- static void showAnalyseSuccessNotification(String talkId) async {
- final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
- FlutterLocalNotificationsPlugin();
- const AndroidInitializationSettings initializationSettingsAndroid =
- AndroidInitializationSettings('@mipmap/ic_launcher');
- const InitializationSettings initializationSettings =
- InitializationSettings(
- android: initializationSettingsAndroid,
- );
- await flutterLocalNotificationsPlugin.initialize(
- initializationSettings,
- onDidReceiveNotificationResponse:
- (NotificationResponse notificationResponse) async {
- if (notificationResponse.payload != null) {
- TalkPage.startById(notificationResponse.payload!);
- }
- },
- );
- const AndroidNotificationDetails androidPlatformChannelSpecifics =
- AndroidNotificationDetails(
- 'talk_analyse_success',
- '谈话分析通知',
- channelDescription: '谈话分析成功',
- importance: Importance.max,
- priority: Priority.high,
- );
- const NotificationDetails platformChannelSpecifics =
- NotificationDetails(android: androidPlatformChannelSpecifics);
- await flutterLocalNotificationsPlugin.show(
- getAnalyseNotificationId(),
- '小听谈话分析完成',
- '老板,谈话分析已完成,快点击查看吧。',
- platformChannelSpecifics,
- payload: talkId,
- );
- }
- // static void showAnalyseResultNotification(
- // int notificationId, bool isSuccess, String talkId,
- // {required String channelId, required String channelName}) {
- // CustomNotification.showAnalyseResultNotification(
- // notificationId, isSuccess, talkId,
- // channelId: channelId, channelName: channelName);
- // }
- }
|