157 lines
5.8 KiB
Dart
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",
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|