import 'package:flutter/services.dart'; import 'package:flutter/material.dart'; import '../features/call/call_page.dart'; class CallService { static const MethodChannel _channel = MethodChannel('call_service'); Future makeGsmCall( BuildContext context, { required String phoneNumber, String? displayName, Uint8List? thumbnail, // Added optional thumbnail }) async { try { final result = await _channel.invokeMethod('makeGsmCall', {"phoneNumber": phoneNumber}); if (result["status"] == "calling") { Navigator.push( context, MaterialPageRoute( builder: (context) => CallPage( displayName: displayName ?? phoneNumber, // Fallback to phoneNumber if no name phoneNumber: phoneNumber, thumbnail: thumbnail, // Pass the thumbnail ), ), ); } else if (result["status"] == "pending_default_dialer") { print("Waiting for user to set app as default dialer"); ScaffoldMessenger.of(context).showSnackBar( SnackBar(content: Text("Please set this app as your default dialer to proceed")), ); } } catch (e) { print("Error making call: $e"); rethrow; } } Future hangUpCall(BuildContext context) async { try { final result = await _channel.invokeMethod('hangUpCall'); if (result["status"] == "ended") { Navigator.pop(context); } } catch (e) { print("Error hanging up call: $e"); rethrow; } } }