import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';

Future<void> makePhoneCall(String phoneNumber) async {
  final Uri launchUri = Uri(
    scheme: 'tel',
    path: phoneNumber,
  );
  await launchUrl(launchUri);
}

Future<void> launchAppUrl(BuildContext context, Uri uri,
    {String? errorMessage}) async {
  debugPrint('Trying to launch: $uri');
  final canLaunch = await canLaunchUrl(uri);
  debugPrint('canLaunchUrl result: $canLaunch');
  if (canLaunch) {
    await launchUrl(uri, mode: LaunchMode.externalApplication);
  } else {
    debugPrint('canLaunchUrl returned false for: $uri');
    if (context.mounted) {
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text(errorMessage ?? 'Could not open the app.')),
      );
    }
  }
}

Future<void> launchEmail(BuildContext context, String email,
    {String? errorMessage}) async {
  final Uri emailUri = Uri(scheme: 'mailto', path: email);
  await launchAppUrl(context, emailUri,
      errorMessage: errorMessage ?? 'Could not open email app.');
}