This commit is contained in:
Hamza-Ayed
2024-12-08 18:16:31 +03:00
parent 630d0c4afb
commit e0c242bd77
34 changed files with 1876 additions and 1345 deletions

View File

@@ -166,7 +166,7 @@ class RegisterController extends GetxController {
await sendOtp(phoneNumber, randomNumber, isEgyptianNumber,
smsEgyptController);
}
} else {
} else if (phoneNumber.length > 9) {
sendOtp(
phoneNumber, randomNumber, isEgyptianNumber, smsEgyptController);
}
@@ -191,12 +191,57 @@ class RegisterController extends GetxController {
SmsEgyptController controller) async {
// Trim any leading or trailing whitespace from the phone number
phoneNumber = phoneNumber.trim();
await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: {
var dd = await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: {
'phone_number': phoneNumber,
'token': otp.toString(),
});
Log.print('dd: ${dd}');
if (isEgyptian) {
await controller.sendSmsEgypt(phoneNumber, otp.toString());
await CRUD().post(link: AppLink.updatePhoneInvalidSMSPassenger, payload: {
"phone_number": Get.find<RegisterController>().phoneController.text
});
box.write(BoxName.phoneDriver, phoneController.text);
var nameParts = box.read(BoxName.name).toString().split(' ');
var firstName = nameParts.isNotEmpty ? nameParts[0] : 'unknown';
var lastName = nameParts.length > 1 ? nameParts[1] : 'unknown';
var payload = {
'id': box.read(BoxName.passengerID),
'phone': phoneController.text,
'email': box.read(BoxName.email),
'password': 'unknown',
'gender': 'unknown',
'birthdate': '2002-01-01',
'site': box.read(BoxName.passengerPhotoUrl) ?? 'unknown',
'first_name': firstName,
'last_name': lastName,
};
var res1 = await CRUD().post(
link: AppLink.signUp,
payload: payload,
);
if (res1 != 'failure') {
await CRUD().post(
link: '${AppLink.seferAlexandriaServer}/auth/signup.php',
payload: payload,
);
await CRUD().post(
link: '${AppLink.seferGizaServer}/auth/signup.php',
payload: payload,
);
box.write(BoxName.isVerified, '1');
box.write(BoxName.isFirstTime, '0');
box.write(BoxName.phone, phoneController.text);
Get.put(LoginController()).loginUsingCredentials(
box.read(BoxName.passengerID).toString(),
box.read(BoxName.email).toString(),
);
}
// await controller.sendSmsEgypt(phoneNumber, otp.toString());
} else {
await CRUD().sendWhatsAppAuth(phoneNumber, otp.toString());
}

View File

@@ -214,7 +214,7 @@ class FirebaseMessagesController extends GetxController {
driverArrivePassengerDialoge();
update();
} else if (message.notification!.title! == "Cancel Trip from driver".tr) {
} else if (message.notification!.title! == "Cancel Trip from driver") {
Get.back();
if (Platform.isAndroid) {
notificationController.showNotification("Cancel Trip from driver".tr,
@@ -243,7 +243,7 @@ class FirebaseMessagesController extends GetxController {
// .searchNewDriverAfterRejectingFromDriver();
);
} else if (message.notification!.title! == 'Driver Finish Trip'.tr) {
var myListString = message.data['passengerList'];
var myListString = message.data['DriverList'];
var driverList = jsonDecode(myListString) as List<dynamic>;
if (Platform.isAndroid) {
notificationController.showNotification(
@@ -262,6 +262,11 @@ class FirebaseMessagesController extends GetxController {
'rideId': driverList[1].toString(),
'price': driverList[3].toString()
});
notificationController.showNotification(
'Dont forget your personal belongings.'.tr,
'Please make sure you have all your personal belongings and that any remaining fare, if applicable, has been added to your wallet before leaving. Thank you for choosing the Sefer app'
.tr,
'ding');
// }
} else if (message.notification!.title! == "Finish Monitor".tr) {
Get.defaultDialog(

View File

@@ -99,7 +99,7 @@ class NotificationController extends GetxController {
for (int day = 0; day < 7; day++) {
// Schedule for 8:00 AM
await _scheduleNotificationForTime(
day, 8, 0, title, message, details, day * 1000 + 1); // Unique ID
day, 8, 0, title, message, details, day * 1000 + 1);
// Schedule for 3:00 PM
await _scheduleNotificationForTime(

View File

@@ -509,6 +509,26 @@ class CRUD {
return (jsonData['status']);
}
Future<dynamic> getHereMap({
required String link,
}) async {
var url = Uri.parse(link);
try {
var response = await http.get(url);
if (response.statusCode == 200) {
// Ensure the response body is decoded as UTF-8
var decodedBody = utf8.decode(response.bodyBytes);
var data = jsonDecode(decodedBody);
return data;
} else {
return null;
}
} catch (e) {
return null;
}
}
Future<dynamic> update({
required String endpoint,
required Map<String, dynamic> data,

View File

@@ -11,6 +11,7 @@ import 'package:SEFER/views/widgets/elevated_btn.dart';
import 'package:get/get.dart';
import 'package:http/http.dart' as http;
import '../../print.dart';
import '../auth/register_controller.dart';
import 'crud.dart';

File diff suppressed because it is too large Load Diff

View File

@@ -58,15 +58,15 @@ class VipOrderController extends GetxController {
tripData.value = decodedResponse['message'];
} else {
tripData.clear(); // Ensure empty list if no data
mySnackeBarError('No trip data found');
// mySnackeBarError('No trip data found');
}
} else {
tripData.clear();
mySnackeBarError('Failed to fetch trip data');
// mySnackeBarError('Failed to fetch trip data');
}
} catch (e) {
tripData.clear();
mySnackeBarError('An error occurred: $e');
// mySnackeBarError('An error occurred: $e');
} finally {
isLoading.value = false;
}

View File

@@ -4,6 +4,13 @@ class MyTranslation extends Translations {
@override
Map<String, Map<String, String>> get keys => {
"ar": {
"Home Page": "الصفحة الرئيسية",
"To change Language the App": "لتغيير لغة التطبيق",
"Learn more about our app and mission":
"تعرف على المزيد حول تطبيقنا ورسالتنا",
"Promos For Today": "عروض اليوم",
'Bonus gift': 'بونص', "Pay": "ادفع",
"Get": "احصل على",
"Send to Driver Again": "إرسال إلى السائق مرة أخرى",
"Driver Name:": "اسم السائق:",
'No trip data available': "لا توجد بيانات رحلة متاحة",
@@ -79,6 +86,7 @@ class MyTranslation extends Translations {
"Pick from map destination": "حدد وجهتك على الخريطة",
"Pick or Tap to confirm": "حدد أو انقر للتأكيد",
"Select Order Type": "حدد نوع الطلب",
'Accepted your order': "تم قبول طلبك",
"Choose who this order is for": "اختر لمن هذا الطلب",
"Order Accepted": "تم قبول الطلب", "with type": "مع النوع",
"accepted your order at price": "قبل طلبك بالسعر",
@@ -473,7 +481,7 @@ iOS [https://getapp.cc/app/6458734951]
"Go to this Target": "الانْتِقَال إِلَى هَذَا الهَدَف",
"My Profile": "مَلَفِي الشَّخْصِي",
"Sign Out": "تَسْجِيل الخُرُوج",
"Home Page": "الصَّفْحَة الرَّئِيسِيَّة",
"Are you want to go to this site":
"هَل تَرْغَب فِي الانْتِقَال إِلَى هَذَا المَوْقِع",
"MyLocation": "مَوْقِعِي",
@@ -550,11 +558,11 @@ iOS [https://getapp.cc/app/6458734951]
"Bachelor's Degree": "بَكَالُورِيُوس",
"Master's Degree": "مَاجِسْتِير",
"Doctoral Degree": "دُكْتُورَاه",
"Promos For today": "الْعُرُوض التَّرْوِيجِيَّة لِلْيَوْم",
"Copy this Promo to use it in your Ride!":
"انْسَخْ هَذَا الْعَرْض لِاسْتِخْدَامِهِ فِي رِحْلَتِك!",
"To change some Settings": "لِتَغْيِير بَعْض الإِعْدَادَات",
"To change Language the App": "لِتَغْيِير لُغَة التَّطْبِيق",
"Order Request Page": "صَفْحَة طَلَب الطَّلَب",
"Rouats of Trip": "طُرُق الرِّحْلَة",
"Passenger Name is ": "اسْم الرَّاكِب هُوَ ",
@@ -607,6 +615,24 @@ iOS [https://getapp.cc/app/6458734951]
"Do you want to pay Tips for this Driver":
"هَل تُرِيد دَفْع أُكْرَامِيَّة لِهَذَا السَّائِق؟",
"Tip is ": " مَبْلَغ الأُكْرَامِيَّة هُوَ",
"Are you sure to delete this location?":
"هل أنت متأكد من حذف هذا الموقع؟",
"deleted": "تم الحذف",
'Trip is begin': "الرحلة قد بدأت",
'This price is fixed even if the route changes for the driver.':
"هذا السعر مثبت حتى لو تغير المسار للسائق",
'The price may increase if the route changes.':
"احتمالية زيادة السعر عند تغيير المسار",
"The captain is responsible for the route.":
"الكابتن مسؤول عن المسار",
"يمكنك الاتصال أو تسجيل صوت لهذه الرحلة":
"You can call or record audio of this trip",
'The trip has started! Feel free to contact emergency numbers, share your trip, or activate voice recording for the journey':
"بدأت الرحلة! لا تتردد في الاتصال بأرقام الطوارئ، مشاركة رحلتك، أو تفعيل التسجيل الصوتي للرحلة",
'Please make sure you have all your personal belongings and that any remaining fare, if applicable, has been added to your wallet before leaving. Thank you for choosing the Sefer app':
'الرجاء التأكد من جميع أغراضك الشخصية وأنه تم إضافة باقي الأجرة إن وجد إلى محفظتك قبل النزول. شكرا لاختيارك تطبيق سفر',
'Dont forget your personal belongings.': "لا تنسى متعلقاتك الشخصية",
"Tip is": " مَبْلَغ الأُكْرَامِيَّة هُوَ",
"Camera Access Denied.": "تَمَّ رَفْض الْوُصُول إِلَى الْكَامِيرَا.",
"Open Settings": "افْتَحْ الإِعْدَادَات",

View File

@@ -700,8 +700,9 @@ class PaymentController extends GetxController {
);
// Log.print('response.message!: ${response!.responseCode!}');
// if (response!.success == true && response.responseCode == '200') {
if (response!.responseCode.toString() == '200' &&
response.success == true) {
if (response!.success == true &&
response!.message.toString() == 'Approved') {
// Log.print('transactionID wewer: ${response.transactionID}');
Toast.show(context, 'Payment Successful'.tr, AppColor.greenColor);
method();

View File

@@ -81,34 +81,28 @@ class RateController extends GetxController {
}
}
await CRUD().post(
link: "${AppLink.seferCairoServer}/rate/addRateToDriver.php",
link: "${AppLink.seferCairoServer}/ride/rate/addRateToDriver.php",
payload: {
'passenger_id': box.read(BoxName.passengerID).toString(),
'driver_id': driverId,
'ride_id': rideId,
'driver_id': driverId.toString(),
'ride_id': rideId.toString(),
'rating': selectedRateItemId.toString(),
'comment': comment.text,
}).then((value) {
});
if (AppLink.endPoint != AppLink.seferCairoServer) {
CRUD().post(
link: "${AppLink.seferAlexandriaServer}/rate/addRateToDriver.php",
link: "${AppLink.endPoint}/ride/rate/addRateToDriver.php",
payload: {
'passenger_id': box.read(BoxName.passengerID).toString(),
'driver_id': driverId,
'ride_id': rideId,
'driver_id': driverId.toString(),
'ride_id': rideId.toString(),
'rating': selectedRateItemId.toString(),
'comment': comment.text,
});
CRUD().post(
link: "${AppLink.seferGizaServer}/rate/addRateToDriver.php",
payload: {
'passenger_id': box.read(BoxName.passengerID).toString(),
'driver_id': driverId,
'ride_id': rideId,
'rating': selectedRateItemId.toString(),
'comment': comment.text,
});
Get.find<MapPassengerController>().restCounter();
Get.offAll(const MapPagePassenger());
});
}
Get.find<MapPassengerController>().restCounter();
Get.offAll(const MapPagePassenger());
}
}