Update: 2026-06-25 00:50:19
This commit is contained in:
38
backend/diagnose_fingerprint.php
Normal file
38
backend/diagnose_fingerprint.php
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
header('Content-Type: text/plain; charset=UTF-8');
|
||||||
|
require_once __DIR__ . '/core/bootstrap.php';
|
||||||
|
|
||||||
|
echo "--- 🔍 SIRO FINGERPRINT DIAGNOSTIC TOOL ---\n\n";
|
||||||
|
|
||||||
|
try {
|
||||||
|
$con = Database::get('main');
|
||||||
|
echo "✅ Database connection successful.\n";
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo "❌ Database connection failed: " . $e->getMessage() . "\n";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$targetId = 'e494c5750f95e1c26654';
|
||||||
|
echo "Target Passenger ID: " . $targetId . "\n\n";
|
||||||
|
|
||||||
|
try {
|
||||||
|
$stmt = $con->prepare("SELECT * FROM tokens WHERE passengerID = ? LIMIT 1");
|
||||||
|
$stmt->execute([$targetId]);
|
||||||
|
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||||
|
if ($row) {
|
||||||
|
echo "✅ Token row found:\n";
|
||||||
|
echo " - Passenger ID: " . $row['passengerID'] . "\n";
|
||||||
|
echo " - Token (encrypted/raw): " . $row['token'] . "\n";
|
||||||
|
echo " - Fingerprint (stored): " . $row['fingerprint'] . "\n";
|
||||||
|
|
||||||
|
$decryptedToken = $encryptionHelper->decryptData($row['token']);
|
||||||
|
echo " - Decrypted Token: " . $decryptedToken . "\n";
|
||||||
|
|
||||||
|
$fpPepper = getenv('FP_PEPPER') ?: '';
|
||||||
|
echo " - FP_PEPPER: " . ($fpPepper ? "Set" : "Not Set") . "\n";
|
||||||
|
} else {
|
||||||
|
echo "❌ No token row found for passenger!\n";
|
||||||
|
}
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo "❌ Error: " . $e->getMessage() . "\n";
|
||||||
|
}
|
||||||
@@ -81,9 +81,9 @@ class LoginController extends GetxController {
|
|||||||
// • firstTimeLoadKey != false ← أول مرة يفتح التطبيق → loginFirstTime
|
// • firstTimeLoadKey != false ← أول مرة يفتح التطبيق → loginFirstTime
|
||||||
// • firstTimeLoadKey == false ← مستخدم موجود → loginJwtRider
|
// • firstTimeLoadKey == false ← مستخدم موجود → loginJwtRider
|
||||||
// ─────────────────────────────────────────────────────────────
|
// ─────────────────────────────────────────────────────────────
|
||||||
Future<void> getJWT() async {
|
Future<void> getJWT({bool force = false}) async {
|
||||||
// إذا كان التوكن الحالي لا يزال صالحاً، لا داعي لطلب واحد جديد
|
// إذا كان التوكن الحالي لا يزال صالحاً، لا داعي لطلب واحد جديد
|
||||||
if (isTokenValid()) {
|
if (!force && isTokenValid()) {
|
||||||
Log.print("JWT is still valid. Skipping request.");
|
Log.print("JWT is still valid. Skipping request.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -198,6 +198,11 @@ class LoginController extends GetxController {
|
|||||||
final String decodedPayload = utf8.decode(base64Url.decode(payloadPart));
|
final String decodedPayload = utf8.decode(base64Url.decode(payloadPart));
|
||||||
final Map<String, dynamic> payload = jsonDecode(decodedPayload);
|
final Map<String, dynamic> payload = jsonDecode(decodedPayload);
|
||||||
|
|
||||||
|
if (payload['token_type'] == 'registration') {
|
||||||
|
Log.print("isTokenValid: Token is a registration token, treating as invalid for session.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!payload.containsKey('exp')) {
|
if (!payload.containsKey('exp')) {
|
||||||
Log.print("isTokenValid: No 'exp' claim in token.");
|
Log.print("isTokenValid: No 'exp' claim in token.");
|
||||||
return false;
|
return false;
|
||||||
@@ -278,11 +283,20 @@ class LoginController extends GetxController {
|
|||||||
payload: {
|
payload: {
|
||||||
'platform': Platform.isAndroid ? 'android' : 'ios',
|
'platform': Platform.isAndroid ? 'android' : 'ios',
|
||||||
'appName': AppInformation.appName,
|
'appName': AppInformation.appName,
|
||||||
|
'passengerID': passengerID,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (res == 'token_expired' || res == 'failure' || res == 'error') {
|
||||||
|
Log.print('loginUsingCredentials: $res. Redirecting to PhoneNumberScreen to re-verify.');
|
||||||
|
box.erase();
|
||||||
|
storage.deleteAll();
|
||||||
|
Get.offAll(() => PhoneNumberScreen());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// 2) فك JSON مرة واحدة والتحقق من النجاح
|
// 2) فك JSON مرة واحدة والتحقق من النجاح
|
||||||
final decoded = jsonDecode(res);
|
final decoded = res is String ? jsonDecode(res) : res;
|
||||||
if (decoded is! Map || decoded.isEmpty) return;
|
if (decoded is! Map || decoded.isEmpty) return;
|
||||||
|
|
||||||
if (decoded['status'] == 'failure' || decoded['status'] == 'Failure') {
|
if (decoded['status'] == 'failure' || decoded['status'] == 'Failure') {
|
||||||
@@ -333,7 +347,7 @@ class LoginController extends GetxController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// إذا لم يكن موجوداً (توافقية قديمة)، نقوم بطلبه
|
// إذا لم يكن موجوداً (توافقية قديمة)، نقوم بطلبه
|
||||||
String? tokenResp;
|
dynamic tokenResp;
|
||||||
if (serverFCM == null) {
|
if (serverFCM == null) {
|
||||||
tokenResp = await CRUD().get(
|
tokenResp = await CRUD().get(
|
||||||
link: AppLink.getTokens, payload: {'passengerID': passengerID});
|
link: AppLink.getTokens, payload: {'passengerID': passengerID});
|
||||||
@@ -342,14 +356,16 @@ class LoginController extends GetxController {
|
|||||||
final localFP = (await DeviceHelper.getDeviceFingerprint()).toString();
|
final localFP = (await DeviceHelper.getDeviceFingerprint()).toString();
|
||||||
await storage.write(key: BoxName.fingerPrint, value: localFP);
|
await storage.write(key: BoxName.fingerPrint, value: localFP);
|
||||||
await box.write(BoxName.firstTimeLoadKey, 'false');
|
await box.write(BoxName.firstTimeLoadKey, 'false');
|
||||||
|
await getJWT(force: true); // Fetch access token after clearing firstTimeLoadKey
|
||||||
|
|
||||||
// ── 5. المقارنة: FCM token + fingerprint ──────────────────────
|
// ── 5. المقارنة: FCM token + fingerprint ──────────────────────
|
||||||
if (email != '962798583052@intaleqapp.com') {
|
if (email != '962798583052@intaleqapp.com') {
|
||||||
if (serverFCM == null &&
|
if (serverFCM == null &&
|
||||||
tokenResp != null &&
|
tokenResp != null &&
|
||||||
tokenResp != 'failure' &&
|
tokenResp != 'failure' &&
|
||||||
tokenResp != 'error') {
|
tokenResp != 'error' &&
|
||||||
final tokenJson = jsonDecode(tokenResp);
|
tokenResp != 'token_expired') {
|
||||||
|
final tokenJson = tokenResp is String ? jsonDecode(tokenResp) : tokenResp;
|
||||||
final serverData = tokenJson['data'] ?? tokenJson['message'];
|
final serverData = tokenJson['data'] ?? tokenJson['message'];
|
||||||
if (serverData is Map) {
|
if (serverData is Map) {
|
||||||
serverFCM = serverData['token']?.toString() ?? '';
|
serverFCM = serverData['token']?.toString() ?? '';
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ Future<void> checkForUpdate(BuildContext context) async {
|
|||||||
final version = packageInfo.version;
|
final version = packageInfo.version;
|
||||||
Log.print('currentVersion is : $currentVersion');
|
Log.print('currentVersion is : $currentVersion');
|
||||||
// Fetch the latest version from your server
|
// Fetch the latest version from your server
|
||||||
String latestVersion = box.read(BoxName.package);
|
String latestVersion = box.read(BoxName.package)?.toString() ?? '';
|
||||||
box.write(BoxName.packagInfo, version);
|
box.write(BoxName.packagInfo, version);
|
||||||
|
|
||||||
if (latestVersion.isNotEmpty && latestVersion != currentVersion) {
|
if (latestVersion.isNotEmpty && latestVersion != currentVersion) {
|
||||||
|
|||||||
@@ -4054,15 +4054,10 @@ class RideLifecycleController extends GetxController {
|
|||||||
final bool isLoggedIn = box.read(BoxName.isVerified) == '1' &&
|
final bool isLoggedIn = box.read(BoxName.isVerified) == '1' &&
|
||||||
box.read(BoxName.passengerID) != null;
|
box.read(BoxName.passengerID) != null;
|
||||||
|
|
||||||
if (isLoggedIn) {
|
// We intentionally DO NOT initialize data here during onInit
|
||||||
isDataInitializedAfterLogin = true;
|
// because this controller is instantiated globally before the map is opened.
|
||||||
getLocationArea(passengerLocation.latitude, passengerLocation.longitude);
|
// Initialization will be triggered by MapPagePassenger calling initializeDataAfterLogin()
|
||||||
unawaited(_stagePricingAndState());
|
Log.print("RideLifecycleController.onInit: Waiting for MapPagePassenger to trigger initialization.");
|
||||||
unawaited(_stageNiceToHave());
|
|
||||||
startMasterTimer();
|
|
||||||
} else {
|
|
||||||
Log.print("RideLifecycleController.onInit: User not logged in, skipping startup API calls.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> initializeDataAfterLogin() async {
|
Future<void> initializeDataAfterLogin() async {
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ class OrderHistoryController extends GetxController {
|
|||||||
isloading = false;
|
isloading = false;
|
||||||
update();
|
update();
|
||||||
} else {
|
} else {
|
||||||
var jsonDecoded = jsonDecode(res);
|
var jsonDecoded = res is String ? jsonDecode(res) : res;
|
||||||
var rawData = jsonDecoded['data'] ?? jsonDecoded['message'];
|
var rawData = jsonDecoded['data'] ?? jsonDecoded['message'];
|
||||||
orderHistoryListPassenger = rawData is List ? rawData : [];
|
orderHistoryListPassenger = rawData is List ? rawData : [];
|
||||||
isloading = false;
|
isloading = false;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ final Map<String, String> ar_eg = {
|
|||||||
" ')[0]).toString()}.\\n\${' I am using": " ')[0]).toString()}.\\n\${' I am using",
|
" ')[0]).toString()}.\\n\${' I am using": " ')[0]).toString()}.\\n\${' I am using",
|
||||||
" I am currently located at ": " أنا حالياً في ",
|
" I am currently located at ": " أنا حالياً في ",
|
||||||
" I am using": " أنا استخدم",
|
" I am using": " أنا استخدم",
|
||||||
" If you need to reach me, please contact the driver directly at": " إذا بغيتني، كلم الكابتن على",
|
" If you need to reach me, please contact the driver directly at": " إذا عاوزني، كلم الكابتن على",
|
||||||
" KM": " كم",
|
" KM": " كم",
|
||||||
" Minutes": " دقائق",
|
" Minutes": " دقائق",
|
||||||
" Next as Cash !": " التالي كاش!",
|
" Next as Cash !": " التالي كاش!",
|
||||||
@@ -30,7 +30,7 @@ final Map<String, String> ar_eg = {
|
|||||||
"1 Passenger": "راكب واحد",
|
"1 Passenger": "راكب واحد",
|
||||||
"1 \${'JOD": "1 \${'دينار أردني",
|
"1 \${'JOD": "1 \${'دينار أردني",
|
||||||
"1 \${'LE": "1 \${'جنيه مصري",
|
"1 \${'LE": "1 \${'جنيه مصري",
|
||||||
"1. Describe Your Issue": "١. وش المشكلة؟",
|
"1. Describe Your Issue": "١. إيه المشكلة؟",
|
||||||
"10 and get 4% discount": "10 وخذ خصم 4%",
|
"10 and get 4% discount": "10 وخذ خصم 4%",
|
||||||
"100 and get 11% discount": "100 وخذ خصم 11%",
|
"100 and get 11% discount": "100 وخذ خصم 11%",
|
||||||
"10000 \${'LE": "10000 \${'جنيه",
|
"10000 \${'LE": "10000 \${'جنيه",
|
||||||
@@ -47,13 +47,13 @@ final Map<String, String> ar_eg = {
|
|||||||
"3 Passengers": "٣ ركاب",
|
"3 Passengers": "٣ ركاب",
|
||||||
"3 digit": "3 أرقام",
|
"3 digit": "3 أرقام",
|
||||||
"3. Review Details & Response": "٣. مراجعة التفاصيل والرد",
|
"3. Review Details & Response": "٣. مراجعة التفاصيل والرد",
|
||||||
"3000 LE": "3000 ر.س",
|
"3000 LE": "3000 جنيه",
|
||||||
"4 Passengers": "٤ ركاب",
|
"4 Passengers": "٤ ركاب",
|
||||||
"40 and get 8% discount": "40 وخذ خصم 8%",
|
"40 and get 8% discount": "40 وخذ خصم 8%",
|
||||||
"40000 \${'LE": "40000 \${'جنيه",
|
"40000 \${'LE": "40000 \${'جنيه",
|
||||||
"5 digit": "5 أرقام",
|
"5 digit": "5 أرقام",
|
||||||
"A new version of the app is available. Please update to the latest version.": "في إصدار جديد من التطبيق. من فضلك حدّث للإصدار الأخير.",
|
"A new version of the app is available. Please update to the latest version.": "في إصدار جديد من التطبيق. من فضلك حدّث للإصدار الأخير.",
|
||||||
"A trip with a prior reservation, allowing you to choose the best captains and cars.": "مشوار بحجز مسبق، يمديك تختار أفضل الكباتن والسيارات.",
|
"A trip with a prior reservation, allowing you to choose the best captains and cars.": "مشوار بحجز مسبق، تقدر تختار أفضل الكباتن والسيارات.",
|
||||||
"AI Page": "صفحة الذكاء الاصطناعي",
|
"AI Page": "صفحة الذكاء الاصطناعي",
|
||||||
"About Intaleq": "About Intaleq",
|
"About Intaleq": "About Intaleq",
|
||||||
"About Siro": "عن سيرو",
|
"About Siro": "عن سيرو",
|
||||||
@@ -90,7 +90,7 @@ final Map<String, String> ar_eg = {
|
|||||||
"Admin DashBoard": "لوحة التحكم",
|
"Admin DashBoard": "لوحة التحكم",
|
||||||
"Advanced Tools": "أدوات متقدمة",
|
"Advanced Tools": "أدوات متقدمة",
|
||||||
"Affordable for Everyone": "أسعار تناسب الكل",
|
"Affordable for Everyone": "أسعار تناسب الكل",
|
||||||
"After this period\\nYou can't cancel!": "بعد هالوقت\\nما تقدر تلغي!",
|
"After this period\\nYou can't cancel!": "بعد الوقت ده\\nمش هتقدر تلغي!",
|
||||||
"After this period\\nYou can\\'t cancel!": "بعد هذه الفترة\nلا يمكنك الإلغاء!",
|
"After this period\\nYou can\\'t cancel!": "بعد هذه الفترة\nلا يمكنك الإلغاء!",
|
||||||
"After this period\nYou can't cancel!": "After this period\nYou can't cancel!",
|
"After this period\nYou can't cancel!": "After this period\nYou can't cancel!",
|
||||||
"After this period\nYou can\'t cancel!": "After this period\nYou can\'t cancel!",
|
"After this period\nYou can\'t cancel!": "After this period\nYou can\'t cancel!",
|
||||||
@@ -116,19 +116,19 @@ final Map<String, String> ar_eg = {
|
|||||||
"Apply Order": "قبول الطلب",
|
"Apply Order": "قبول الطلب",
|
||||||
"Apply Promo Code": "طبّق كود الخصم",
|
"Apply Promo Code": "طبّق كود الخصم",
|
||||||
"Approaching your area. Should be there in 3 minutes.": "قربت منك. 3 دقايق وأكون عندك.",
|
"Approaching your area. Should be there in 3 minutes.": "قربت منك. 3 دقايق وأكون عندك.",
|
||||||
"Are You sure to ride to": "متأكد تبي تروح لـ",
|
"Are You sure to ride to": "متأكد عاوز تروح لـ",
|
||||||
"Are you Sure to LogOut?": "بتسجل خروج؟",
|
"Are you Sure to LogOut?": "بتسجل خروج؟",
|
||||||
"Are you sure to cancel?": "متأكد تبي تلغي؟",
|
"Are you sure to cancel?": "متأكد عاوز تلغي؟",
|
||||||
"Are you sure to delete recorded files": "متأكد تبي تحذف الملفات؟",
|
"Are you sure to delete recorded files": "متأكد عاوز تحذف الملفات؟",
|
||||||
"Are you sure to delete this location?": "متأكد تبي تحذف هالموقع؟",
|
"Are you sure to delete this location?": "متأكد عاوز تحذف الموقع ده؟",
|
||||||
"Are you sure to delete your account?": "متأكد تبي تحذف حسابك؟",
|
"Are you sure to delete your account?": "متأكد عاوز تحذف حسابك؟",
|
||||||
"Are you sure you want to delete this file?": "هل أنت متأكد من رغبتك في حذف هذا الملف؟",
|
"Are you sure you want to delete this file?": "هل أنت متأكد من رغبتك في حذف هذا الملف؟",
|
||||||
"Are you sure you want to logout?": "متأكد إنك عايز تسجّل خروج؟",
|
"Are you sure you want to logout?": "متأكد إنك عايز تسجّل خروج؟",
|
||||||
"Are you sure? This action cannot be undone.": "متأكد؟ ما تقدر تتراجع بعدين.",
|
"Are you sure? This action cannot be undone.": "متأكد؟ مش هتقدر تتراجع بعدين.",
|
||||||
"Are you want to change": "عايز تغيّر",
|
"Are you want to change": "هل تريد تغيير",
|
||||||
"Are you want to go this site": "تبي تروح هالمكان؟",
|
"Are you want to go this site": "عاوز تروح المكان ده؟",
|
||||||
"Are you want to go to this site": "تبي تروح هنا؟",
|
"Are you want to go to this site": "عاوز تروح هنا؟",
|
||||||
"Are you want to wait drivers to accept your order": "تبي تنتظر الكباتن؟",
|
"Are you want to wait drivers to accept your order": "عاوز تنتظر الكباتن؟",
|
||||||
"Arrival time": "وقت الوصول",
|
"Arrival time": "وقت الوصول",
|
||||||
"Arrived": "وصل",
|
"Arrived": "وصل",
|
||||||
"Associate Degree": "دبلوم",
|
"Associate Degree": "دبلوم",
|
||||||
@@ -187,7 +187,7 @@ final Map<String, String> ar_eg = {
|
|||||||
"Camera not initialized yet": "الكاميرا لسه",
|
"Camera not initialized yet": "الكاميرا لسه",
|
||||||
"Camera not initilaized yet": "الكاميرا لسه",
|
"Camera not initilaized yet": "الكاميرا لسه",
|
||||||
"Can I cancel my ride?": "أقدر ألغي المشوار؟",
|
"Can I cancel my ride?": "أقدر ألغي المشوار؟",
|
||||||
"Can we know why you want to cancel Ride ?": "ليش تبي تلغي؟",
|
"Can we know why you want to cancel Ride ?": "ممكن نعرف ليه عاوز تلغي؟",
|
||||||
"Cancel": "إلغاء",
|
"Cancel": "إلغاء",
|
||||||
"Cancel Ride": "إلغاء المشوار",
|
"Cancel Ride": "إلغاء المشوار",
|
||||||
"Cancel Search": "إلغاء البحث",
|
"Cancel Search": "إلغاء البحث",
|
||||||
@@ -330,7 +330,7 @@ final Map<String, String> ar_eg = {
|
|||||||
"Do you have an invitation code from another driver?": "عندك كود دعوة من كابتن ثاني؟",
|
"Do you have an invitation code from another driver?": "عندك كود دعوة من كابتن ثاني؟",
|
||||||
"Do you want to change Home location": "تغير موقع البيت؟",
|
"Do you want to change Home location": "تغير موقع البيت؟",
|
||||||
"Do you want to change Work location": "تغير موقع الدوام؟",
|
"Do you want to change Work location": "تغير موقع الدوام؟",
|
||||||
"Do you want to pay Tips for this Driver": "تبي تعطي الكابتن إكرامية؟",
|
"Do you want to pay Tips for this Driver": "عاوز تدي الكابتن إكرامية؟",
|
||||||
"Do you want to send an emergency message to your SOS contact?": "هل تريد إرسال رسالة طوارئ إلى جهة اتصال الطوارئ الخاصة بك؟",
|
"Do you want to send an emergency message to your SOS contact?": "هل تريد إرسال رسالة طوارئ إلى جهة اتصال الطوارئ الخاصة بك؟",
|
||||||
"Doctoral Degree": "دكتوراه",
|
"Doctoral Degree": "دكتوراه",
|
||||||
"Document Number: ": "رقم الوثيقة:",
|
"Document Number: ": "رقم الوثيقة:",
|
||||||
@@ -534,7 +534,7 @@ final Map<String, String> ar_eg = {
|
|||||||
"How can I register as a driver?": "كيف أسجل كابتن؟",
|
"How can I register as a driver?": "كيف أسجل كابتن؟",
|
||||||
"How do I communicate with the other party (passenger/driver)?": "كيف أتواصل؟",
|
"How do I communicate with the other party (passenger/driver)?": "كيف أتواصل؟",
|
||||||
"How do I request a ride?": "كيف أطلب مشوار؟",
|
"How do I request a ride?": "كيف أطلب مشوار؟",
|
||||||
"How many hours would you like to wait?": "كم ساعة تبي تنتظر؟",
|
"How many hours would you like to wait?": "كم ساعة عاوز تنتظر؟",
|
||||||
"How much longer will you be?": "هتتأخر كام؟",
|
"How much longer will you be?": "هتتأخر كام؟",
|
||||||
"I Agree": "أوافق",
|
"I Agree": "أوافق",
|
||||||
"I Arrive your site": "وصلت موقعك",
|
"I Arrive your site": "وصلت موقعك",
|
||||||
@@ -568,7 +568,7 @@ final Map<String, String> ar_eg = {
|
|||||||
"Increase Fare": "زيد السعر",
|
"Increase Fare": "زيد السعر",
|
||||||
"Increase Fee": "زيد السعر",
|
"Increase Fee": "زيد السعر",
|
||||||
"Increase Your Trip Fee (Optional)": "زيد سعر المشوار (اختياري)",
|
"Increase Your Trip Fee (Optional)": "زيد سعر المشوار (اختياري)",
|
||||||
"Increasing the fare might attract more drivers. Would you like to increase the price?": "لو زودت السعر ممكن يجيك كابتن أسرع. تبي تزيد السعر؟",
|
"Increasing the fare might attract more drivers. Would you like to increase the price?": "لو زودت السعر ممكن يجيلك كابتن أسرع. عاوز تزود السعر؟",
|
||||||
"Insert": "إدخال",
|
"Insert": "إدخال",
|
||||||
"Insert Emergincy Number": "دخل رقم الطوارئ",
|
"Insert Emergincy Number": "دخل رقم الطوارئ",
|
||||||
"Insert SOS Phone": "أدخل رقم طوارئ",
|
"Insert SOS Phone": "أدخل رقم طوارئ",
|
||||||
@@ -607,7 +607,7 @@ final Map<String, String> ar_eg = {
|
|||||||
"Is the Passenger in your Car ?": "الراكب معك؟",
|
"Is the Passenger in your Car ?": "الراكب معك؟",
|
||||||
"Issue Date": "تاريخ الإصدار",
|
"Issue Date": "تاريخ الإصدار",
|
||||||
"IssueDate": "تاريخ الإصدار",
|
"IssueDate": "تاريخ الإصدار",
|
||||||
"JOD": "ر.س",
|
"JOD": "دينار",
|
||||||
"Join": "انضمام",
|
"Join": "انضمام",
|
||||||
"Join Intaleq as a driver using my referral code!": "Join Intaleq as a driver using my referral code!",
|
"Join Intaleq as a driver using my referral code!": "Join Intaleq as a driver using my referral code!",
|
||||||
"Join Siro as a driver using my referral code!": "سجل كابتن في سيرو بكود الدعوة حقي!",
|
"Join Siro as a driver using my referral code!": "سجل كابتن في سيرو بكود الدعوة حقي!",
|
||||||
@@ -616,7 +616,7 @@ final Map<String, String> ar_eg = {
|
|||||||
"KM": "كم",
|
"KM": "كم",
|
||||||
"Keep it up!": "كفو عليك!",
|
"Keep it up!": "كفو عليك!",
|
||||||
"Kuwait": "الكويت",
|
"Kuwait": "الكويت",
|
||||||
"LE": "ر.س",
|
"LE": "جنيه",
|
||||||
"Lady": "نواعم",
|
"Lady": "نواعم",
|
||||||
"Lady Captain for girls": "كابتن سيدة للبنات",
|
"Lady Captain for girls": "كابتن سيدة للبنات",
|
||||||
"Lady Captains Available": "كباتن سيدات",
|
"Lady Captains Available": "كباتن سيدات",
|
||||||
@@ -1342,7 +1342,7 @@ final Map<String, String> ar_eg = {
|
|||||||
"Where are you going?": "وين رايح؟",
|
"Where are you going?": "وين رايح؟",
|
||||||
"Where are you, sir?": "أين أنت، سيدي؟",
|
"Where are you, sir?": "أين أنت، سيدي؟",
|
||||||
"Where to": "وين الوجهة؟",
|
"Where to": "وين الوجهة؟",
|
||||||
"Where you want go ": "وين تبي تروح ",
|
"Where you want go ": "عاوز تروح فين ",
|
||||||
"Why Choose Intaleq?": "Why Choose Intaleq?",
|
"Why Choose Intaleq?": "Why Choose Intaleq?",
|
||||||
"Why Choose Siro?": "ليش سيرو؟",
|
"Why Choose Siro?": "ليش سيرو؟",
|
||||||
"Why do you want to cancel?": "لماذا تريد الإلغاء؟",
|
"Why do you want to cancel?": "لماذا تريد الإلغاء؟",
|
||||||
@@ -1602,7 +1602,7 @@ final Map<String, String> ar_eg = {
|
|||||||
"i agree": "موافق",
|
"i agree": "موافق",
|
||||||
"if you don't have account": "ما عندك حساب",
|
"if you don't have account": "ما عندك حساب",
|
||||||
"if you dont have account": "إذا ما عندك حساب",
|
"if you dont have account": "إذا ما عندك حساب",
|
||||||
"if you want help you can email us here": "تبي مساعدة؟ راسلنا",
|
"if you want help you can email us here": "عاوز مساعدة؟ راسلنا",
|
||||||
"image verified": "الصورة تمام",
|
"image verified": "الصورة تمام",
|
||||||
"in your": "في",
|
"in your": "في",
|
||||||
"insert amount": "دخل المبلغ",
|
"insert amount": "دخل المبلغ",
|
||||||
@@ -1663,11 +1663,11 @@ final Map<String, String> ar_eg = {
|
|||||||
"similar": "مطابق",
|
"similar": "مطابق",
|
||||||
"startName'] ?? 'Start Point": "startName'] ?? 'نقطة الانطلاق",
|
"startName'] ?? 'Start Point": "startName'] ?? 'نقطة الانطلاق",
|
||||||
"terms of use": "شروط الاستخدام",
|
"terms of use": "شروط الاستخدام",
|
||||||
"the 300 points equal 300 L.E": "300 نقطة بـ 300 ر.س",
|
"the 300 points equal 300 L.E": "300 نقطة بـ 300 جنيه",
|
||||||
"the 300 points equal 300 L.E for you \\nSo go and gain your money": "300 نقطة تساوي 300 ر.س لك\\nرح اكسب فلوسك",
|
"the 300 points equal 300 L.E for you \\nSo go and gain your money": "300 نقطة تساوي 300 جنيه ليك\\nروح اكسب فلوسك",
|
||||||
"the 300 points equal 300 L.E for you \nSo go and gain your money": "the 300 points equal 300 L.E for you \nSo go and gain your money",
|
"the 300 points equal 300 L.E for you \nSo go and gain your money": "the 300 points equal 300 L.E for you \nSo go and gain your money",
|
||||||
"the 500 points equal 30 JOD": "الـ 500 نقطة تساوي 30 ر.س",
|
"the 500 points equal 30 JOD": "الـ 500 نقطة تساوي 30 دينار",
|
||||||
"the 500 points equal 30 JOD for you \\nSo go and gain your money": "الـ 500 نقطة بـ 30 ر.س لك\\nروح اكسب فلوسك",
|
"the 500 points equal 30 JOD for you \\nSo go and gain your money": "الـ 500 نقطة بـ 30 دينار ليك\\nروح اكسب فلوسك",
|
||||||
"the 500 points equal 30 JOD for you \nSo go and gain your money": "the 500 points equal 30 JOD for you \nSo go and gain your money",
|
"the 500 points equal 30 JOD for you \nSo go and gain your money": "the 500 points equal 30 JOD for you \nSo go and gain your money",
|
||||||
"this will delete all files from your device": "بيمسح كل الملفات من جهازك",
|
"this will delete all files from your device": "بيمسح كل الملفات من جهازك",
|
||||||
"to arrive you.": "يوصل ليك.",
|
"to arrive you.": "يوصل ليك.",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ final Map<String, String> ar_jo = {
|
|||||||
" ')[0]).toString()}.\\n\${' I am using": " ')[0]).toString()}.\\n\${' I am using",
|
" ')[0]).toString()}.\\n\${' I am using": " ')[0]).toString()}.\\n\${' I am using",
|
||||||
" I am currently located at ": " أنا حالياً في ",
|
" I am currently located at ": " أنا حالياً في ",
|
||||||
" I am using": " أنا استخدم",
|
" I am using": " أنا استخدم",
|
||||||
" If you need to reach me, please contact the driver directly at": " إذا بغيتني، كلم الكابتن على",
|
" If you need to reach me, please contact the driver directly at": " إذا بدك تتواصل معي، احكي مع الكابتن على",
|
||||||
" KM": " كم",
|
" KM": " كم",
|
||||||
" Minutes": " دقائق",
|
" Minutes": " دقائق",
|
||||||
" Next as Cash !": " التالي كاش!",
|
" Next as Cash !": " التالي كاش!",
|
||||||
@@ -30,7 +30,7 @@ final Map<String, String> ar_jo = {
|
|||||||
"1 Passenger": "راكب واحد",
|
"1 Passenger": "راكب واحد",
|
||||||
"1 \${'JOD": "1 \${'دينار أردني",
|
"1 \${'JOD": "1 \${'دينار أردني",
|
||||||
"1 \${'LE": "1 \${'جنيه مصري",
|
"1 \${'LE": "1 \${'جنيه مصري",
|
||||||
"1. Describe Your Issue": "١. وش المشكلة؟",
|
"1. Describe Your Issue": "١. شو المشكلة؟",
|
||||||
"10 and get 4% discount": "10 وخذ خصم 4%",
|
"10 and get 4% discount": "10 وخذ خصم 4%",
|
||||||
"100 and get 11% discount": "100 وخذ خصم 11%",
|
"100 and get 11% discount": "100 وخذ خصم 11%",
|
||||||
"10000 \${'LE": "10000 \${'جنيه",
|
"10000 \${'LE": "10000 \${'جنيه",
|
||||||
@@ -47,13 +47,13 @@ final Map<String, String> ar_jo = {
|
|||||||
"3 Passengers": "٣ ركاب",
|
"3 Passengers": "٣ ركاب",
|
||||||
"3 digit": "3 أرقام",
|
"3 digit": "3 أرقام",
|
||||||
"3. Review Details & Response": "٣. مراجعة التفاصيل والرد",
|
"3. Review Details & Response": "٣. مراجعة التفاصيل والرد",
|
||||||
"3000 LE": "3000 ر.س",
|
"3000 LE": "3000 جنيه",
|
||||||
"4 Passengers": "٤ ركاب",
|
"4 Passengers": "٤ ركاب",
|
||||||
"40 and get 8% discount": "40 وخذ خصم 8%",
|
"40 and get 8% discount": "40 وخذ خصم 8%",
|
||||||
"40000 \${'LE": "40000 \${'جنيه",
|
"40000 \${'LE": "40000 \${'جنيه",
|
||||||
"5 digit": "5 أرقام",
|
"5 digit": "5 أرقام",
|
||||||
"A new version of the app is available. Please update to the latest version.": "يتوفر إصدار جديد من التطبيق. يرجى التحديث إلى أحدث إصدار.",
|
"A new version of the app is available. Please update to the latest version.": "يتوفر إصدار جديد من التطبيق. يرجى التحديث إلى أحدث إصدار.",
|
||||||
"A trip with a prior reservation, allowing you to choose the best captains and cars.": "مشوار بحجز مسبق، يمديك تختار أفضل الكباتن والسيارات.",
|
"A trip with a prior reservation, allowing you to choose the best captains and cars.": "مشوار بحجز مسبق، بتقدر تختار أفضل الكباتن والسيارات.",
|
||||||
"AI Page": "صفحة الذكاء الاصطناعي",
|
"AI Page": "صفحة الذكاء الاصطناعي",
|
||||||
"About Intaleq": "About Intaleq",
|
"About Intaleq": "About Intaleq",
|
||||||
"About Siro": "عن سيرو",
|
"About Siro": "عن سيرو",
|
||||||
@@ -90,7 +90,7 @@ final Map<String, String> ar_jo = {
|
|||||||
"Admin DashBoard": "لوحة التحكم",
|
"Admin DashBoard": "لوحة التحكم",
|
||||||
"Advanced Tools": "أدوات متقدمة",
|
"Advanced Tools": "أدوات متقدمة",
|
||||||
"Affordable for Everyone": "أسعار تناسب الكل",
|
"Affordable for Everyone": "أسعار تناسب الكل",
|
||||||
"After this period\\nYou can't cancel!": "بعد هالوقت\\nما تقدر تلغي!",
|
"After this period\\nYou can't cancel!": "بعد هاد الوقت\\nما بتقدر تلغي!",
|
||||||
"After this period\\nYou can\\'t cancel!": "بعد هذه الفترة\nلا يمكنك الإلغاء!",
|
"After this period\\nYou can\\'t cancel!": "بعد هذه الفترة\nلا يمكنك الإلغاء!",
|
||||||
"After this period\nYou can't cancel!": "After this period\nYou can't cancel!",
|
"After this period\nYou can't cancel!": "After this period\nYou can't cancel!",
|
||||||
"After this period\nYou can\'t cancel!": "After this period\nYou can\'t cancel!",
|
"After this period\nYou can\'t cancel!": "After this period\nYou can\'t cancel!",
|
||||||
@@ -124,11 +124,11 @@ final Map<String, String> ar_jo = {
|
|||||||
"Are you sure to delete your account?": "متأكد تبي تحذف حسابك؟",
|
"Are you sure to delete your account?": "متأكد تبي تحذف حسابك؟",
|
||||||
"Are you sure you want to delete this file?": "هل أنت متأكد من رغبتك في حذف هذا الملف؟",
|
"Are you sure you want to delete this file?": "هل أنت متأكد من رغبتك في حذف هذا الملف؟",
|
||||||
"Are you sure you want to logout?": "هل أنت متأكد من تسجيل الخروج؟",
|
"Are you sure you want to logout?": "هل أنت متأكد من تسجيل الخروج؟",
|
||||||
"Are you sure? This action cannot be undone.": "متأكد؟ ما تقدر تتراجع بعدين.",
|
"Are you sure? This action cannot be undone.": "متأكد؟ ما بتقدر تتراجع بعدين.",
|
||||||
"Are you want to change": "هل تريد تغيير",
|
"Are you want to change": "هل تريد تغيير",
|
||||||
"Are you want to go this site": "تبي تروح هالمكان؟",
|
"Are you want to go this site": "بدك تروح لهاد المكان؟",
|
||||||
"Are you want to go to this site": "تبي تروح هنا؟",
|
"Are you want to go to this site": "بدك تروح هون؟",
|
||||||
"Are you want to wait drivers to accept your order": "تبي تنتظر الكباتن؟",
|
"Are you want to wait drivers to accept your order": "بدك تنتظر الكباتن؟",
|
||||||
"Arrival time": "وقت الوصول",
|
"Arrival time": "وقت الوصول",
|
||||||
"Arrived": "وصل",
|
"Arrived": "وصل",
|
||||||
"Associate Degree": "دبلوم",
|
"Associate Degree": "دبلوم",
|
||||||
@@ -187,7 +187,7 @@ final Map<String, String> ar_jo = {
|
|||||||
"Camera not initialized yet": "الكاميرا لسه",
|
"Camera not initialized yet": "الكاميرا لسه",
|
||||||
"Camera not initilaized yet": "الكاميرا لسه",
|
"Camera not initilaized yet": "الكاميرا لسه",
|
||||||
"Can I cancel my ride?": "أقدر ألغي المشوار؟",
|
"Can I cancel my ride?": "أقدر ألغي المشوار؟",
|
||||||
"Can we know why you want to cancel Ride ?": "ليش تبي تلغي؟",
|
"Can we know why you want to cancel Ride ?": "ليش بدك تلغي؟",
|
||||||
"Cancel": "إلغاء",
|
"Cancel": "إلغاء",
|
||||||
"Cancel Ride": "إلغاء المشوار",
|
"Cancel Ride": "إلغاء المشوار",
|
||||||
"Cancel Search": "إلغاء البحث",
|
"Cancel Search": "إلغاء البحث",
|
||||||
@@ -330,7 +330,7 @@ final Map<String, String> ar_jo = {
|
|||||||
"Do you have an invitation code from another driver?": "عندك كود دعوة من كابتن ثاني؟",
|
"Do you have an invitation code from another driver?": "عندك كود دعوة من كابتن ثاني؟",
|
||||||
"Do you want to change Home location": "تغير موقع البيت؟",
|
"Do you want to change Home location": "تغير موقع البيت؟",
|
||||||
"Do you want to change Work location": "تغير موقع الدوام؟",
|
"Do you want to change Work location": "تغير موقع الدوام؟",
|
||||||
"Do you want to pay Tips for this Driver": "تبي تعطي الكابتن إكرامية؟",
|
"Do you want to pay Tips for this Driver": "بدك تعطي الكابتن إكرامية؟",
|
||||||
"Do you want to send an emergency message to your SOS contact?": "هل تريد إرسال رسالة طوارئ إلى جهة اتصال الطوارئ الخاصة بك؟",
|
"Do you want to send an emergency message to your SOS contact?": "هل تريد إرسال رسالة طوارئ إلى جهة اتصال الطوارئ الخاصة بك؟",
|
||||||
"Doctoral Degree": "دكتوراه",
|
"Doctoral Degree": "دكتوراه",
|
||||||
"Document Number: ": "رقم الوثيقة:",
|
"Document Number: ": "رقم الوثيقة:",
|
||||||
@@ -534,7 +534,7 @@ final Map<String, String> ar_jo = {
|
|||||||
"How can I register as a driver?": "كيف أسجل كابتن؟",
|
"How can I register as a driver?": "كيف أسجل كابتن؟",
|
||||||
"How do I communicate with the other party (passenger/driver)?": "كيف أتواصل؟",
|
"How do I communicate with the other party (passenger/driver)?": "كيف أتواصل؟",
|
||||||
"How do I request a ride?": "كيف أطلب مشوار؟",
|
"How do I request a ride?": "كيف أطلب مشوار؟",
|
||||||
"How many hours would you like to wait?": "كم ساعة تبي تنتظر؟",
|
"How many hours would you like to wait?": "كم ساعة بدك تنتظر؟",
|
||||||
"How much longer will you be?": "كم من الوقت ستتأخر؟",
|
"How much longer will you be?": "كم من الوقت ستتأخر؟",
|
||||||
"I Agree": "أوافق",
|
"I Agree": "أوافق",
|
||||||
"I Arrive your site": "وصلت موقعك",
|
"I Arrive your site": "وصلت موقعك",
|
||||||
@@ -568,7 +568,7 @@ final Map<String, String> ar_jo = {
|
|||||||
"Increase Fare": "زيد السعر",
|
"Increase Fare": "زيد السعر",
|
||||||
"Increase Fee": "زيد السعر",
|
"Increase Fee": "زيد السعر",
|
||||||
"Increase Your Trip Fee (Optional)": "زيد سعر المشوار (اختياري)",
|
"Increase Your Trip Fee (Optional)": "زيد سعر المشوار (اختياري)",
|
||||||
"Increasing the fare might attract more drivers. Would you like to increase the price?": "لو زودت السعر ممكن يجيك كابتن أسرع. تبي تزيد السعر؟",
|
"Increasing the fare might attract more drivers. Would you like to increase the price?": "إذا زدت السعر ممكن يجيك كابتن أسرع. بدك تزيد السعر؟",
|
||||||
"Insert": "إدخال",
|
"Insert": "إدخال",
|
||||||
"Insert Emergincy Number": "دخل رقم الطوارئ",
|
"Insert Emergincy Number": "دخل رقم الطوارئ",
|
||||||
"Insert SOS Phone": "أدخل رقم طوارئ",
|
"Insert SOS Phone": "أدخل رقم طوارئ",
|
||||||
@@ -607,7 +607,7 @@ final Map<String, String> ar_jo = {
|
|||||||
"Is the Passenger in your Car ?": "الراكب معك؟",
|
"Is the Passenger in your Car ?": "الراكب معك؟",
|
||||||
"Issue Date": "تاريخ الإصدار",
|
"Issue Date": "تاريخ الإصدار",
|
||||||
"IssueDate": "تاريخ الإصدار",
|
"IssueDate": "تاريخ الإصدار",
|
||||||
"JOD": "ر.س",
|
"JOD": "د.أ",
|
||||||
"Join": "انضمام",
|
"Join": "انضمام",
|
||||||
"Join Intaleq as a driver using my referral code!": "Join Intaleq as a driver using my referral code!",
|
"Join Intaleq as a driver using my referral code!": "Join Intaleq as a driver using my referral code!",
|
||||||
"Join Siro as a driver using my referral code!": "سجل كابتن في سيرو بكود الدعوة حقي!",
|
"Join Siro as a driver using my referral code!": "سجل كابتن في سيرو بكود الدعوة حقي!",
|
||||||
@@ -616,7 +616,7 @@ final Map<String, String> ar_jo = {
|
|||||||
"KM": "كم",
|
"KM": "كم",
|
||||||
"Keep it up!": "كفو عليك!",
|
"Keep it up!": "كفو عليك!",
|
||||||
"Kuwait": "الكويت",
|
"Kuwait": "الكويت",
|
||||||
"LE": "ر.س",
|
"LE": "جنيه",
|
||||||
"Lady": "نواعم",
|
"Lady": "نواعم",
|
||||||
"Lady Captain for girls": "كابتن سيدة للبنات",
|
"Lady Captain for girls": "كابتن سيدة للبنات",
|
||||||
"Lady Captains Available": "كباتن سيدات",
|
"Lady Captains Available": "كباتن سيدات",
|
||||||
@@ -1342,7 +1342,7 @@ final Map<String, String> ar_jo = {
|
|||||||
"Where are you going?": "وين رايح؟",
|
"Where are you going?": "وين رايح؟",
|
||||||
"Where are you, sir?": "أين أنت، سيدي؟",
|
"Where are you, sir?": "أين أنت، سيدي؟",
|
||||||
"Where to": "وين الوجهة؟",
|
"Where to": "وين الوجهة؟",
|
||||||
"Where you want go ": "وين تبي تروح ",
|
"Where you want go ": "وين بدك تروح ",
|
||||||
"Why Choose Intaleq?": "Why Choose Intaleq?",
|
"Why Choose Intaleq?": "Why Choose Intaleq?",
|
||||||
"Why Choose Siro?": "ليش سيرو؟",
|
"Why Choose Siro?": "ليش سيرو؟",
|
||||||
"Why do you want to cancel?": "لماذا تريد الإلغاء؟",
|
"Why do you want to cancel?": "لماذا تريد الإلغاء؟",
|
||||||
@@ -1602,7 +1602,7 @@ final Map<String, String> ar_jo = {
|
|||||||
"i agree": "موافق",
|
"i agree": "موافق",
|
||||||
"if you don't have account": "ما عندك حساب",
|
"if you don't have account": "ما عندك حساب",
|
||||||
"if you dont have account": "إذا ما عندك حساب",
|
"if you dont have account": "إذا ما عندك حساب",
|
||||||
"if you want help you can email us here": "تبي مساعدة؟ راسلنا",
|
"if you want help you can email us here": "بدك مساعدة؟ راسلنا",
|
||||||
"image verified": "الصورة تمام",
|
"image verified": "الصورة تمام",
|
||||||
"in your": "في",
|
"in your": "في",
|
||||||
"insert amount": "دخل المبلغ",
|
"insert amount": "دخل المبلغ",
|
||||||
@@ -1663,11 +1663,11 @@ final Map<String, String> ar_jo = {
|
|||||||
"similar": "مطابق",
|
"similar": "مطابق",
|
||||||
"startName'] ?? 'Start Point": "startName'] ?? 'نقطة الانطلاق",
|
"startName'] ?? 'Start Point": "startName'] ?? 'نقطة الانطلاق",
|
||||||
"terms of use": "شروط الاستخدام",
|
"terms of use": "شروط الاستخدام",
|
||||||
"the 300 points equal 300 L.E": "300 نقطة بـ 300 ر.س",
|
"the 300 points equal 300 L.E": "300 نقطة بـ 300 جنيه",
|
||||||
"the 300 points equal 300 L.E for you \\nSo go and gain your money": "300 نقطة تساوي 300 ر.س لك\\nرح اكسب فلوسك",
|
"the 300 points equal 300 L.E for you \\nSo go and gain your money": "300 نقطة تساوي 300 جنيه إلك\\nروح اكسب فلوسك",
|
||||||
"the 300 points equal 300 L.E for you \nSo go and gain your money": "the 300 points equal 300 L.E for you \nSo go and gain your money",
|
"the 300 points equal 300 L.E for you \nSo go and gain your money": "the 300 points equal 300 L.E for you \nSo go and gain your money",
|
||||||
"the 500 points equal 30 JOD": "الـ 500 نقطة تساوي 30 ر.س",
|
"the 500 points equal 30 JOD": "الـ 500 نقطة تساوي 30 دينار",
|
||||||
"the 500 points equal 30 JOD for you \\nSo go and gain your money": "الـ 500 نقطة بـ 30 ر.س لك\\nروح اكسب فلوسك",
|
"the 500 points equal 30 JOD for you \\nSo go and gain your money": "الـ 500 نقطة بـ 30 دينار إلك\\nروح اكسب فلوسك",
|
||||||
"the 500 points equal 30 JOD for you \nSo go and gain your money": "the 500 points equal 30 JOD for you \nSo go and gain your money",
|
"the 500 points equal 30 JOD for you \nSo go and gain your money": "the 500 points equal 30 JOD for you \nSo go and gain your money",
|
||||||
"this will delete all files from your device": "بيمسح كل الملفات من جهازك",
|
"this will delete all files from your device": "بيمسح كل الملفات من جهازك",
|
||||||
"to arrive you.": "للوصول إليك.",
|
"to arrive you.": "للوصول إليك.",
|
||||||
|
|||||||
@@ -23,7 +23,8 @@ class PassengerWalletHistoryController extends GetxController {
|
|||||||
);
|
);
|
||||||
|
|
||||||
if (res != 'failure') {
|
if (res != 'failure') {
|
||||||
archive = jsonDecode(res)['message'];
|
final decoded = res is String ? jsonDecode(res) : res;
|
||||||
|
archive = decoded['message'];
|
||||||
} else {
|
} else {
|
||||||
MyDialog().getDialog('No wallet record found'.tr, '', () {
|
MyDialog().getDialog('No wallet record found'.tr, '', () {
|
||||||
Get.back();
|
Get.back();
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ class ProfileController extends GetxController {
|
|||||||
isloading = false;
|
isloading = false;
|
||||||
update();
|
update();
|
||||||
} else {
|
} else {
|
||||||
var jsonDecoded = jsonDecode(res);
|
var jsonDecoded = res is String ? jsonDecode(res) : res;
|
||||||
prfoileData = jsonDecoded['data'];
|
prfoileData = jsonDecoded['data'];
|
||||||
box.write(BoxName.sosPhonePassenger, prfoileData['sosPhone'].toString());
|
box.write(BoxName.sosPhonePassenger, prfoileData['sosPhone'].toString());
|
||||||
box.write(BoxName.gender, prfoileData['gender'].toString());
|
box.write(BoxName.gender, prfoileData['gender'].toString());
|
||||||
|
|||||||
@@ -113,7 +113,8 @@ class ApplyOrderWidget extends StatelessWidget {
|
|||||||
BuildContext context, RideLifecycleController controller) {
|
BuildContext context, RideLifecycleController controller) {
|
||||||
// تنسيق السعر
|
// تنسيق السعر
|
||||||
final formatter = NumberFormat("#,###");
|
final formatter = NumberFormat("#,###");
|
||||||
String formattedPrice = formatter.format(controller.totalPassenger);
|
num totalVal = num.tryParse(controller.totalPassenger.toString()) ?? 0;
|
||||||
|
String formattedPrice = formatter.format(totalVal);
|
||||||
|
|
||||||
// حساب الدقائق من الوقت المتبقي الحي، وليس ETA الأصلي فقط.
|
// حساب الدقائق من الوقت المتبقي الحي، وليس ETA الأصلي فقط.
|
||||||
final int secondsToPassenger =
|
final int secondsToPassenger =
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ class RideBeginPassenger extends StatelessWidget {
|
|||||||
crossAxisAlignment: CrossAxisAlignment.end,
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
NumberFormat('#,###').format(controller.totalPassenger),
|
NumberFormat('#,###').format(num.tryParse(controller.totalPassenger.toString()) ?? 0),
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontWeight: FontWeight.w900,
|
fontWeight: FontWeight.w900,
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
|
|||||||
@@ -131,67 +131,61 @@ void showPaymentBottomSheet(BuildContext context) {
|
|||||||
borderRadius: BorderRadius.vertical(top: Radius.circular(15.0)),
|
borderRadius: BorderRadius.vertical(top: Radius.circular(15.0)),
|
||||||
),
|
),
|
||||||
builder: (BuildContext context) {
|
builder: (BuildContext context) {
|
||||||
return PopScope(
|
return Container(
|
||||||
canPop: true,
|
padding: const EdgeInsets.all(16.0),
|
||||||
onPopInvokedWithResult: (didPop, result) async {
|
child: Column(
|
||||||
Get.back();
|
mainAxisSize: MainAxisSize.min,
|
||||||
},
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||||
child: Container(
|
children: [
|
||||||
padding: const EdgeInsets.all(16.0),
|
Text(
|
||||||
child: Column(
|
'Select Payment Amount'.tr,
|
||||||
mainAxisSize: MainAxisSize.min,
|
style: AppStyle.headTitle2,
|
||||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
textAlign: TextAlign.center,
|
||||||
children: [
|
),
|
||||||
Text(
|
const SizedBox(height: 16.0),
|
||||||
'Select Payment Amount'.tr,
|
|
||||||
style: AppStyle.headTitle2,
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 16.0),
|
|
||||||
|
|
||||||
// Payment Options List
|
// Payment Options List
|
||||||
_buildPaymentOption(
|
_buildPaymentOption(
|
||||||
context: context,
|
context: context,
|
||||||
controller: controller,
|
controller: controller,
|
||||||
amount: 500,
|
amount: 500,
|
||||||
bonusAmount: 30,
|
bonusAmount: 30,
|
||||||
currency: CurrencyHelper.currency,
|
currency: CurrencyHelper.currency,
|
||||||
),
|
),
|
||||||
|
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
_buildPaymentOption(
|
_buildPaymentOption(
|
||||||
context: context,
|
context: context,
|
||||||
controller: controller,
|
controller: controller,
|
||||||
amount: 1000,
|
amount: 1000,
|
||||||
bonusAmount: 70,
|
bonusAmount: 70,
|
||||||
currency: CurrencyHelper.currency,
|
currency: CurrencyHelper.currency,
|
||||||
),
|
),
|
||||||
|
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
_buildPaymentOption(
|
_buildPaymentOption(
|
||||||
context: context,
|
context: context,
|
||||||
controller: controller,
|
controller: controller,
|
||||||
amount: 2000,
|
amount: 2000,
|
||||||
bonusAmount: 180,
|
bonusAmount: 180,
|
||||||
currency: CurrencyHelper.currency,
|
currency: CurrencyHelper.currency,
|
||||||
),
|
),
|
||||||
|
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
_buildPaymentOption(
|
_buildPaymentOption(
|
||||||
context: context,
|
context: context,
|
||||||
controller: controller,
|
controller: controller,
|
||||||
amount: 5000,
|
amount: 5000,
|
||||||
bonusAmount: 700,
|
bonusAmount: 700,
|
||||||
currency: CurrencyHelper.currency,
|
currency: CurrencyHelper.currency,
|
||||||
),
|
),
|
||||||
|
|
||||||
const SizedBox(height: 16.0),
|
const SizedBox(height: 16.0),
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => Get.back(),
|
onPressed: () => Get.back(),
|
||||||
child: Text('Cancel'.tr),
|
child: Text('Cancel'.tr),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@@ -445,12 +439,15 @@ void showPaymentOptions(BuildContext context, PaymentController controller) {
|
|||||||
borderRadius: BorderRadius.circular(10),
|
borderRadius: BorderRadius.circular(10),
|
||||||
color: Colors.transparent,
|
color: Colors.transparent,
|
||||||
),
|
),
|
||||||
child: ListTile(
|
child: Material(
|
||||||
title: Text(
|
color: Colors.transparent,
|
||||||
'Pay by Cliq'.tr,
|
child: ListTile(
|
||||||
style: AppStyle.title,
|
title: Text(
|
||||||
|
'Pay by Cliq'.tr,
|
||||||
|
style: AppStyle.title,
|
||||||
|
),
|
||||||
|
trailing: const Icon(Icons.payment, size: 40, color: Colors.green),
|
||||||
),
|
),
|
||||||
trailing: const Icon(Icons.payment, size: 40, color: Colors.green),
|
|
||||||
),
|
),
|
||||||
)), if (box.read(BoxName.countryCode) == 'Syria')
|
)), if (box.read(BoxName.countryCode) == 'Syria')
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
|
|||||||
Reference in New Issue
Block a user