import 'package:Intaleq/print.dart'; import 'dart:io'; import 'dart:convert'; import 'package:live_activities/live_activities.dart'; class IosLiveActivityService { static final _liveActivitiesPlugin = LiveActivities(); static String? _activityId; static void init() { if (Platform.isIOS) { _liveActivitiesPlugin.init( appGroupId: "group.com.Intaleq.intaleq", ); } } static Future startRideActivity({ required String rideId, required String driverName, required String carDetails, required String etaText, required double progress, }) async { if (!Platform.isIOS) return; try { await _liveActivitiesPlugin.endAllActivities(); // استخدام dynamic يسمح للحزمة بحفظ النصوص والأرقام في الذاكرة المشتركة final Map activityModel = { 'status': 'waiting', 'driverName': driverName, 'carDetails': carDetails, 'etaText': etaText, 'progress': progress, }; // الدالة هنا تأخذ المعاملات مباشرة _activityId = await _liveActivitiesPlugin.createActivity( rideId, activityModel, ); } catch (e) { Log.print("❌ Live Activity Start Error: $e"); } } static Future updateRideActivity({ required String status, required String driverName, required String carDetails, required String etaText, required double progress, }) async { if (!Platform.isIOS || _activityId == null) return; final Map updatedModel = { 'status': status, 'driverName': driverName, 'carDetails': carDetails, 'etaText': etaText, 'progress': progress, }; await _liveActivitiesPlugin.updateActivity(_activityId!, updatedModel); } static Future endRideActivity() async { if (!Platform.isIOS || _activityId == null) return; await _liveActivitiesPlugin.endActivity(_activityId!); _activityId = null; } }