Files
intaleq/lib/views/home/map_widget.dart/left_main_menu_icons.dart
Hamza-Ayed 6c87f7291d 25-9-1-1
2025-09-01 18:29:05 +03:00

157 lines
5.8 KiB
Dart

import 'package:Intaleq/controller/firebase/firbase_messge.dart';
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/auth/login_controller.dart';
import '../../../controller/functions/tts.dart';
import '../../../controller/home/map_passenger_controller.dart';
import '../../../controller/home/vip_waitting_page.dart';
import '../../auth/otp_page.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.8), // لون شبه شفاف
borderRadius: BorderRadius.circular(50.0),
border: Border.all(color: AppColor.writeColor.withOpacity(0.2)),
),
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 firebaseMessagesController =
Get.isRegistered<FirebaseMessagesController>()
? Get.find<FirebaseMessagesController>()
: Get.put(FirebaseMessagesController());
return Scaffold(
appBar: AppBar(),
body: Center(
child: TextButton(
onPressed: () async {
Get.put(LoginController());
Get.to(() => PhoneNumberScreen());
// firebaseMessagesController.sendNotificationToDriverMAP(
// 'title',
// DateTime.now().toString(),
// 'ffX7xVXpdE_Xq8JBH3lgS4:APA91bGBHp53E-ZuXdlLBpRZohzqR9sazqcn3pwpEDG7JxkVi9MBtFDlCipzLpPCvD6LHEtds88ugGyCty7pEJVyx6tQYvzHVDCh7l3_7axpyriTBs5iv9E',
// [],
// '');
// Get.to(
// () => OtpVerificationPage(
// phone: '963992952235',
// deviceToken: 'abcdefg123456789',
// token: 'passengerToken123',
// ptoken: 'passengerToken456',
// ),
// );
},
child: Text(
"Text Button",
),
),
),
);
}
}