import 'dart:io';

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/main.dart';

import '../../../constant/colors.dart';
import '../../../controller/functions/tts.dart';
import '../../../controller/home/map_passenger_controller.dart';
import '../Captin/home_captain/driver_call_page.dart';

GetBuilder<MapPassengerController> leftMainMenuIcons() {
  final textToSpeechController = Get.put(TextToSpeechController());
  return GetBuilder<MapPassengerController>(
    builder: (controller) => Positioned(
        top: 85,
        left: 6,
        child: Column(
          children: [
            AnimatedContainer(
              duration: const Duration(microseconds: 200),
              width: controller.widthMapTypeAndTraffic,
              decoration: BoxDecoration(
                  border: Border.all(),
                  color: AppColor.secondaryColor,
                  borderRadius: BorderRadius.circular(15)),
              child: IconButton(
                onPressed: () {
                  controller.changeMapType();
                  // Toast.show(context, 'This is a toast message!');
                },
                icon: const Icon(
                  Icons.satellite_alt,
                  size: 29,
                ),
              ),
            ),
            const SizedBox(
              height: 5,
            ),
            AnimatedContainer(
              duration: const Duration(microseconds: 200),
              width: controller.widthMapTypeAndTraffic,
              decoration: BoxDecoration(
                  color: AppColor.secondaryColor,
                  border: Border.all(),
                  borderRadius: BorderRadius.circular(15)),
              child: IconButton(
                onPressed: () {
                  controller.changeMapTraffic();
                  // Toast.show(context, 'This is a toast message!');
                },
                icon: const Icon(
                  Icons.streetview_sharp,
                  size: 29,
                ),
              ),
            ),
            const SizedBox(
              height: 5,
            ),
            if (Platform.isIOS)
              AnimatedContainer(
                duration: const Duration(microseconds: 200),
                width: controller.widthMapTypeAndTraffic,
                decoration: BoxDecoration(
                    color: AppColor.secondaryColor,
                    border: Border.all(),
                    borderRadius: BorderRadius.circular(15)),
                child: IconButton(
                  onPressed: () {
                    controller.mapController?.animateCamera(
                        CameraUpdate.newLatLng(LatLng(
                            controller.passengerLocation.latitude,
                            controller.passengerLocation.longitude)));
                  },
                  icon: const Icon(
                    Icons.location_on,
                    size: 29,
                  ),
                ),
              ),
            AnimatedContainer(
              duration: const Duration(microseconds: 200),
              width: controller.widthMapTypeAndTraffic,
              decoration: BoxDecoration(
                  color: AppColor.secondaryColor,
                  border: Border.all(),
                  borderRadius: BorderRadius.circular(15)),
              child: IconButton(
                onPressed: () {
                  textToSpeechController.speakText(
                      '''hello this is  ${box.read(BoxName.name)}''');
                },
                icon: const Icon(
                  Icons.voice_chat,
                  size: 29,
                ),
              ),
            ),
            AnimatedContainer(
              duration: const Duration(microseconds: 200),
              width: controller.widthMapTypeAndTraffic,
              decoration: BoxDecoration(
                  color: AppColor.secondaryColor,
                  border: Border.all(),
                  borderRadius: BorderRadius.circular(15)),
              child: IconButton(
                onPressed: () {
                  // NotificationController()
                  //     .showNotification('Order', 'hi this is', 'tone1');
                  Get.to(() => DriverCallPage());
                  // PassengerCallPage(
                  //       channelName: '',
                  //       token: '',
                  //       remoteID: '',
                  //     )
                  // Get.to(() => const CallPage());
                },
                icon: const Icon(
                  Icons.call,
                  size: 29,
                ),
              ),
            ),
          ],
        )),
  );
}
