import 'package:flutter/material.dart'; import 'package:overlay_support/overlay_support.dart'; class AgoraNotificationService { static void showCallNotification({ required String title, required String subtitle, required VoidCallback onTap, Duration duration = const Duration(seconds: 10), }) { showOverlayNotification( (context) => Card( margin: const EdgeInsets.symmetric(horizontal: 4), child: SafeArea( child: ListTile( leading: const CircleAvatar( backgroundColor: Colors.blue, child: Icon(Icons.video_call, color: Colors.white), ), title: Text(title), subtitle: Text(subtitle), trailing: IconButton( icon: const Icon(Icons.close), onPressed: () => OverlaySupportEntry.of(context)?.dismiss(), ), onTap: () { OverlaySupportEntry.of(context)?.dismiss(); onTap(); }, ), ), ), duration: duration, position: NotificationPosition.top, ); } static void showCustomNotification({ required Widget child, Duration duration = const Duration(seconds: 5), NotificationPosition position = NotificationPosition.top, }) { showOverlayNotification( (context) => child, duration: duration, position: position, ); } static void showSimpleNotification({ required String message, Color backgroundColor = Colors.black87, Color textColor = Colors.white, Duration duration = const Duration(seconds: 3), }) { showSimpleNotification( message:message, backgroundColor: backgroundColor, duration: duration, textColor: textColor, ); } }