// map_dialog_view.dart

import 'dart:io';

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

class MapDialogView extends StatelessWidget {
  final double latitude;
  final double longitude;

  const MapDialogView({
    super.key,
    required this.latitude,
    required this.longitude,
  });

  // Funktion zum Öffnen der Karten-URL
  void _openMap() async {
    String url = '';
    final coords = '$latitude,$longitude';

    if (Platform.isAndroid) {
      // Android: Startet die Google Maps Navigation
      url =
          'https://www.google.com/maps/dir/?api=1&destination=$coords'; // mode=d für Fahren
    } else if (Platform.isIOS) {
      // iOS: Startet die Apple Maps Navigation
      url =
          'https://maps.apple.com/?daddr=$coords&dirflg=d'; // daddr für destination, dirflg=d für driving
    } else {
      // Fallback-URL für die Google Maps Website mit Wegbeschreibung
      url = 'https://www.google.com/maps/dir/?api=1&destination=$coords';
    }
    // Hier die URL-Logik einfügen, die Sie bereits kennen
    //final url = 'http://googleusercontent.com/maps.google.com/8';
    final uri = Uri.parse(url);

    if (await canLaunchUrl(uri)) {
      await launchUrl(uri);
    } else {
      // Eine Snackbar oder ein Dialog, um den Fehler zu melden
      print('Fehler: Konnte Karten-App nicht öffnen.');
    }
    Get.back();
  }

  @override
  Widget build(BuildContext context) {
    return AlertDialog(
      title: const Text('Karte öffnen'),
      content: Column(
        mainAxisSize: MainAxisSize.min,
        crossAxisAlignment:
            CrossAxisAlignment.start, // Passt die Höhe an den Inhalt an
        children: [
          Text('Koordinaten'),
          Text('Latitude: $latitude'),
          Text('Longitude: $longitude'),
          const SizedBox(height: 20),
          ElevatedButton(
            onPressed: _openMap, // Ruft die Methode zum Öffnen der Karte auf
            child: const Text('Karten-App öffnen'),
          ),
        ],
      ),
      actions: [
        TextButton(
          onPressed: () => Navigator.of(context).pop(), // Schließt den Dialog
          child: const Text('Schließen'),
        ),
      ],
    );
  }
}
