import 'dart:math';

import 'package:flutter/material.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart';
import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'dart:ui'; // مهم لإضافة تأثير الضبابية

import '../../../constant/colors.dart';
import '../../../controller/functions/tts.dart';
import '../../../controller/home/ios_live_activity_service.dart';
import '../../../controller/home/map_passenger_controller.dart';
import '../../../controller/home/vip_waitting_page.dart';
import '../../../print.dart';

// --- الدالة الرئيسية بالتصميم الجديد ---
GetBuilder<MapPassengerController> leftMainMenuIcons() {
  Get.put(TextToSpeechController());
  return GetBuilder<MapPassengerController>(
    builder: (controller) => Positioned(
      // تم تعديل الموضع ليتناسب مع التصميم الجديد
      top: Get.height * .01,
      left: 0,
      right: 0,
      child: Center(
        child: ClipRRect(
          borderRadius: BorderRadius.circular(50.0), // لإنشاء شكل الكبسولة
          child: BackdropFilter(
            filter: ImageFilter.blur(
                sigmaX: 8.0, sigmaY: 8.0), // تأثير الزجاج المصنفر
            child: AnimatedContainer(
              duration: const Duration(milliseconds: 300),
              padding: const EdgeInsets.symmetric(horizontal: 8),
              decoration: BoxDecoration(
                color: AppColor.secondaryColor.withOpacity(0.4), // لون شبه شفاف
                borderRadius: BorderRadius.circular(50.0),
                border: Border.all(color: AppColor.secondaryColor),
              ),
              child: Row(
                mainAxisAlignment: MainAxisAlignment.center,
                mainAxisSize: MainAxisSize.min, // ليأخذ الشريط حجم الأزرار فقط
                children: [
                  // --- تم استخدام دالة مساعدة جديدة للزر ---
                  _buildMapActionButton(
                    icon: Icons.satellite_alt_outlined,
                    tooltip: 'Toggle Map Type',
                    onPressed: () => controller.changeMapType(),
                  ),
                  // _buildVerticalDivider(),
                  // _buildMapActionButton(
                  //   icon: Icons.traffic_outlined,
                  //   tooltip: 'Toggle Traffic',
                  //   onPressed: () => controller.changeMapTraffic(),
                  // ),
                  _buildVerticalDivider(),
                  _buildMapActionButton(
                    icon: Icons.my_location_rounded,
                    tooltip: 'Go to My Location',
                    onPressed: () {
                      controller.mapController?.animateCamera(
                        CameraUpdate.newLatLng(
                          LatLng(
                            controller.passengerLocation.latitude,
                            controller.passengerLocation.longitude,
                          ),
                        ),
                      );
                    },
                  ),
                  _buildVerticalDivider(),
                  _buildMapActionButton(
                    icon: Octicons.watch,
                    tooltip: 'VIP Waiting Page',
                    onPressed: () => Get.to(() => VipWaittingPage()),
                  ),
                  // _buildMapActionButton(
                  //   icon: Octicons.ellipsis,
                  //   tooltip: 'test',
                  //   onPressed: () => Get.to(() => TestPage()),
                  // ),
                ],
              ),
            ),
          ),
        ),
      ),
    ),
  );
}

// --- دالة مساعدة جديدة لإنشاء الأزرار بشكل أنيق ---
Widget _buildMapActionButton({
  required IconData icon,
  required String tooltip,
  required VoidCallback onPressed,
}) {
  return IconButton(
    onPressed: onPressed,
    icon: Icon(icon, color: AppColor.writeColor, size: 22),
    tooltip: tooltip,
    splashRadius: 22,
    padding: const EdgeInsets.all(12),
    constraints: const BoxConstraints(), // لإزالة المساحات الافتراضية
  );
}

// --- ويدجت للفاصل الرأسي بين الأزرار ---
Widget _buildVerticalDivider() {
  return Container(
    height: 20,
    width: 1,
    color: AppColor.writeColor.withOpacity(0.2),
  );
}

// --- باقي الكود الخاص بك يبقى كما هو بدون تغيير ---

class TestPage extends StatelessWidget {
  const TestPage({super.key});

  @override
  Widget build(BuildContext context) {
    final random = Random();

    return Scaffold(
      appBar: AppBar(
        title: const Text('iOS Live Activity Test'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            // زر البدء
            ElevatedButton(
              onPressed: () async {
                debugPrint("🍎 محاولة تشغيل Live Activity (Start)...");
                try {
                  await IosLiveActivityService.startRideActivity(
                    rideId: "123",
                    driverName: "تجربة مبدئية",
                    carDetails: "تويوتا • أسود",
                    etaText: "5 دقائق",
                    progress: 0.2,
                  );
                  debugPrint(
                      "✅ تم تشغيل Live Activity بنجاح! أغلق الشاشة لترى النتيجة.");
                } catch (e) {
                  debugPrint("❌ خطأ في Start Live Activity: $e");
                }
              },
              child: const Text('Start Activity'),
            ),

            const SizedBox(height: 16),

            // زر التحديث العشوائي
            ElevatedButton(
              onPressed: () async {
                debugPrint("🔄 محاولة تحديث Live Activity (Update)...");

                // توليد بيانات عشوائية للاختبار
                final statuses = ['waiting', 'ongoing'];
                final status = statuses[random.nextInt(statuses.length)];

                final int minutes = random.nextInt(15) + 1; // 1–15
                final String eta = "$minutes دقائق";

                final double progress = (random.nextDouble() * 0.9) + 0.05;
                // بين 0.05 و 0.95 تقريبًا

                try {
                  await IosLiveActivityService.updateRideActivity(
                    status: status,
                    driverName:
                        status == 'waiting' ? 'السائق في الطريق' : 'السائق معك',
                    carDetails: "تويوتا • أسود",
                    etaText: eta,
                    progress: progress,
                  );
                  debugPrint(
                      "✅ تم تحديث Live Activity: status=$status, eta=$eta, progress=$progress");
                } catch (e) {
                  debugPrint("❌ خطأ في Update Live Activity: $e");
                }
              },
              child: const Text('Update (Random)'),
            ),

            const SizedBox(height: 16),

            // زر الإنهاء
            ElevatedButton(
              style: ElevatedButton.styleFrom(
                backgroundColor: Colors.red,
              ),
              onPressed: () async {
                debugPrint("🛑 محاولة إنهاء Live Activity (End)...");
                try {
                  await IosLiveActivityService.endRideActivity();
                  debugPrint("✅ تم إنهاء Live Activity.");
                } catch (e) {
                  debugPrint("❌ خطأ في End Live Activity: $e");
                }
              },
              child: const Text('End Activity'),
            ),
          ],
        ),
      ),
    );
  }
}
