Update: 2026-07-09 01:55:25

This commit is contained in:
Hamza-Ayed
2026-07-09 01:55:25 +03:00
parent ac0c343f18
commit 7dff7b6973
12 changed files with 374 additions and 28 deletions
@@ -159,6 +159,9 @@ class FirebaseMessagesController extends GetxController {
'DriverList': myList,
'body': body,
'is_destination_match': message.data['is_destination_match'] ?? '0',
// 🆕 "أرباحك أعلى" — يُرسَل فقط عند وجود فرق إيجابي حقيقي
'driver_earnings_extra': message.data['driver_earnings_extra'],
'driver_earnings_currency': message.data['driver_earnings_currency'],
});
}
break;
@@ -411,6 +411,9 @@ class LocationController extends GetxController with WidgetsBindingObserver {
'DriverList': driverList,
'body': 'New Trip Request via Socket ⚡',
'is_destination_match': rideData['is_destination_match'] ?? '0',
// 🆕 "أرباحك أعلى" — نفس الحقل الجاي من FCM، متوفر أيضاً عبر السوكيت
'driver_earnings_extra': rideData['driver_earnings_extra'],
'driver_earnings_currency': rideData['driver_earnings_currency'],
});
} else {
Log.print(
@@ -65,6 +65,10 @@ class OrderRequestController extends GetxController
String tripPrice = "--";
bool isDestinationMatch = false; // 🆕 Destination Match flag
// 🆕 Driver Earnings Advantage — "أرباحك أعلى" badge
double? driverEarningsExtra;
String driverEarningsCurrency = 'ل.س';
String timeToPassenger = "Calculating...".tr;
String distanceToPassenger = "--";
@@ -165,6 +169,7 @@ class OrderRequestController extends GetxController
args['is_destination_match'] == true) {
isDestinationMatch = true;
}
_parseEarningsData(args);
}
// ب) هل هي قادمة من Socket بالمفاتيح الرقمية ("0", "1", ...)؟
else {
@@ -175,6 +180,7 @@ class OrderRequestController extends GetxController
args['is_destination_match'] == true) {
isDestinationMatch = true;
}
_parseEarningsData(args);
}
}
}
@@ -189,6 +195,21 @@ class OrderRequestController extends GetxController
"📍 Parsed Coordinates: Pax($latPassenger, $lngPassenger) -> Dest($latDestination, $lngDestination)");
}
/// 🆕 يقرأ حقل "أرباحك أعلى" من بيانات الطلب (FCM أو Socket) إن وُجد
void _parseEarningsData(Map args) {
final rawExtra = args['driver_earnings_extra'];
if (rawExtra != null) {
final parsed = double.tryParse(rawExtra.toString());
if (parsed != null && parsed > 0) {
driverEarningsExtra = parsed;
}
}
final rawCurrency = args['driver_earnings_currency'];
if (rawCurrency != null && rawCurrency.toString().isNotEmpty) {
driverEarningsCurrency = rawCurrency.toString();
}
}
/// 🔥 دالة ذكية تجلب القيمة سواء كانت البيانات في List أو Map
dynamic _getValueAt(int index) {
// الأولوية للقائمة